Module EC2.Instance

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html

type tag = {
  1. key : string;
  2. value : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html

and volume = {
  1. device : string;
  2. volume_id : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html

and private_ip_address_specification = {
  1. primary : bool;
  2. private_ip_address : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html

and private_dns_name_options = {
  1. enable_resource_name_dns_aaaa_record : bool option;
  2. enable_resource_name_dns_a_record : bool option;
  3. hostname_type : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-privatednsnameoptions.html

and no_device = unit

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html;

and license_specification = {
  1. license_configuration_arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html

and launch_template_specification = {
  1. launch_template_id : string option;
  2. launch_template_name : string option;
  3. version : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html

and instance_ipv6_address = {
  1. ipv6_address : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html

and hibernation_options = {
  1. configured : bool option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html

and enclave_options = {
  1. enabled : bool option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enclaveoptions.html

and elastic_inference_accelerator = {
  1. count : int option;
  2. type_ : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html

and elastic_gpu_specification = {
  1. type_ : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html

and ebs = {
  1. delete_on_termination : bool option;
  2. encrypted : bool option;
  3. iops : int option;
  4. kms_key_id : string option;
  5. snapshot_id : string option;
  6. volume_size : int option;
  7. volume_type : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html

and credit_specification = {
  1. cpu_credits : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html

and cpu_options = {
  1. core_count : int option;
  2. threads_per_core : int option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html

and association_parameter = {
  1. key : string;
  2. value : string list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html

and ssm_association = {
  1. association_parameters : association_parameter list option;
  2. document_name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html

and network_interface = {
  1. associate_carrier_ip_address : bool option;
  2. associate_public_ip_address : bool option;
  3. delete_on_termination : bool option;
  4. description : string option;
  5. device_index : string;
  6. group_set : string list option;
  7. ipv6_address_count : int option;
  8. ipv6_addresses : instance_ipv6_address list option;
  9. network_interface_id : string option;
  10. private_ip_address : string option;
  11. private_ip_addresses : private_ip_address_specification list option;
  12. secondary_private_ip_address_count : int option;
  13. subnet_id : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html

and block_device_mapping = {
  1. device_name : string;
  2. ebs : ebs option;
  3. no_device : no_device option;
  4. virtual_name : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html

type properties = {
  1. additional_info : string option;
  2. affinity : string option;
  3. availability_zone : string option;
  4. block_device_mappings : block_device_mapping list option;
  5. cpu_options : cpu_options option;
  6. credit_specification : credit_specification option;
  7. disable_api_termination : bool option;
  8. ebs_optimized : bool option;
  9. elastic_gpu_specifications : elastic_gpu_specification list option;
  10. elastic_inference_accelerators : elastic_inference_accelerator list option;
  11. enclave_options : enclave_options option;
  12. hibernation_options : hibernation_options option;
  13. host_id : string option;
  14. host_resource_group_arn : string option;
  15. iam_instance_profile : string option;
  16. image_id : string option;
  17. instance_initiated_shutdown_behavior : string option;
  18. instance_type : string option;
  19. ipv6_address_count : int option;
  20. ipv6_addresses : instance_ipv6_address list option;
  21. kernel_id : string option;
  22. key_name : string option;
  23. launch_template : launch_template_specification option;
  24. license_specifications : license_specification list option;
  25. monitoring : bool option;
  26. network_interfaces : network_interface list option;
  27. placement_group_name : string option;
  28. private_dns_name_options : private_dns_name_options option;
  29. private_ip_address : string option;
  30. propagate_tags_to_volume_on_creation : bool option;
  31. ramdisk_id : string option;
  32. security_group_ids : string list option;
  33. security_groups : string list option;
  34. source_dest_check : bool option;
  35. ssm_associations : ssm_association list option;
  36. subnet_id : string option;
  37. tags : tag list option;
  38. tenancy : string option;
  39. user_data : string option;
  40. 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 ]
type attributes = {
  1. ref_ : string;
  2. availability_zone : string;
  3. private_dns_name : string;
  4. private_ip : string;
  5. public_dns_name : string;
  6. public_ip : string;
}
val create_attributes : string -> attributes
val cloudformation_type : string