{
 "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json",
 "additionalProperties": false,
 "conditionalCreateOnlyProperties": [
  "/properties/AdditionalInfo",
  "/properties/Affinity",
  "/properties/EbsOptimized",
  "/properties/HostId",
  "/properties/InstanceType",
  "/properties/KernelId",
  "/properties/PrivateDnsNameOptions",
  "/properties/RamdiskId",
  "/properties/Tenancy",
  "/properties/UserData",
  "/properties/BlockDeviceMappings",
  "/properties/SecurityGroupIds"
 ],
 "createOnlyProperties": [
  "/properties/AvailabilityZone",
  "/properties/CpuOptions",
  "/properties/ElasticGpuSpecifications",
  "/properties/ElasticInferenceAccelerators",
  "/properties/EnclaveOptions",
  "/properties/HibernationOptions",
  "/properties/HostResourceGroupArn",
  "/properties/ImageId",
  "/properties/Ipv6AddressCount",
  "/properties/Ipv6Addresses",
  "/properties/KeyName",
  "/properties/LaunchTemplate",
  "/properties/LicenseSpecifications",
  "/properties/NetworkInterfaces",
  "/properties/PlacementGroupName",
  "/properties/PrivateIpAddress",
  "/properties/SecurityGroups",
  "/properties/SubnetId"
 ],
 "definitions": {
  "AssociationParameter": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "type": "string"
    },
    "Value": {
     "insertionOrder": false,
     "items": {
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    }
   },
   "required": [
    "Value",
    "Key"
   ],
   "type": "object"
  },
  "BlockDeviceMapping": {
   "additionalProperties": false,
   "properties": {
    "DeviceName": {
     "type": "string"
    },
    "Ebs": {
     "$ref": "#/definitions/Ebs"
    },
    "NoDevice": {
     "additionalProperties": false,
     "type": "object"
    },
    "VirtualName": {
     "pattern": "^ephemeral([0-9]|[1][0-9]|[2][0-3])$",
     "type": "string"
    }
   },
   "required": [
    "DeviceName"
   ],
   "requiredXor": [
    "VirtualName",
    "Ebs",
    "NoDevice"
   ],
   "type": "object"
  },
  "Ebs": {
   "additionalProperties": false,
   "properties": {
    "DeleteOnTermination": {
     "type": "boolean"
    },
    "Encrypted": {
     "type": "boolean"
    },
    "Iops": {
     "type": "integer"
    },
    "KmsKeyId": {
     "type": "string"
    },
    "SnapshotId": {
     "type": "string"
    },
    "VolumeSize": {
     "type": "integer"
    },
    "VolumeType": {
     "enum": [
      "gp2",
      "gp3",
      "io1",
      "io2",
      "sc1",
      "st1",
      "standard"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "ElasticGpuSpecification": {
   "additionalProperties": false,
   "properties": {
    "Type": {
     "type": "string"
    }
   },
   "required": [
    "Type"
   ],
   "type": "object"
  },
  "ElasticInferenceAccelerator": {
   "additionalProperties": false,
   "properties": {
    "Count": {
     "minimum": 0,
     "type": "integer"
    },
    "Type": {
     "type": "string"
    }
   },
   "required": [
    "Type"
   ],
   "type": "object"
  },
  "EnaSrdSpecification": {
   "additionalProperties": false,
   "properties": {
    "EnaSrdEnabled": {
     "type": "boolean"
    },
    "EnaSrdUdpSpecification": {
     "$ref": "#/definitions/EnaSrdUdpSpecification"
    }
   },
   "type": "object"
  },
  "EnaSrdUdpSpecification": {
   "additionalProperties": false,
   "properties": {
    "EnaSrdUdpEnabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "InstanceIpv6Address": {
   "additionalProperties": false,
   "properties": {
    "Ipv6Address": {
     "type": "string"
    }
   },
   "required": [
    "Ipv6Address"
   ],
   "type": "object"
  },
  "LaunchTemplateSpecification": {
   "additionalProperties": false,
   "oneOf": [
    {
     "required": [
      "LaunchTemplateName",
      "Version"
     ]
    },
    {
     "required": [
      "LaunchTemplateId",
      "Version"
     ]
    }
   ],
   "properties": {
    "LaunchTemplateId": {
     "type": "string"
    },
    "LaunchTemplateName": {
     "type": "string"
    },
    "Version": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "LicenseSpecification": {
   "additionalProperties": false,
   "properties": {
    "LicenseConfigurationArn": {
     "type": "string"
    }
   },
   "required": [
    "LicenseConfigurationArn"
   ],
   "type": "object"
  },
  "MetadataOptions": {
   "additionalProperties": false,
   "properties": {
    "HttpEndpoint": {
     "enum": [
      "disabled",
      "enabled"
     ],
     "type": "string"
    },
    "HttpProtocolIpv6": {
     "enum": [
      "disabled",
      "enabled"
     ],
     "type": "string"
    },
    "HttpPutResponseHopLimit": {
     "default": 1,
     "maximum": 64,
     "minimum": 1,
     "type": "integer"
    },
    "HttpTokens": {
     "enum": [
      "optional",
      "required"
     ],
     "type": "string"
    },
    "InstanceMetadataTags": {
     "enum": [
      "disabled",
      "enabled"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "NetworkInterface": {
   "additionalProperties": false,
   "dependentExcluded": {
    "AssociateCarrierIpAddress": [
     "NetworkInterfaceId"
    ],
    "AssociatePublicIpAddress": [
     "NetworkInterfaceId"
    ],
    "NetworkInterfaceId": [
     "AssociateCarrierIpAddress",
     "AssociatePublicIpAddress"
    ]
   },
   "properties": {
    "AssociateCarrierIpAddress": {
     "type": "boolean"
    },
    "AssociatePublicIpAddress": {
     "type": "boolean"
    },
    "DeleteOnTermination": {
     "type": "boolean"
    },
    "Description": {
     "type": "string"
    },
    "DeviceIndex": {
     "type": "string"
    },
    "EnaSrdSpecification": {
     "$ref": "#/definitions/EnaSrdSpecification"
    },
    "GroupSet": {
     "format": "AWS::EC2::SecurityGroup.Ids",
     "insertionOrder": false,
     "items": {
      "format": "AWS::EC2::SecurityGroup.Id",
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "Ipv6AddressCount": {
     "type": "integer"
    },
    "Ipv6Addresses": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/InstanceIpv6Address"
     },
     "type": "array",
     "uniqueItems": false
    },
    "NetworkInterfaceId": {
     "type": "string"
    },
    "PrivateIpAddress": {
     "type": "string"
    },
    "PrivateIpAddresses": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/PrivateIpAddressSpecification"
     },
     "type": "array",
     "uniqueItems": false
    },
    "SecondaryPrivateIpAddressCount": {
     "type": "integer"
    },
    "SubnetId": {
     "format": "AWS::EC2::Subnet.Id",
     "type": "string"
    }
   },
   "required": [
    "DeviceIndex"
   ],
   "type": "object"
  },
  "PrivateDnsNameOptions": {
   "additionalProperties": false,
   "properties": {
    "EnableResourceNameDnsAAAARecord": {
     "type": "boolean"
    },
    "EnableResourceNameDnsARecord": {
     "type": "boolean"
    },
    "HostnameType": {
     "enum": [
      "ip-name",
      "resource-name"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "PrivateIpAddressSpecification": {
   "additionalProperties": false,
   "properties": {
    "Primary": {
     "type": "boolean"
    },
    "PrivateIpAddress": {
     "type": "string"
    }
   },
   "required": [
    "PrivateIpAddress",
    "Primary"
   ],
   "type": "object"
  },
  "SsmAssociation": {
   "additionalProperties": false,
   "properties": {
    "AssociationParameters": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/AssociationParameter"
     },
     "type": "array",
     "uniqueItems": false
    },
    "DocumentName": {
     "type": "string"
    }
   },
   "required": [
    "DocumentName"
   ],
   "type": "object"
  },
  "State": {
   "additionalProperties": false,
   "properties": {
    "Code": {
     "type": "string"
    },
    "Name": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "type": "string"
    },
    "Value": {
     "type": "string"
    }
   },
   "required": [
    "Value",
    "Key"
   ],
   "type": "object"
  },
  "Volume": {
   "additionalProperties": false,
   "properties": {
    "Device": {
     "type": "string"
    },
    "VolumeId": {
     "type": "string"
    }
   },
   "required": [
    "VolumeId",
    "Device"
   ],
   "type": "object"
  }
 },
 "dependentExcluded": {
  "NetworkInterfaces": [
   "SubnetId"
  ],
  "SubnetId": [
   "NetworkInterfaces"
  ]
 },
 "primaryIdentifier": [
  "/properties/InstanceId"
 ],
 "properties": {
  "AdditionalInfo": {
   "type": "string"
  },
  "Affinity": {
   "enum": [
    "default",
    "host"
   ],
   "type": "string"
  },
  "AvailabilityZone": {
   "type": "string"
  },
  "BlockDeviceMappings": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/BlockDeviceMapping"
   },
   "type": "array",
   "uniqueItems": false
  },
  "CpuOptions": {
   "additionalProperties": false,
   "properties": {
    "CoreCount": {
     "type": "integer"
    },
    "ThreadsPerCore": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "CreditSpecification": {
   "additionalProperties": false,
   "properties": {
    "CPUCredits": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "DisableApiTermination": {
   "type": "boolean"
  },
  "EbsOptimized": {
   "type": "boolean"
  },
  "ElasticGpuSpecifications": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/ElasticGpuSpecification"
   },
   "type": "array",
   "uniqueItems": false
  },
  "ElasticInferenceAccelerators": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/ElasticInferenceAccelerator"
   },
   "type": "array",
   "uniqueItems": false
  },
  "EnclaveOptions": {
   "additionalProperties": false,
   "properties": {
    "Enabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "HibernationOptions": {
   "additionalProperties": false,
   "properties": {
    "Configured": {
     "default": false,
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "HostId": {
   "type": "string"
  },
  "HostResourceGroupArn": {
   "type": "string"
  },
  "IamInstanceProfile": {
   "type": "string"
  },
  "ImageId": {
   "format": "AWS::EC2::Image.Id",
   "type": "string"
  },
  "InstanceId": {
   "type": "string"
  },
  "InstanceInitiatedShutdownBehavior": {
   "enum": [
    "stop",
    "terminate"
   ],
   "type": "string"
  },
  "InstanceType": {
   "enum": [
    "a1.2xlarge",
    "a1.4xlarge",
    "a1.large",
    "a1.medium",
    "a1.metal",
    "a1.xlarge",
    "c1.medium",
    "c1.xlarge",
    "c3.2xlarge",
    "c3.4xlarge",
    "c3.8xlarge",
    "c3.large",
    "c3.xlarge",
    "c4.2xlarge",
    "c4.4xlarge",
    "c4.8xlarge",
    "c4.large",
    "c4.xlarge",
    "c5.12xlarge",
    "c5.18xlarge",
    "c5.24xlarge",
    "c5.2xlarge",
    "c5.4xlarge",
    "c5.9xlarge",
    "c5.large",
    "c5.metal",
    "c5.xlarge",
    "c5a.12xlarge",
    "c5a.16xlarge",
    "c5a.24xlarge",
    "c5a.2xlarge",
    "c5a.4xlarge",
    "c5a.8xlarge",
    "c5a.large",
    "c5a.xlarge",
    "c5ad.12xlarge",
    "c5ad.16xlarge",
    "c5ad.24xlarge",
    "c5ad.2xlarge",
    "c5ad.4xlarge",
    "c5ad.8xlarge",
    "c5ad.large",
    "c5ad.xlarge",
    "c5d.12xlarge",
    "c5d.18xlarge",
    "c5d.24xlarge",
    "c5d.2xlarge",
    "c5d.4xlarge",
    "c5d.9xlarge",
    "c5d.large",
    "c5d.metal",
    "c5d.xlarge",
    "c5n.18xlarge",
    "c5n.2xlarge",
    "c5n.4xlarge",
    "c5n.9xlarge",
    "c5n.large",
    "c5n.metal",
    "c5n.xlarge",
    "c6a.12xlarge",
    "c6a.16xlarge",
    "c6a.24xlarge",
    "c6a.2xlarge",
    "c6a.32xlarge",
    "c6a.48xlarge",
    "c6a.4xlarge",
    "c6a.8xlarge",
    "c6a.large",
    "c6a.metal",
    "c6a.xlarge",
    "c6g.12xlarge",
    "c6g.16xlarge",
    "c6g.2xlarge",
    "c6g.4xlarge",
    "c6g.8xlarge",
    "c6g.large",
    "c6g.medium",
    "c6g.metal",
    "c6g.xlarge",
    "c6gd.12xlarge",
    "c6gd.16xlarge",
    "c6gd.2xlarge",
    "c6gd.4xlarge",
    "c6gd.8xlarge",
    "c6gd.large",
    "c6gd.medium",
    "c6gd.metal",
    "c6gd.xlarge",
    "c6gn.12xlarge",
    "c6gn.16xlarge",
    "c6gn.2xlarge",
    "c6gn.4xlarge",
    "c6gn.8xlarge",
    "c6gn.large",
    "c6gn.medium",
    "c6gn.xlarge",
    "c6i.12xlarge",
    "c6i.16xlarge",
    "c6i.24xlarge",
    "c6i.2xlarge",
    "c6i.32xlarge",
    "c6i.4xlarge",
    "c6i.8xlarge",
    "c6i.large",
    "c6i.metal",
    "c6i.xlarge",
    "c6id.12xlarge",
    "c6id.16xlarge",
    "c6id.24xlarge",
    "c6id.2xlarge",
    "c6id.32xlarge",
    "c6id.4xlarge",
    "c6id.8xlarge",
    "c6id.large",
    "c6id.metal",
    "c6id.xlarge",
    "c6in.12xlarge",
    "c6in.16xlarge",
    "c6in.24xlarge",
    "c6in.2xlarge",
    "c6in.32xlarge",
    "c6in.4xlarge",
    "c6in.8xlarge",
    "c6in.large",
    "c6in.metal",
    "c6in.xlarge",
    "c7a.12xlarge",
    "c7a.16xlarge",
    "c7a.24xlarge",
    "c7a.2xlarge",
    "c7a.32xlarge",
    "c7a.48xlarge",
    "c7a.4xlarge",
    "c7a.8xlarge",
    "c7a.large",
    "c7a.medium",
    "c7a.metal-48xl",
    "c7a.xlarge",
    "c7g.12xlarge",
    "c7g.16xlarge",
    "c7g.2xlarge",
    "c7g.4xlarge",
    "c7g.8xlarge",
    "c7g.large",
    "c7g.medium",
    "c7g.metal",
    "c7g.xlarge",
    "c7gd.12xlarge",
    "c7gd.16xlarge",
    "c7gd.2xlarge",
    "c7gd.4xlarge",
    "c7gd.8xlarge",
    "c7gd.large",
    "c7gd.medium",
    "c7gd.metal",
    "c7gd.xlarge",
    "c7gn.12xlarge",
    "c7gn.16xlarge",
    "c7gn.2xlarge",
    "c7gn.4xlarge",
    "c7gn.8xlarge",
    "c7gn.large",
    "c7gn.medium",
    "c7gn.metal",
    "c7gn.xlarge",
    "c7i-flex.12xlarge",
    "c7i-flex.16xlarge",
    "c7i-flex.2xlarge",
    "c7i-flex.4xlarge",
    "c7i-flex.8xlarge",
    "c7i-flex.large",
    "c7i-flex.xlarge",
    "c7i.12xlarge",
    "c7i.16xlarge",
    "c7i.24xlarge",
    "c7i.2xlarge",
    "c7i.48xlarge",
    "c7i.4xlarge",
    "c7i.8xlarge",
    "c7i.large",
    "c7i.metal-24xl",
    "c7i.metal-48xl",
    "c7i.xlarge",
    "c8a.12xlarge",
    "c8a.16xlarge",
    "c8a.24xlarge",
    "c8a.2xlarge",
    "c8a.48xlarge",
    "c8a.4xlarge",
    "c8a.8xlarge",
    "c8a.large",
    "c8a.medium",
    "c8a.metal-24xl",
    "c8a.metal-48xl",
    "c8a.xlarge",
    "c8g.12xlarge",
    "c8g.16xlarge",
    "c8g.24xlarge",
    "c8g.2xlarge",
    "c8g.48xlarge",
    "c8g.4xlarge",
    "c8g.8xlarge",
    "c8g.large",
    "c8g.medium",
    "c8g.metal-24xl",
    "c8g.metal-48xl",
    "c8g.xlarge",
    "c8gd.12xlarge",
    "c8gd.16xlarge",
    "c8gd.24xlarge",
    "c8gd.2xlarge",
    "c8gd.48xlarge",
    "c8gd.4xlarge",
    "c8gd.8xlarge",
    "c8gd.large",
    "c8gd.medium",
    "c8gd.metal-24xl",
    "c8gd.metal-48xl",
    "c8gd.xlarge",
    "c8gn.12xlarge",
    "c8gn.16xlarge",
    "c8gn.24xlarge",
    "c8gn.2xlarge",
    "c8gn.48xlarge",
    "c8gn.4xlarge",
    "c8gn.8xlarge",
    "c8gn.large",
    "c8gn.medium",
    "c8gn.metal-24xl",
    "c8gn.metal-48xl",
    "c8gn.xlarge",
    "c8i-flex.12xlarge",
    "c8i-flex.16xlarge",
    "c8i-flex.2xlarge",
    "c8i-flex.4xlarge",
    "c8i-flex.8xlarge",
    "c8i-flex.large",
    "c8i-flex.xlarge",
    "c8i.12xlarge",
    "c8i.16xlarge",
    "c8i.24xlarge",
    "c8i.2xlarge",
    "c8i.32xlarge",
    "c8i.48xlarge",
    "c8i.4xlarge",
    "c8i.8xlarge",
    "c8i.96xlarge",
    "c8i.large",
    "c8i.metal-48xl",
    "c8i.metal-96xl",
    "c8i.xlarge",
    "cc1.4xlarge",
    "cc2.8xlarge",
    "cg1.4xlarge",
    "cr1.8xlarge",
    "d2.2xlarge",
    "d2.4xlarge",
    "d2.8xlarge",
    "d2.xlarge",
    "d3.2xlarge",
    "d3.4xlarge",
    "d3.8xlarge",
    "d3.xlarge",
    "d3en.12xlarge",
    "d3en.2xlarge",
    "d3en.4xlarge",
    "d3en.6xlarge",
    "d3en.8xlarge",
    "d3en.xlarge",
    "dl1.24xlarge",
    "dl2q.24xlarge",
    "f1.16xlarge",
    "f1.2xlarge",
    "f1.4xlarge",
    "f2.12xlarge",
    "f2.48xlarge",
    "f2.6xlarge",
    "g2.2xlarge",
    "g2.8xlarge",
    "g3.16xlarge",
    "g3.4xlarge",
    "g3.8xlarge",
    "g3s.xlarge",
    "g4ad.16xlarge",
    "g4ad.2xlarge",
    "g4ad.4xlarge",
    "g4ad.8xlarge",
    "g4ad.xlarge",
    "g4dn.12xlarge",
    "g4dn.16xlarge",
    "g4dn.2xlarge",
    "g4dn.4xlarge",
    "g4dn.8xlarge",
    "g4dn.metal",
    "g4dn.xlarge",
    "g5.12xlarge",
    "g5.16xlarge",
    "g5.24xlarge",
    "g5.2xlarge",
    "g5.48xlarge",
    "g5.4xlarge",
    "g5.8xlarge",
    "g5.xlarge",
    "g5g.16xlarge",
    "g5g.2xlarge",
    "g5g.4xlarge",
    "g5g.8xlarge",
    "g5g.metal",
    "g5g.xlarge",
    "g6.12xlarge",
    "g6.16xlarge",
    "g6.24xlarge",
    "g6.2xlarge",
    "g6.48xlarge",
    "g6.4xlarge",
    "g6.8xlarge",
    "g6.xlarge",
    "g6e.12xlarge",
    "g6e.16xlarge",
    "g6e.24xlarge",
    "g6e.2xlarge",
    "g6e.48xlarge",
    "g6e.4xlarge",
    "g6e.8xlarge",
    "g6e.xlarge",
    "g6f.2xlarge",
    "g6f.4xlarge",
    "g6f.large",
    "g6f.xlarge",
    "gr6.4xlarge",
    "gr6.8xlarge",
    "gr6f.4xlarge",
    "h1.16xlarge",
    "h1.2xlarge",
    "h1.4xlarge",
    "h1.8xlarge",
    "hi1.4xlarge",
    "hpc6a.48xlarge",
    "hpc6id.32xlarge",
    "hpc7a.12xlarge",
    "hpc7a.24xlarge",
    "hpc7a.48xlarge",
    "hpc7a.96xlarge",
    "hpc7g.16xlarge",
    "hpc7g.4xlarge",
    "hpc7g.8xlarge",
    "hs1.8xlarge",
    "i2.2xlarge",
    "i2.4xlarge",
    "i2.8xlarge",
    "i2.xlarge",
    "i3.16xlarge",
    "i3.2xlarge",
    "i3.4xlarge",
    "i3.8xlarge",
    "i3.large",
    "i3.metal",
    "i3.xlarge",
    "i3en.12xlarge",
    "i3en.24xlarge",
    "i3en.2xlarge",
    "i3en.3xlarge",
    "i3en.6xlarge",
    "i3en.large",
    "i3en.metal",
    "i3en.xlarge",
    "i4g.16xlarge",
    "i4g.2xlarge",
    "i4g.4xlarge",
    "i4g.8xlarge",
    "i4g.large",
    "i4g.xlarge",
    "i4i.12xlarge",
    "i4i.16xlarge",
    "i4i.24xlarge",
    "i4i.2xlarge",
    "i4i.32xlarge",
    "i4i.4xlarge",
    "i4i.8xlarge",
    "i4i.large",
    "i4i.metal",
    "i4i.xlarge",
    "i7i.12xlarge",
    "i7i.16xlarge",
    "i7i.24xlarge",
    "i7i.2xlarge",
    "i7i.48xlarge",
    "i7i.4xlarge",
    "i7i.8xlarge",
    "i7i.large",
    "i7i.metal-24xl",
    "i7i.metal-48xl",
    "i7i.xlarge",
    "i7ie.12xlarge",
    "i7ie.18xlarge",
    "i7ie.24xlarge",
    "i7ie.2xlarge",
    "i7ie.3xlarge",
    "i7ie.48xlarge",
    "i7ie.6xlarge",
    "i7ie.large",
    "i7ie.metal-24xl",
    "i7ie.metal-48xl",
    "i7ie.xlarge",
    "i8g.12xlarge",
    "i8g.16xlarge",
    "i8g.24xlarge",
    "i8g.2xlarge",
    "i8g.48xlarge",
    "i8g.4xlarge",
    "i8g.8xlarge",
    "i8g.large",
    "i8g.metal-24xl",
    "i8g.xlarge",
    "i8ge.12xlarge",
    "i8ge.18xlarge",
    "i8ge.24xlarge",
    "i8ge.2xlarge",
    "i8ge.3xlarge",
    "i8ge.48xlarge",
    "i8ge.6xlarge",
    "i8ge.large",
    "i8ge.metal-24xl",
    "i8ge.metal-48xl",
    "i8ge.xlarge",
    "im4gn.16xlarge",
    "im4gn.2xlarge",
    "im4gn.4xlarge",
    "im4gn.8xlarge",
    "im4gn.large",
    "im4gn.xlarge",
    "inf1.24xlarge",
    "inf1.2xlarge",
    "inf1.6xlarge",
    "inf1.xlarge",
    "inf2.24xlarge",
    "inf2.48xlarge",
    "inf2.8xlarge",
    "inf2.xlarge",
    "is4gen.2xlarge",
    "is4gen.4xlarge",
    "is4gen.8xlarge",
    "is4gen.large",
    "is4gen.medium",
    "is4gen.xlarge",
    "m1.large",
    "m1.medium",
    "m1.small",
    "m1.xlarge",
    "m2.2xlarge",
    "m2.4xlarge",
    "m2.xlarge",
    "m3.2xlarge",
    "m3.large",
    "m3.medium",
    "m3.xlarge",
    "m4.10xlarge",
    "m4.16xlarge",
    "m4.2xlarge",
    "m4.4xlarge",
    "m4.large",
    "m4.xlarge",
    "m5.12xlarge",
    "m5.16xlarge",
    "m5.24xlarge",
    "m5.2xlarge",
    "m5.4xlarge",
    "m5.8xlarge",
    "m5.large",
    "m5.metal",
    "m5.xlarge",
    "m5a.12xlarge",
    "m5a.16xlarge",
    "m5a.24xlarge",
    "m5a.2xlarge",
    "m5a.4xlarge",
    "m5a.8xlarge",
    "m5a.large",
    "m5a.xlarge",
    "m5ad.12xlarge",
    "m5ad.16xlarge",
    "m5ad.24xlarge",
    "m5ad.2xlarge",
    "m5ad.4xlarge",
    "m5ad.8xlarge",
    "m5ad.large",
    "m5ad.xlarge",
    "m5d.12xlarge",
    "m5d.16xlarge",
    "m5d.24xlarge",
    "m5d.2xlarge",
    "m5d.4xlarge",
    "m5d.8xlarge",
    "m5d.large",
    "m5d.metal",
    "m5d.xlarge",
    "m5dn.12xlarge",
    "m5dn.16xlarge",
    "m5dn.24xlarge",
    "m5dn.2xlarge",
    "m5dn.4xlarge",
    "m5dn.8xlarge",
    "m5dn.large",
    "m5dn.metal",
    "m5dn.xlarge",
    "m5n.12xlarge",
    "m5n.16xlarge",
    "m5n.24xlarge",
    "m5n.2xlarge",
    "m5n.4xlarge",
    "m5n.8xlarge",
    "m5n.large",
    "m5n.metal",
    "m5n.xlarge",
    "m5zn.12xlarge",
    "m5zn.2xlarge",
    "m5zn.3xlarge",
    "m5zn.6xlarge",
    "m5zn.large",
    "m5zn.metal",
    "m5zn.xlarge",
    "m6a.12xlarge",
    "m6a.16xlarge",
    "m6a.24xlarge",
    "m6a.2xlarge",
    "m6a.32xlarge",
    "m6a.48xlarge",
    "m6a.4xlarge",
    "m6a.8xlarge",
    "m6a.large",
    "m6a.metal",
    "m6a.xlarge",
    "m6g.12xlarge",
    "m6g.16xlarge",
    "m6g.2xlarge",
    "m6g.4xlarge",
    "m6g.8xlarge",
    "m6g.large",
    "m6g.medium",
    "m6g.metal",
    "m6g.xlarge",
    "m6gd.12xlarge",
    "m6gd.16xlarge",
    "m6gd.2xlarge",
    "m6gd.4xlarge",
    "m6gd.8xlarge",
    "m6gd.large",
    "m6gd.medium",
    "m6gd.metal",
    "m6gd.xlarge",
    "m6i.12xlarge",
    "m6i.16xlarge",
    "m6i.24xlarge",
    "m6i.2xlarge",
    "m6i.32xlarge",
    "m6i.4xlarge",
    "m6i.8xlarge",
    "m6i.large",
    "m6i.metal",
    "m6i.xlarge",
    "m6id.12xlarge",
    "m6id.16xlarge",
    "m6id.24xlarge",
    "m6id.2xlarge",
    "m6id.32xlarge",
    "m6id.4xlarge",
    "m6id.8xlarge",
    "m6id.large",
    "m6id.metal",
    "m6id.xlarge",
    "m6idn.12xlarge",
    "m6idn.16xlarge",
    "m6idn.24xlarge",
    "m6idn.2xlarge",
    "m6idn.32xlarge",
    "m6idn.4xlarge",
    "m6idn.8xlarge",
    "m6idn.large",
    "m6idn.metal",
    "m6idn.xlarge",
    "m6in.12xlarge",
    "m6in.16xlarge",
    "m6in.24xlarge",
    "m6in.2xlarge",
    "m6in.32xlarge",
    "m6in.4xlarge",
    "m6in.8xlarge",
    "m6in.large",
    "m6in.metal",
    "m6in.xlarge",
    "m7a.12xlarge",
    "m7a.16xlarge",
    "m7a.24xlarge",
    "m7a.2xlarge",
    "m7a.32xlarge",
    "m7a.48xlarge",
    "m7a.4xlarge",
    "m7a.8xlarge",
    "m7a.large",
    "m7a.medium",
    "m7a.metal-48xl",
    "m7a.xlarge",
    "m7g.12xlarge",
    "m7g.16xlarge",
    "m7g.2xlarge",
    "m7g.4xlarge",
    "m7g.8xlarge",
    "m7g.large",
    "m7g.medium",
    "m7g.metal",
    "m7g.xlarge",
    "m7gd.12xlarge",
    "m7gd.16xlarge",
    "m7gd.2xlarge",
    "m7gd.4xlarge",
    "m7gd.8xlarge",
    "m7gd.large",
    "m7gd.medium",
    "m7gd.metal",
    "m7gd.xlarge",
    "m7i-flex.12xlarge",
    "m7i-flex.16xlarge",
    "m7i-flex.2xlarge",
    "m7i-flex.4xlarge",
    "m7i-flex.8xlarge",
    "m7i-flex.large",
    "m7i-flex.xlarge",
    "m7i.12xlarge",
    "m7i.16xlarge",
    "m7i.24xlarge",
    "m7i.2xlarge",
    "m7i.48xlarge",
    "m7i.4xlarge",
    "m7i.8xlarge",
    "m7i.large",
    "m7i.metal-24xl",
    "m7i.metal-48xl",
    "m7i.xlarge",
    "m8a.12xlarge",
    "m8a.16xlarge",
    "m8a.24xlarge",
    "m8a.2xlarge",
    "m8a.48xlarge",
    "m8a.4xlarge",
    "m8a.8xlarge",
    "m8a.large",
    "m8a.medium",
    "m8a.metal-24xl",
    "m8a.metal-48xl",
    "m8a.xlarge",
    "m8g.12xlarge",
    "m8g.16xlarge",
    "m8g.24xlarge",
    "m8g.2xlarge",
    "m8g.48xlarge",
    "m8g.4xlarge",
    "m8g.8xlarge",
    "m8g.large",
    "m8g.medium",
    "m8g.metal-24xl",
    "m8g.metal-48xl",
    "m8g.xlarge",
    "m8gd.12xlarge",
    "m8gd.16xlarge",
    "m8gd.24xlarge",
    "m8gd.2xlarge",
    "m8gd.48xlarge",
    "m8gd.4xlarge",
    "m8gd.8xlarge",
    "m8gd.large",
    "m8gd.medium",
    "m8gd.metal-24xl",
    "m8gd.metal-48xl",
    "m8gd.xlarge",
    "m8i-flex.12xlarge",
    "m8i-flex.16xlarge",
    "m8i-flex.2xlarge",
    "m8i-flex.4xlarge",
    "m8i-flex.8xlarge",
    "m8i-flex.large",
    "m8i-flex.xlarge",
    "m8i.12xlarge",
    "m8i.16xlarge",
    "m8i.24xlarge",
    "m8i.2xlarge",
    "m8i.32xlarge",
    "m8i.48xlarge",
    "m8i.4xlarge",
    "m8i.8xlarge",
    "m8i.96xlarge",
    "m8i.large",
    "m8i.metal-48xl",
    "m8i.metal-96xl",
    "m8i.xlarge",
    "mac-m4.metal",
    "mac-m4pro.metal",
    "mac1.metal",
    "mac2-m1ultra.metal",
    "mac2-m2.metal",
    "mac2-m2pro.metal",
    "mac2.metal",
    "p2.16xlarge",
    "p2.8xlarge",
    "p2.xlarge",
    "p3.16xlarge",
    "p3.2xlarge",
    "p3.8xlarge",
    "p3dn.24xlarge",
    "p4d.24xlarge",
    "p4de.24xlarge",
    "p5.48xlarge",
    "p5.4xlarge",
    "p5e.48xlarge",
    "p5en.48xlarge",
    "p6-b200.48xlarge",
    "p6-b300.48xlarge",
    "p6e-gb200.36xlarge",
    "r3.2xlarge",
    "r3.4xlarge",
    "r3.8xlarge",
    "r3.large",
    "r3.xlarge",
    "r4.16xlarge",
    "r4.2xlarge",
    "r4.4xlarge",
    "r4.8xlarge",
    "r4.large",
    "r4.xlarge",
    "r5.12xlarge",
    "r5.16xlarge",
    "r5.24xlarge",
    "r5.2xlarge",
    "r5.4xlarge",
    "r5.8xlarge",
    "r5.large",
    "r5.metal",
    "r5.xlarge",
    "r5a.12xlarge",
    "r5a.16xlarge",
    "r5a.24xlarge",
    "r5a.2xlarge",
    "r5a.4xlarge",
    "r5a.8xlarge",
    "r5a.large",
    "r5a.xlarge",
    "r5ad.12xlarge",
    "r5ad.16xlarge",
    "r5ad.24xlarge",
    "r5ad.2xlarge",
    "r5ad.4xlarge",
    "r5ad.8xlarge",
    "r5ad.large",
    "r5ad.xlarge",
    "r5b.12xlarge",
    "r5b.16xlarge",
    "r5b.24xlarge",
    "r5b.2xlarge",
    "r5b.4xlarge",
    "r5b.8xlarge",
    "r5b.large",
    "r5b.metal",
    "r5b.xlarge",
    "r5d.12xlarge",
    "r5d.16xlarge",
    "r5d.24xlarge",
    "r5d.2xlarge",
    "r5d.4xlarge",
    "r5d.8xlarge",
    "r5d.large",
    "r5d.metal",
    "r5d.xlarge",
    "r5dn.12xlarge",
    "r5dn.16xlarge",
    "r5dn.24xlarge",
    "r5dn.2xlarge",
    "r5dn.4xlarge",
    "r5dn.8xlarge",
    "r5dn.large",
    "r5dn.metal",
    "r5dn.xlarge",
    "r5n.12xlarge",
    "r5n.16xlarge",
    "r5n.24xlarge",
    "r5n.2xlarge",
    "r5n.4xlarge",
    "r5n.8xlarge",
    "r5n.large",
    "r5n.metal",
    "r5n.xlarge",
    "r6a.12xlarge",
    "r6a.16xlarge",
    "r6a.24xlarge",
    "r6a.2xlarge",
    "r6a.32xlarge",
    "r6a.48xlarge",
    "r6a.4xlarge",
    "r6a.8xlarge",
    "r6a.large",
    "r6a.metal",
    "r6a.xlarge",
    "r6g.12xlarge",
    "r6g.16xlarge",
    "r6g.2xlarge",
    "r6g.4xlarge",
    "r6g.8xlarge",
    "r6g.large",
    "r6g.medium",
    "r6g.metal",
    "r6g.xlarge",
    "r6gd.12xlarge",
    "r6gd.16xlarge",
    "r6gd.2xlarge",
    "r6gd.4xlarge",
    "r6gd.8xlarge",
    "r6gd.large",
    "r6gd.medium",
    "r6gd.metal",
    "r6gd.xlarge",
    "r6i.12xlarge",
    "r6i.16xlarge",
    "r6i.24xlarge",
    "r6i.2xlarge",
    "r6i.32xlarge",
    "r6i.4xlarge",
    "r6i.8xlarge",
    "r6i.large",
    "r6i.metal",
    "r6i.xlarge",
    "r6id.12xlarge",
    "r6id.16xlarge",
    "r6id.24xlarge",
    "r6id.2xlarge",
    "r6id.32xlarge",
    "r6id.4xlarge",
    "r6id.8xlarge",
    "r6id.large",
    "r6id.metal",
    "r6id.xlarge",
    "r6idn.12xlarge",
    "r6idn.16xlarge",
    "r6idn.24xlarge",
    "r6idn.2xlarge",
    "r6idn.32xlarge",
    "r6idn.4xlarge",
    "r6idn.8xlarge",
    "r6idn.large",
    "r6idn.metal",
    "r6idn.xlarge",
    "r6in.12xlarge",
    "r6in.16xlarge",
    "r6in.24xlarge",
    "r6in.2xlarge",
    "r6in.32xlarge",
    "r6in.4xlarge",
    "r6in.8xlarge",
    "r6in.large",
    "r6in.metal",
    "r6in.xlarge",
    "r7a.12xlarge",
    "r7a.16xlarge",
    "r7a.24xlarge",
    "r7a.2xlarge",
    "r7a.32xlarge",
    "r7a.48xlarge",
    "r7a.4xlarge",
    "r7a.8xlarge",
    "r7a.large",
    "r7a.medium",
    "r7a.metal-48xl",
    "r7a.xlarge",
    "r7g.12xlarge",
    "r7g.16xlarge",
    "r7g.2xlarge",
    "r7g.4xlarge",
    "r7g.8xlarge",
    "r7g.large",
    "r7g.medium",
    "r7g.metal",
    "r7g.xlarge",
    "r7gd.12xlarge",
    "r7gd.16xlarge",
    "r7gd.2xlarge",
    "r7gd.4xlarge",
    "r7gd.8xlarge",
    "r7gd.large",
    "r7gd.medium",
    "r7gd.metal",
    "r7gd.xlarge",
    "r7i.12xlarge",
    "r7i.16xlarge",
    "r7i.24xlarge",
    "r7i.2xlarge",
    "r7i.48xlarge",
    "r7i.4xlarge",
    "r7i.8xlarge",
    "r7i.large",
    "r7i.metal-24xl",
    "r7i.metal-48xl",
    "r7i.xlarge",
    "r7iz.12xlarge",
    "r7iz.16xlarge",
    "r7iz.2xlarge",
    "r7iz.32xlarge",
    "r7iz.4xlarge",
    "r7iz.8xlarge",
    "r7iz.large",
    "r7iz.metal-16xl",
    "r7iz.metal-32xl",
    "r7iz.xlarge",
    "r8a.12xlarge",
    "r8a.16xlarge",
    "r8a.24xlarge",
    "r8a.2xlarge",
    "r8a.48xlarge",
    "r8a.4xlarge",
    "r8a.8xlarge",
    "r8a.large",
    "r8a.medium",
    "r8a.metal-24xl",
    "r8a.metal-48xl",
    "r8a.xlarge",
    "r8g.12xlarge",
    "r8g.16xlarge",
    "r8g.24xlarge",
    "r8g.2xlarge",
    "r8g.48xlarge",
    "r8g.4xlarge",
    "r8g.8xlarge",
    "r8g.large",
    "r8g.medium",
    "r8g.metal-24xl",
    "r8g.metal-48xl",
    "r8g.xlarge",
    "r8gb.12xlarge",
    "r8gb.16xlarge",
    "r8gb.24xlarge",
    "r8gb.2xlarge",
    "r8gb.4xlarge",
    "r8gb.8xlarge",
    "r8gb.large",
    "r8gb.medium",
    "r8gb.metal-24xl",
    "r8gb.xlarge",
    "r8gd.12xlarge",
    "r8gd.16xlarge",
    "r8gd.24xlarge",
    "r8gd.2xlarge",
    "r8gd.48xlarge",
    "r8gd.4xlarge",
    "r8gd.8xlarge",
    "r8gd.large",
    "r8gd.medium",
    "r8gd.metal-24xl",
    "r8gd.metal-48xl",
    "r8gd.xlarge",
    "r8gn.12xlarge",
    "r8gn.16xlarge",
    "r8gn.24xlarge",
    "r8gn.2xlarge",
    "r8gn.48xlarge",
    "r8gn.4xlarge",
    "r8gn.8xlarge",
    "r8gn.large",
    "r8gn.medium",
    "r8gn.metal-24xl",
    "r8gn.metal-48xl",
    "r8gn.xlarge",
    "r8i-flex.12xlarge",
    "r8i-flex.16xlarge",
    "r8i-flex.2xlarge",
    "r8i-flex.4xlarge",
    "r8i-flex.8xlarge",
    "r8i-flex.large",
    "r8i-flex.xlarge",
    "r8i.12xlarge",
    "r8i.16xlarge",
    "r8i.24xlarge",
    "r8i.2xlarge",
    "r8i.32xlarge",
    "r8i.48xlarge",
    "r8i.4xlarge",
    "r8i.8xlarge",
    "r8i.96xlarge",
    "r8i.large",
    "r8i.metal-48xl",
    "r8i.metal-96xl",
    "r8i.xlarge",
    "t1.micro",
    "t2.2xlarge",
    "t2.large",
    "t2.medium",
    "t2.micro",
    "t2.nano",
    "t2.small",
    "t2.xlarge",
    "t3.2xlarge",
    "t3.large",
    "t3.medium",
    "t3.micro",
    "t3.nano",
    "t3.small",
    "t3.xlarge",
    "t3a.2xlarge",
    "t3a.large",
    "t3a.medium",
    "t3a.micro",
    "t3a.nano",
    "t3a.small",
    "t3a.xlarge",
    "t4g.2xlarge",
    "t4g.large",
    "t4g.medium",
    "t4g.micro",
    "t4g.nano",
    "t4g.small",
    "t4g.xlarge",
    "trn1.2xlarge",
    "trn1.32xlarge",
    "trn1n.32xlarge",
    "trn2.3xlarge",
    "trn2.48xlarge",
    "u-12tb1.112xlarge",
    "u-12tb1.metal",
    "u-18tb1.112xlarge",
    "u-18tb1.metal",
    "u-24tb1.112xlarge",
    "u-24tb1.metal",
    "u-3tb1.56xlarge",
    "u-6tb1.112xlarge",
    "u-6tb1.56xlarge",
    "u-6tb1.metal",
    "u-9tb1.112xlarge",
    "u-9tb1.metal",
    "u7i-12tb.224xlarge",
    "u7i-6tb.112xlarge",
    "u7i-8tb.112xlarge",
    "u7ib-12tb.224xlarge",
    "u7in-16tb.224xlarge",
    "u7in-24tb.224xlarge",
    "u7in-32tb.224xlarge",
    "u7inh-32tb.480xlarge",
    "vt1.24xlarge",
    "vt1.3xlarge",
    "vt1.6xlarge",
    "x1.16xlarge",
    "x1.32xlarge",
    "x1e.16xlarge",
    "x1e.2xlarge",
    "x1e.32xlarge",
    "x1e.4xlarge",
    "x1e.8xlarge",
    "x1e.xlarge",
    "x2gd.12xlarge",
    "x2gd.16xlarge",
    "x2gd.2xlarge",
    "x2gd.4xlarge",
    "x2gd.8xlarge",
    "x2gd.large",
    "x2gd.medium",
    "x2gd.metal",
    "x2gd.xlarge",
    "x2idn.16xlarge",
    "x2idn.24xlarge",
    "x2idn.32xlarge",
    "x2idn.metal",
    "x2iedn.16xlarge",
    "x2iedn.24xlarge",
    "x2iedn.2xlarge",
    "x2iedn.32xlarge",
    "x2iedn.4xlarge",
    "x2iedn.8xlarge",
    "x2iedn.metal",
    "x2iedn.xlarge",
    "x2iezn.12xlarge",
    "x2iezn.2xlarge",
    "x2iezn.4xlarge",
    "x2iezn.6xlarge",
    "x2iezn.8xlarge",
    "x2iezn.metal",
    "x8g.12xlarge",
    "x8g.16xlarge",
    "x8g.24xlarge",
    "x8g.2xlarge",
    "x8g.48xlarge",
    "x8g.4xlarge",
    "x8g.8xlarge",
    "x8g.large",
    "x8g.medium",
    "x8g.metal-24xl",
    "x8g.metal-48xl",
    "x8g.xlarge",
    "z1d.12xlarge",
    "z1d.2xlarge",
    "z1d.3xlarge",
    "z1d.6xlarge",
    "z1d.large",
    "z1d.metal",
    "z1d.xlarge"
   ],
   "type": "string"
  },
  "Ipv6AddressCount": {
   "type": "integer"
  },
  "Ipv6Addresses": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/InstanceIpv6Address"
   },
   "type": "array",
   "uniqueItems": false
  },
  "KernelId": {
   "type": "string"
  },
  "KeyName": {
   "type": "string"
  },
  "LaunchTemplate": {
   "$ref": "#/definitions/LaunchTemplateSpecification",
   "type": "object"
  },
  "LicenseSpecifications": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/LicenseSpecification"
   },
   "type": "array",
   "uniqueItems": false
  },
  "MetadataOptions": {
   "$ref": "#/definitions/MetadataOptions",
   "type": "object"
  },
  "Monitoring": {
   "type": "boolean"
  },
  "NetworkInterfaces": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/NetworkInterface"
   },
   "type": "array",
   "uniqueItems": false
  },
  "PlacementGroupName": {
   "type": "string"
  },
  "PrivateDnsName": {
   "type": "string"
  },
  "PrivateDnsNameOptions": {
   "$ref": "#/definitions/PrivateDnsNameOptions",
   "type": "object"
  },
  "PrivateIp": {
   "type": "string"
  },
  "PrivateIpAddress": {
   "type": "string"
  },
  "PropagateTagsToVolumeOnCreation": {
   "type": "boolean"
  },
  "PublicDnsName": {
   "type": "string"
  },
  "PublicIp": {
   "type": "string"
  },
  "RamdiskId": {
   "type": "string"
  },
  "SecurityGroupIds": {
   "format": "AWS::EC2::SecurityGroup.Ids",
   "insertionOrder": false,
   "items": {
    "format": "AWS::EC2::SecurityGroup.Id",
    "type": "string"
   },
   "type": "array",
   "uniqueItems": false
  },
  "SecurityGroups": {
   "format": "AWS::EC2::SecurityGroup.Names",
   "insertionOrder": false,
   "items": {
    "format": "AWS::EC2::SecurityGroup.Name",
    "type": "string"
   },
   "type": "array",
   "uniqueItems": false
  },
  "SourceDestCheck": {
   "type": "boolean"
  },
  "SsmAssociations": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/SsmAssociation"
   },
   "type": "array",
   "uniqueItems": false
  },
  "State": {
   "$ref": "#/definitions/State",
   "type": "object"
  },
  "SubnetId": {
   "format": "AWS::EC2::Subnet.Id",
   "type": "string"
  },
  "Tags": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "type": "array",
   "uniqueItems": false
  },
  "Tenancy": {
   "enum": [
    "dedicated",
    "default",
    "host"
   ],
   "type": "string"
  },
  "UserData": {
   "type": "string"
  },
  "Volumes": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/Volume"
   },
   "type": "array",
   "uniqueItems": false
  },
  "VpcId": {
   "format": "AWS::EC2::VPC.Id",
   "type": "string"
  }
 },
 "readOnlyProperties": [
  "/properties/InstanceId",
  "/properties/PrivateIp",
  "/properties/PublicDnsName",
  "/properties/PublicIp",
  "/properties/PrivateDnsName",
  "/properties/VpcId",
  "/properties/State"
 ],
 "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git",
 "tagging": {
  "cloudFormationSystemTags": true,
  "tagOnCreate": true,
  "tagProperty": "/properties/Tags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::EC2::Instance",
 "writeOnlyProperties": [
  "/properties/BlockDeviceMappings/*/NoDevice",
  "/properties/BlockDeviceMappings/*/VirtualName",
  "/properties/LicenseSpecifications",
  "/properties/AdditionalInfo",
  "/properties/Ipv6AddressCount",
  "/properties/Ipv6Addresses",
  "/properties/PropagateTagsToVolumeOnCreation"
 ]
}
