{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/LaunchTemplateName"
 ],
 "definitions": {
  "AcceleratorCount": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "integer"
    },
    "Min": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "AcceleratorTotalMemoryMiB": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "integer"
    },
    "Min": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "BaselineEbsBandwidthMbps": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "integer"
    },
    "Min": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "BaselinePerformanceFactors": {
   "additionalProperties": false,
   "properties": {
    "Cpu": {
     "$ref": "#/definitions/Cpu"
    }
   },
   "type": "object"
  },
  "BlockDeviceMapping": {
   "additionalProperties": false,
   "properties": {
    "DeviceName": {
     "type": "string"
    },
    "Ebs": {
     "$ref": "#/definitions/Ebs"
    },
    "NoDevice": {
     "type": "string"
    },
    "VirtualName": {
     "pattern": "^ephemeral([0-9]|[1][0-9]|[2][0-3])$",
     "type": "string"
    }
   },
   "requiredXor": [
    "VirtualName",
    "Ebs",
    "NoDevice"
   ],
   "type": "object"
  },
  "CapacityReservationSpecification": {
   "additionalProperties": false,
   "properties": {
    "CapacityReservationPreference": {
     "enum": [
      "capacity-reservations-only",
      "none",
      "open"
     ],
     "type": "string"
    },
    "CapacityReservationTarget": {
     "$ref": "#/definitions/CapacityReservationTarget"
    }
   },
   "type": "object"
  },
  "CapacityReservationTarget": {
   "additionalProperties": false,
   "properties": {
    "CapacityReservationId": {
     "type": "string"
    },
    "CapacityReservationResourceGroupArn": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "ConnectionTrackingSpecification": {
   "additionalProperties": false,
   "properties": {
    "TcpEstablishedTimeout": {
     "type": "integer"
    },
    "UdpStreamTimeout": {
     "type": "integer"
    },
    "UdpTimeout": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "Cpu": {
   "additionalProperties": false,
   "properties": {
    "References": {
     "$ref": "#/definitions/References"
    }
   },
   "type": "object"
  },
  "CpuOptions": {
   "additionalProperties": false,
   "properties": {
    "AmdSevSnp": {
     "enum": [
      "enabled",
      "disabled"
     ],
     "type": "string"
    },
    "CoreCount": {
     "type": "integer"
    },
    "ThreadsPerCore": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "CreditSpecification": {
   "additionalProperties": false,
   "properties": {
    "CpuCredits": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "Ebs": {
   "additionalProperties": false,
   "properties": {
    "DeleteOnTermination": {
     "type": "boolean"
    },
    "Encrypted": {
     "type": "boolean"
    },
    "Iops": {
     "type": "integer"
    },
    "KmsKeyId": {
     "type": "string"
    },
    "SnapshotId": {
     "type": "string"
    },
    "Throughput": {
     "type": "integer"
    },
    "VolumeInitializationRate": {
     "type": "integer"
    },
    "VolumeSize": {
     "type": "integer"
    },
    "VolumeType": {
     "enum": [
      "gp2",
      "gp3",
      "io1",
      "io2",
      "sc1",
      "st1",
      "standard"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "EnaSrdSpecification": {
   "additionalProperties": false,
   "properties": {
    "EnaSrdEnabled": {
     "type": "boolean"
    },
    "EnaSrdUdpSpecification": {
     "$ref": "#/definitions/EnaSrdUdpSpecification"
    }
   },
   "type": "object"
  },
  "EnaSrdUdpSpecification": {
   "additionalProperties": false,
   "properties": {
    "EnaSrdUdpEnabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "EnclaveOptions": {
   "additionalProperties": false,
   "properties": {
    "Enabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "HibernationOptions": {
   "additionalProperties": false,
   "properties": {
    "Configured": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "IamInstanceProfile": {
   "additionalProperties": false,
   "properties": {
    "Arn": {
     "type": "string"
    },
    "Name": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "InstanceMarketOptions": {
   "additionalProperties": false,
   "properties": {
    "MarketType": {
     "enum": [
      "capacity-block",
      "interruptible-capacity-reservation",
      "spot"
     ],
     "type": "string"
    },
    "SpotOptions": {
     "$ref": "#/definitions/SpotOptions"
    }
   },
   "type": "object"
  },
  "InstanceRequirements": {
   "additionalProperties": false,
   "properties": {
    "AcceleratorCount": {
     "$ref": "#/definitions/AcceleratorCount"
    },
    "AcceleratorManufacturers": {
     "items": {
      "enum": [
       "amazon-web-services",
       "amd",
       "habana",
       "nvidia",
       "xilinx"
      ],
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "AcceleratorNames": {
     "items": {
      "enum": [
       "a100",
       "a10g",
       "gaudi-hl-205",
       "h100",
       "inferentia",
       "inferentia2",
       "k520",
       "k80",
       "l4",
       "l40s",
       "m60",
       "radeon-pro-v520",
       "t4",
       "t4g",
       "trainium",
       "trainium2",
       "u30",
       "v100",
       "vu9p"
      ],
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "AcceleratorTotalMemoryMiB": {
     "$ref": "#/definitions/AcceleratorTotalMemoryMiB"
    },
    "AcceleratorTypes": {
     "items": {
      "enum": [
       "fpga",
       "gpu",
       "inference",
       "media"
      ],
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "AllowedInstanceTypes": {
     "items": {
      "maxLength": 30,
      "minLength": 1,
      "pattern": "[a-zA-Z0-9\\.\\*\\-]+",
      "type": "string"
     },
     "maxItems": 400,
     "type": "array",
     "uniqueItems": false
    },
    "BareMetal": {
     "enum": [
      "excluded",
      "included",
      "required"
     ],
     "type": "string"
    },
    "BaselineEbsBandwidthMbps": {
     "$ref": "#/definitions/BaselineEbsBandwidthMbps"
    },
    "BaselinePerformanceFactors": {
     "$ref": "#/definitions/BaselinePerformanceFactors"
    },
    "BurstablePerformance": {
     "enum": [
      "excluded",
      "included",
      "required"
     ],
     "type": "string"
    },
    "CpuManufacturers": {
     "items": {
      "enum": [
       "amazon-web-services",
       "amd",
       "apple",
       "intel"
      ],
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "ExcludedInstanceTypes": {
     "items": {
      "maxLength": 30,
      "minLength": 1,
      "pattern": "[a-zA-Z0-9\\.\\*\\-]+",
      "type": "string"
     },
     "maxItems": 400,
     "type": "array",
     "uniqueItems": false
    },
    "InstanceGenerations": {
     "items": {
      "enum": [
       "current",
       "previous"
      ],
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "LocalStorage": {
     "enum": [
      "excluded",
      "included",
      "required"
     ],
     "type": "string"
    },
    "LocalStorageTypes": {
     "items": {
      "enum": [
       "hdd",
       "ssd"
      ],
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": {
     "type": "integer"
    },
    "MemoryGiBPerVCpu": {
     "$ref": "#/definitions/MemoryGiBPerVCpu"
    },
    "MemoryMiB": {
     "$ref": "#/definitions/MemoryMiB"
    },
    "NetworkBandwidthGbps": {
     "$ref": "#/definitions/NetworkBandwidthGbps"
    },
    "NetworkInterfaceCount": {
     "$ref": "#/definitions/NetworkInterfaceCount"
    },
    "OnDemandMaxPricePercentageOverLowestPrice": {
     "type": "integer"
    },
    "RequireHibernateSupport": {
     "type": "boolean"
    },
    "SpotMaxPricePercentageOverLowestPrice": {
     "type": "integer"
    },
    "TotalLocalStorageGB": {
     "$ref": "#/definitions/TotalLocalStorageGB"
    },
    "VCpuCount": {
     "$ref": "#/definitions/VCpuCount"
    }
   },
   "type": "object"
  },
  "Ipv4PrefixSpecification": {
   "additionalProperties": false,
   "properties": {
    "Ipv4Prefix": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "Ipv6Add": {
   "additionalProperties": false,
   "properties": {
    "Ipv6Address": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "Ipv6PrefixSpecification": {
   "additionalProperties": false,
   "properties": {
    "Ipv6Prefix": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "LaunchTemplateData": {
   "additionalProperties": false,
   "properties": {
    "BlockDeviceMappings": {
     "items": {
      "$ref": "#/definitions/BlockDeviceMapping"
     },
     "type": "array",
     "uniqueItems": false
    },
    "CapacityReservationSpecification": {
     "$ref": "#/definitions/CapacityReservationSpecification"
    },
    "CpuOptions": {
     "$ref": "#/definitions/CpuOptions"
    },
    "CreditSpecification": {
     "$ref": "#/definitions/CreditSpecification"
    },
    "DisableApiStop": {
     "type": "boolean"
    },
    "DisableApiTermination": {
     "type": "boolean"
    },
    "EbsOptimized": {
     "type": "boolean"
    },
    "EnclaveOptions": {
     "$ref": "#/definitions/EnclaveOptions"
    },
    "HibernationOptions": {
     "$ref": "#/definitions/HibernationOptions"
    },
    "IamInstanceProfile": {
     "$ref": "#/definitions/IamInstanceProfile"
    },
    "ImageId": {
     "format": "AWS::EC2::Image.Id",
     "type": "string"
    },
    "InstanceInitiatedShutdownBehavior": {
     "enum": [
      "stop",
      "terminate"
     ],
     "type": "string"
    },
    "InstanceMarketOptions": {
     "$ref": "#/definitions/InstanceMarketOptions"
    },
    "InstanceRequirements": {
     "$ref": "#/definitions/InstanceRequirements"
    },
    "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"
    },
    "KernelId": {
     "type": "string"
    },
    "KeyName": {
     "type": "string"
    },
    "LicenseSpecifications": {
     "items": {
      "$ref": "#/definitions/LicenseSpecification"
     },
     "type": "array",
     "uniqueItems": false
    },
    "MaintenanceOptions": {
     "$ref": "#/definitions/MaintenanceOptions"
    },
    "MetadataOptions": {
     "$ref": "#/definitions/MetadataOptions"
    },
    "Monitoring": {
     "$ref": "#/definitions/Monitoring"
    },
    "NetworkInterfaces": {
     "items": {
      "$ref": "#/definitions/NetworkInterface"
     },
     "type": "array",
     "uniqueItems": false
    },
    "Placement": {
     "$ref": "#/definitions/Placement"
    },
    "PrivateDnsNameOptions": {
     "$ref": "#/definitions/PrivateDnsNameOptions"
    },
    "RamDiskId": {
     "type": "string"
    },
    "SecurityGroupIds": {
     "format": "AWS::EC2::SecurityGroup.Ids",
     "items": {
      "format": "AWS::EC2::SecurityGroup.Id",
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "SecurityGroups": {
     "format": "AWS::EC2::SecurityGroup.Ids",
     "items": {
      "format": "AWS::EC2::SecurityGroup.Id",
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "TagSpecifications": {
     "items": {
      "$ref": "#/definitions/TagSpecification"
     },
     "type": "array",
     "uniqueItems": false
    },
    "UserData": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "LaunchTemplateTagSpecification": {
   "additionalProperties": false,
   "properties": {
    "ResourceType": {
     "enum": [
      "capacity-block",
      "capacity-manager-data-export",
      "capacity-reservation",
      "capacity-reservation-fleet",
      "carrier-gateway",
      "client-vpn-endpoint",
      "coip-pool",
      "customer-gateway",
      "declarative-policies-report",
      "dedicated-host",
      "dhcp-options",
      "egress-only-internet-gateway",
      "elastic-gpu",
      "elastic-ip",
      "export-image-task",
      "export-instance-task",
      "fleet",
      "fpga-image",
      "host-reservation",
      "image",
      "image-usage-report",
      "import-image-task",
      "import-snapshot-task",
      "instance",
      "instance-connect-endpoint",
      "instance-event-window",
      "internet-gateway",
      "ipam",
      "ipam-external-resource-verification-token",
      "ipam-policy",
      "ipam-pool",
      "ipam-prefix-list-resolver",
      "ipam-prefix-list-resolver-target",
      "ipam-resource-discovery",
      "ipam-resource-discovery-association",
      "ipam-scope",
      "ipv4pool-ec2",
      "ipv6pool-ec2",
      "key-pair",
      "launch-template",
      "local-gateway",
      "local-gateway-route-table",
      "local-gateway-route-table-virtual-interface-group-association",
      "local-gateway-route-table-vpc-association",
      "local-gateway-virtual-interface",
      "local-gateway-virtual-interface-group",
      "mac-modification-task",
      "natgateway",
      "network-acl",
      "network-insights-access-scope",
      "network-insights-access-scope-analysis",
      "network-insights-analysis",
      "network-insights-path",
      "network-interface",
      "outpost-lag",
      "placement-group",
      "prefix-list",
      "replace-root-volume-task",
      "reserved-instances",
      "route-server",
      "route-server-endpoint",
      "route-server-peer",
      "route-table",
      "security-group",
      "security-group-rule",
      "service-link-virtual-interface",
      "snapshot",
      "spot-fleet-request",
      "spot-instances-request",
      "subnet",
      "subnet-cidr-reservation",
      "traffic-mirror-filter",
      "traffic-mirror-filter-rule",
      "traffic-mirror-session",
      "traffic-mirror-target",
      "transit-gateway",
      "transit-gateway-attachment",
      "transit-gateway-connect-peer",
      "transit-gateway-metering-policy",
      "transit-gateway-multicast-domain",
      "transit-gateway-policy-table",
      "transit-gateway-route-table",
      "transit-gateway-route-table-announcement",
      "verified-access-endpoint",
      "verified-access-endpoint-target",
      "verified-access-group",
      "verified-access-instance",
      "verified-access-policy",
      "verified-access-trust-provider",
      "volume",
      "vpc",
      "vpc-block-public-access-exclusion",
      "vpc-encryption-control",
      "vpc-endpoint",
      "vpc-endpoint-connection",
      "vpc-endpoint-connection-device-type",
      "vpc-endpoint-service",
      "vpc-endpoint-service-permission",
      "vpc-flow-log",
      "vpc-peering-connection",
      "vpn-concentrator",
      "vpn-connection",
      "vpn-connection-device-type",
      "vpn-gateway"
     ],
     "type": "string"
    },
    "Tags": {
     "items": {
      "$ref": "#/definitions/Tag"
     },
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "LicenseSpecification": {
   "additionalProperties": false,
   "properties": {
    "LicenseConfigurationArn": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "MaintenanceOptions": {
   "additionalProperties": false,
   "properties": {
    "AutoRecovery": {
     "enum": [
      "default",
      "disabled"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "MemoryGiBPerVCpu": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "number"
    },
    "Min": {
     "type": "number"
    }
   },
   "type": "object"
  },
  "MemoryMiB": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "integer"
    },
    "Min": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "MetadataOptions": {
   "additionalProperties": false,
   "properties": {
    "HttpEndpoint": {
     "enum": [
      "disabled",
      "enabled"
     ],
     "type": "string"
    },
    "HttpProtocolIpv6": {
     "enum": [
      "disabled",
      "enabled"
     ],
     "type": "string"
    },
    "HttpPutResponseHopLimit": {
     "type": "integer"
    },
    "HttpTokens": {
     "enum": [
      "optional",
      "required"
     ],
     "type": "string"
    },
    "InstanceMetadataTags": {
     "enum": [
      "disabled",
      "enabled"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "Monitoring": {
   "additionalProperties": false,
   "properties": {
    "Enabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "NetworkBandwidthGbps": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "number"
    },
    "Min": {
     "type": "number"
    }
   },
   "type": "object"
  },
  "NetworkInterface": {
   "additionalProperties": false,
   "dependentExcluded": {
    "AssociateCarrierIpAddress": [
     "NetworkInterfaceId"
    ],
    "AssociatePublicIpAddress": [
     "NetworkInterfaceId"
    ],
    "NetworkInterfaceId": [
     "AssociateCarrierIpAddress",
     "AssociatePublicIpAddress"
    ]
   },
   "properties": {
    "AssociateCarrierIpAddress": {
     "type": "boolean"
    },
    "AssociatePublicIpAddress": {
     "type": "boolean"
    },
    "ConnectionTrackingSpecification": {
     "$ref": "#/definitions/ConnectionTrackingSpecification"
    },
    "DeleteOnTermination": {
     "type": "boolean"
    },
    "Description": {
     "type": "string"
    },
    "DeviceIndex": {
     "type": "integer"
    },
    "EnaQueueCount": {
     "type": "integer"
    },
    "EnaSrdSpecification": {
     "$ref": "#/definitions/EnaSrdSpecification"
    },
    "Groups": {
     "items": {
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "InterfaceType": {
     "type": "string"
    },
    "Ipv4PrefixCount": {
     "type": "integer"
    },
    "Ipv4Prefixes": {
     "items": {
      "$ref": "#/definitions/Ipv4PrefixSpecification"
     },
     "type": "array",
     "uniqueItems": false
    },
    "Ipv6AddressCount": {
     "type": "integer"
    },
    "Ipv6Addresses": {
     "items": {
      "$ref": "#/definitions/Ipv6Add"
     },
     "type": "array",
     "uniqueItems": false
    },
    "Ipv6PrefixCount": {
     "type": "integer"
    },
    "Ipv6Prefixes": {
     "items": {
      "$ref": "#/definitions/Ipv6PrefixSpecification"
     },
     "type": "array",
     "uniqueItems": false
    },
    "NetworkCardIndex": {
     "type": "integer"
    },
    "NetworkInterfaceId": {
     "type": "string"
    },
    "PrimaryIpv6": {
     "type": "boolean"
    },
    "PrivateIpAddress": {
     "type": "string"
    },
    "PrivateIpAddresses": {
     "items": {
      "$ref": "#/definitions/PrivateIpAdd"
     },
     "type": "array",
     "uniqueItems": false
    },
    "SecondaryPrivateIpAddressCount": {
     "type": "integer"
    },
    "SubnetId": {
     "format": "AWS::EC2::Subnet.Id",
     "type": "string"
    }
   },
   "type": "object"
  },
  "NetworkInterfaceCount": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "integer"
    },
    "Min": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "NetworkPerformanceOptions": {
   "additionalProperties": false,
   "properties": {
    "BandwidthWeighting": {
     "enum": [
      "default",
      "ebs-1",
      "vpc-1"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "Placement": {
   "additionalProperties": false,
   "properties": {
    "Affinity": {
     "type": "string"
    },
    "AvailabilityZone": {
     "type": "string"
    },
    "GroupId": {
     "type": "string"
    },
    "GroupName": {
     "type": "string"
    },
    "HostId": {
     "type": "string"
    },
    "HostResourceGroupArn": {
     "type": "string"
    },
    "PartitionNumber": {
     "type": "integer"
    },
    "SpreadDomain": {
     "type": "string"
    },
    "Tenancy": {
     "enum": [
      "dedicated",
      "default",
      "host"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "PrivateDnsNameOptions": {
   "additionalProperties": false,
   "properties": {
    "EnableResourceNameDnsAAAARecord": {
     "type": "boolean"
    },
    "EnableResourceNameDnsARecord": {
     "type": "boolean"
    },
    "HostnameType": {
     "enum": [
      "ip-name",
      "resource-name"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "PrivateIpAdd": {
   "additionalProperties": false,
   "properties": {
    "Primary": {
     "type": "boolean"
    },
    "PrivateIpAddress": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "Reference": {
   "additionalProperties": false,
   "properties": {
    "InstanceFamily": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "References": {
   "insertionOrder": true,
   "items": {
    "$ref": "#/definitions/Reference"
   },
   "type": "array",
   "uniqueItems": true
  },
  "SpotOptions": {
   "additionalProperties": false,
   "properties": {
    "BlockDurationMinutes": {
     "type": "integer"
    },
    "InstanceInterruptionBehavior": {
     "enum": [
      "hibernate",
      "stop",
      "terminate"
     ],
     "type": "string"
    },
    "MaxPrice": {
     "type": "string"
    },
    "SpotInstanceType": {
     "enum": [
      "one-time",
      "persistent"
     ],
     "type": "string"
    },
    "ValidUntil": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "type": "string"
    },
    "Value": {
     "type": "string"
    }
   },
   "required": [
    "Value",
    "Key"
   ],
   "type": "object"
  },
  "TagSpecification": {
   "additionalProperties": false,
   "properties": {
    "ResourceType": {
     "enum": [
      "capacity-block",
      "capacity-manager-data-export",
      "capacity-reservation",
      "capacity-reservation-fleet",
      "carrier-gateway",
      "client-vpn-endpoint",
      "coip-pool",
      "customer-gateway",
      "declarative-policies-report",
      "dedicated-host",
      "dhcp-options",
      "egress-only-internet-gateway",
      "elastic-gpu",
      "elastic-ip",
      "export-image-task",
      "export-instance-task",
      "fleet",
      "fpga-image",
      "host-reservation",
      "image",
      "image-usage-report",
      "import-image-task",
      "import-snapshot-task",
      "instance",
      "instance-connect-endpoint",
      "instance-event-window",
      "internet-gateway",
      "ipam",
      "ipam-external-resource-verification-token",
      "ipam-policy",
      "ipam-pool",
      "ipam-prefix-list-resolver",
      "ipam-prefix-list-resolver-target",
      "ipam-resource-discovery",
      "ipam-resource-discovery-association",
      "ipam-scope",
      "ipv4pool-ec2",
      "ipv6pool-ec2",
      "key-pair",
      "launch-template",
      "local-gateway",
      "local-gateway-route-table",
      "local-gateway-route-table-virtual-interface-group-association",
      "local-gateway-route-table-vpc-association",
      "local-gateway-virtual-interface",
      "local-gateway-virtual-interface-group",
      "mac-modification-task",
      "natgateway",
      "network-acl",
      "network-insights-access-scope",
      "network-insights-access-scope-analysis",
      "network-insights-analysis",
      "network-insights-path",
      "network-interface",
      "outpost-lag",
      "placement-group",
      "prefix-list",
      "replace-root-volume-task",
      "reserved-instances",
      "route-server",
      "route-server-endpoint",
      "route-server-peer",
      "route-table",
      "security-group",
      "security-group-rule",
      "service-link-virtual-interface",
      "snapshot",
      "spot-fleet-request",
      "spot-instances-request",
      "subnet",
      "subnet-cidr-reservation",
      "traffic-mirror-filter",
      "traffic-mirror-filter-rule",
      "traffic-mirror-session",
      "traffic-mirror-target",
      "transit-gateway",
      "transit-gateway-attachment",
      "transit-gateway-connect-peer",
      "transit-gateway-metering-policy",
      "transit-gateway-multicast-domain",
      "transit-gateway-policy-table",
      "transit-gateway-route-table",
      "transit-gateway-route-table-announcement",
      "verified-access-endpoint",
      "verified-access-endpoint-target",
      "verified-access-group",
      "verified-access-instance",
      "verified-access-policy",
      "verified-access-trust-provider",
      "volume",
      "vpc",
      "vpc-block-public-access-exclusion",
      "vpc-encryption-control",
      "vpc-endpoint",
      "vpc-endpoint-connection",
      "vpc-endpoint-connection-device-type",
      "vpc-endpoint-service",
      "vpc-endpoint-service-permission",
      "vpc-flow-log",
      "vpc-peering-connection",
      "vpn-concentrator",
      "vpn-connection",
      "vpn-connection-device-type",
      "vpn-gateway"
     ],
     "type": "string"
    },
    "Tags": {
     "items": {
      "$ref": "#/definitions/Tag"
     },
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "TotalLocalStorageGB": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "number"
    },
    "Min": {
     "type": "number"
    }
   },
   "type": "object"
  },
  "VCpuCount": {
   "additionalProperties": false,
   "properties": {
    "Max": {
     "type": "integer"
    },
    "Min": {
     "type": "integer"
    }
   },
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/LaunchTemplateId"
 ],
 "properties": {
  "DefaultVersionNumber": {
   "type": "string"
  },
  "LatestVersionNumber": {
   "type": "string"
  },
  "LaunchTemplateData": {
   "$ref": "#/definitions/LaunchTemplateData"
  },
  "LaunchTemplateId": {
   "type": "string"
  },
  "LaunchTemplateName": {
   "maxLength": 128,
   "minLength": 3,
   "pattern": "[a-zA-Z0-9\\(\\)\\.\\-/_]+",
   "type": "string"
  },
  "TagSpecifications": {
   "items": {
    "$ref": "#/definitions/LaunchTemplateTagSpecification"
   },
   "type": "array",
   "uniqueItems": false
  },
  "VersionDescription": {
   "maxLength": 255,
   "type": "string"
  }
 },
 "readOnlyProperties": [
  "/properties/DefaultVersionNumber",
  "/properties/LaunchTemplateId",
  "/properties/LatestVersionNumber"
 ],
 "required": [
  "LaunchTemplateData"
 ],
 "tagging": {
  "cloudFormationSystemTags": false,
  "tagOnCreate": false,
  "tagUpdatable": false,
  "taggable": false
 },
 "typeName": "AWS::EC2::LaunchTemplate",
 "writeOnlyProperties": [
  "/properties/LaunchTemplateData",
  "/properties/VersionDescription",
  "/properties/TagSpecifications"
 ]
}
