EC2.Instance
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html
and private_dns_name_options = {
enable_resource_name_dns_aaaa_record : bool option;
enable_resource_name_dns_a_record : bool option;
hostname_type : string option;
}
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-privatednsnameoptions.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html;
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enclaveoptions.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html
and ebs = {
delete_on_termination : bool option;
encrypted : bool option;
iops : int option;
kms_key_id : string option;
snapshot_id : string option;
volume_size : int option;
volume_type : string option;
}
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html
and ssm_association = {
association_parameters : association_parameter list option;
document_name : string;
}
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html
and network_interface = {
associate_carrier_ip_address : bool option;
associate_public_ip_address : bool option;
delete_on_termination : bool option;
description : string option;
device_index : string;
group_set : string list option;
ipv6_address_count : int option;
ipv6_addresses : instance_ipv6_address list option;
network_interface_id : string option;
private_ip_address : string option;
private_ip_addresses : private_ip_address_specification list option;
secondary_private_ip_address_count : int option;
subnet_id : string option;
}
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html
type properties = {
additional_info : string option;
affinity : string option;
availability_zone : string option;
block_device_mappings : block_device_mapping list option;
cpu_options : cpu_options option;
credit_specification : credit_specification option;
disable_api_termination : bool option;
ebs_optimized : bool option;
elastic_gpu_specifications : elastic_gpu_specification list option;
elastic_inference_accelerators : elastic_inference_accelerator list option;
enclave_options : enclave_options option;
hibernation_options : hibernation_options option;
host_id : string option;
host_resource_group_arn : string option;
iam_instance_profile : string option;
image_id : string option;
instance_initiated_shutdown_behavior : string option;
instance_type : string option;
ipv6_address_count : int option;
ipv6_addresses : instance_ipv6_address list option;
kernel_id : string option;
key_name : string option;
launch_template : launch_template_specification option;
license_specifications : license_specification list option;
monitoring : bool option;
network_interfaces : network_interface list option;
placement_group_name : string option;
private_dns_name_options : private_dns_name_options option;
private_ip_address : string option;
ramdisk_id : string option;
security_group_ids : string list option;
security_groups : string list option;
source_dest_check : bool option;
ssm_associations : ssm_association list option;
subnet_id : string option;
tenancy : string option;
user_data : string option;
volumes : volume list option;
}
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html;
val make_properties :
?additional_info:string ->
?affinity:string ->
?availability_zone:string ->
?block_device_mappings:block_device_mapping list ->
?cpu_options:cpu_options ->
?credit_specification:credit_specification ->
?disable_api_termination:bool ->
?ebs_optimized:bool ->
?elastic_gpu_specifications:elastic_gpu_specification list ->
?elastic_inference_accelerators:elastic_inference_accelerator list ->
?enclave_options:enclave_options ->
?hibernation_options:hibernation_options ->
?host_id:string ->
?host_resource_group_arn:string ->
?iam_instance_profile:string ->
?image_id:string ->
?instance_initiated_shutdown_behavior:string ->
?instance_type:string ->
?ipv6_address_count:int ->
?ipv6_addresses:instance_ipv6_address list ->
?kernel_id:string ->
?key_name:string ->
?launch_template:launch_template_specification ->
?license_specifications:license_specification list ->
?monitoring:bool ->
?network_interfaces:network_interface list ->
?placement_group_name:string ->
?private_dns_name_options:private_dns_name_options ->
?private_ip_address:string ->
?propagate_tags_to_volume_on_creation:bool ->
?ramdisk_id:string ->
?security_group_ids:string list ->
?security_groups:string list ->
?source_dest_check:bool ->
?ssm_associations:ssm_association list ->
?subnet_id:string ->
?tags:tag list ->
?tenancy:string ->
?user_data:string ->
?volumes:volume list ->
unit ->
properties
val make_tag : key:string -> value:string -> unit -> tag
val make_volume : device:string -> volume_id:string -> unit -> volume
val make_private_ip_address_specification :
primary:bool ->
private_ip_address:string ->
unit ->
private_ip_address_specification
val make_private_dns_name_options :
?enable_resource_name_dns_aaaa_record:bool ->
?enable_resource_name_dns_a_record:bool ->
?hostname_type:string ->
unit ->
private_dns_name_options
val make_license_specification :
license_configuration_arn:string ->
unit ->
license_specification
val make_launch_template_specification :
?launch_template_id:string ->
?launch_template_name:string ->
version:string ->
unit ->
launch_template_specification
val make_instance_ipv6_address :
ipv6_address:string ->
unit ->
instance_ipv6_address
val make_hibernation_options : ?configured:bool -> unit -> hibernation_options
val make_enclave_options : ?enabled:bool -> unit -> enclave_options
val make_elastic_inference_accelerator :
?count:int ->
type_:string ->
unit ->
elastic_inference_accelerator
val make_elastic_gpu_specification :
type_:string ->
unit ->
elastic_gpu_specification
val make_ebs :
?delete_on_termination:bool ->
?encrypted:bool ->
?iops:int ->
?kms_key_id:string ->
?snapshot_id:string ->
?volume_size:int ->
?volume_type:string ->
unit ->
ebs
val make_credit_specification :
?cpu_credits:string ->
unit ->
credit_specification
val make_cpu_options :
?core_count:int ->
?threads_per_core:int ->
unit ->
cpu_options
val make_association_parameter :
key:string ->
value:string list ->
unit ->
association_parameter
val make_ssm_association :
?association_parameters:association_parameter list ->
document_name:string ->
unit ->
ssm_association
val make_network_interface :
?associate_carrier_ip_address:bool ->
?associate_public_ip_address:bool ->
?delete_on_termination:bool ->
?description:string ->
device_index:string ->
?group_set:string list ->
?ipv6_address_count:int ->
?ipv6_addresses:instance_ipv6_address list ->
?network_interface_id:string ->
?private_ip_address:string ->
?private_ip_addresses:private_ip_address_specification list ->
?secondary_private_ip_address_count:int ->
?subnet_id:string ->
unit ->
network_interface
val make_block_device_mapping :
device_name:string ->
?ebs:ebs ->
?no_device:no_device ->
?virtual_name:string ->
unit ->
block_device_mapping
val yojson_of_tag : tag -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_volume : volume -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_private_ip_address_specification :
private_ip_address_specification ->
Yojson.Safe.t
val yojson_of_private_dns_name_options :
private_dns_name_options ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_no_device : no_device -> Yojson.Safe.t
val yojson_of_license_specification :
license_specification ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_launch_template_specification :
launch_template_specification ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_instance_ipv6_address : instance_ipv6_address -> Yojson.Safe.t
val yojson_of_hibernation_options :
hibernation_options ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_enclave_options :
enclave_options ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_elastic_inference_accelerator :
elastic_inference_accelerator ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_elastic_gpu_specification :
elastic_gpu_specification ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_ebs : ebs -> Yojson.Safe.t
val yojson_of_credit_specification :
credit_specification ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_cpu_options :
cpu_options ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_association_parameter : association_parameter -> Yojson.Safe.t
val yojson_of_ssm_association :
ssm_association ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_network_interface :
network_interface ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_block_device_mapping :
block_device_mapping ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_properties :
properties ->
[> `Assoc of (string * Yojson.Safe.t) list ]
val create_attributes : string -> attributes