{
  "description": "Instance is the Schema for the Instances API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "InstanceSpec defines the desired state of Instance.\n\nDescribes an instance.",
      "properties": {
        "blockDeviceMappings": {
          "description": "The block device mapping, which defines the EBS volumes and instance store\nvolumes to attach to the instance at launch. For more information, see Block\ndevice mappings (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)\nin the Amazon EC2 User Guide.",
          "items": {
            "description": "Describes a block device mapping, which defines the EBS volumes and instance\nstore volumes to attach to an instance at launch.",
            "properties": {
              "deviceName": {
                "type": "string"
              },
              "ebs": {
                "description": "Describes a block device for an EBS volume.",
                "properties": {
                  "deleteOnTermination": {
                    "type": "boolean"
                  },
                  "encrypted": {
                    "type": "boolean"
                  },
                  "iops": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "kmsKeyID": {
                    "type": "string"
                  },
                  "outpostARN": {
                    "type": "string"
                  },
                  "snapshotID": {
                    "type": "string"
                  },
                  "throughput": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "volumeSize": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "volumeType": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "noDevice": {
                "type": "string"
              },
              "virtualName": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "capacityReservationSpecification": {
          "description": "Information about the Capacity Reservation targeting option. If you do not\nspecify this parameter, the instance's Capacity Reservation preference defaults\nto open, which enables it to run in any open Capacity Reservation that has\nmatching attributes (instance type, platform, Availability Zone, and tenancy).",
          "properties": {
            "capacityReservationPreference": {
              "type": "string"
            },
            "capacityReservationTarget": {
              "description": "Describes a target Capacity Reservation or Capacity Reservation group.",
              "properties": {
                "capacityReservationID": {
                  "type": "string"
                },
                "capacityReservationResourceGroupARN": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "cpuOptions": {
          "description": "The CPU options for the instance. For more information, see Optimize CPU\noptions (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html)\nin the Amazon EC2 User Guide.",
          "properties": {
            "coreCount": {
              "format": "int64",
              "type": "integer"
            },
            "threadsPerCore": {
              "format": "int64",
              "type": "integer"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "creditSpecification": {
          "description": "The credit option for CPU usage of the burstable performance instance. Valid\nvalues are standard and unlimited. To change this attribute after launch,\nuse ModifyInstanceCreditSpecification (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceCreditSpecification.html).\nFor more information, see Burstable performance instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)\nin the Amazon EC2 User Guide.\n\nDefault: standard (T2 instances) or unlimited (T3/T3a/T4g instances)\n\nFor T3 instances with host tenancy, only standard is supported.",
          "properties": {
            "cpuCredits": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "disableAPIStop": {
          "description": "Indicates whether an instance is enabled for stop protection. For more information,\nsee Stop protection (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection).",
          "type": "boolean"
        },
        "disableAPITermination": {
          "description": "If you set this parameter to true, you can't terminate the instance using\nthe Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute\nafter launch, use ModifyInstanceAttribute (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html).\nAlternatively, if you set InstanceInitiatedShutdownBehavior to terminate,\nyou can terminate the instance by running the shutdown command from the instance.\n\nDefault: false",
          "type": "boolean"
        },
        "ebsOptimized": {
          "description": "Indicates whether the instance is optimized for Amazon EBS I/O. This optimization\nprovides dedicated throughput to Amazon EBS and an optimized configuration\nstack to provide optimal Amazon EBS I/O performance. This optimization isn't\navailable with all instance types. Additional usage charges apply when using\nan EBS-optimized instance.\n\nDefault: false",
          "type": "boolean"
        },
        "elasticGPUSpecification": {
          "description": "An elastic GPU to associate with the instance.\n\nAmazon Elastic Graphics reached end of life on January 8, 2024.",
          "items": {
            "description": "Amazon Elastic Graphics reached end of life on January 8, 2024.\n\nA specification for an Elastic Graphics accelerator.",
            "properties": {
              "type": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "elasticInferenceAccelerators": {
          "description": "An elastic inference accelerator to associate with the instance.\n\nAmazon Elastic Inference is no longer available.",
          "items": {
            "description": "Amazon Elastic Inference is no longer available.\n\nDescribes an elastic inference accelerator.",
            "properties": {
              "count": {
                "format": "int64",
                "type": "integer"
              },
              "type_": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "enclaveOptions": {
          "description": "Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.\nFor more information, see What is Amazon Web Services Nitro Enclaves? (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html)\nin the Amazon Web Services Nitro Enclaves User Guide.\n\nYou can't enable Amazon Web Services Nitro Enclaves and hibernation on the\nsame instance.",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "hibernationOptions": {
          "description": "Indicates whether an instance is enabled for hibernation. This parameter\nis valid only if the instance meets the hibernation prerequisites (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html).\nFor more information, see Hibernate your Amazon EC2 instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)\nin the Amazon EC2 User Guide.\n\nYou can't enable hibernation and Amazon Web Services Nitro Enclaves on the\nsame instance.",
          "properties": {
            "configured": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "iamInstanceProfile": {
          "description": "The name or Amazon Resource Name (ARN) of an IAM instance profile.",
          "properties": {
            "arn": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "imageID": {
          "description": "The ID of the AMI. An AMI ID is required to launch an instance and must be\nspecified here or in a launch template.",
          "type": "string"
        },
        "instanceInitiatedShutdownBehavior": {
          "description": "Indicates whether an instance stops or terminates when you initiate shutdown\nfrom the instance (using the operating system command for system shutdown).\n\nDefault: stop",
          "type": "string"
        },
        "instanceMarketOptions": {
          "description": "The market (purchasing) option for the instances.\n\nFor RunInstances, persistent Spot Instance requests are only supported when\nInstanceInterruptionBehavior is set to either hibernate or stop.",
          "properties": {
            "marketType": {
              "type": "string"
            },
            "spotOptions": {
              "description": "The options for Spot Instances.",
              "properties": {
                "blockDurationMinutes": {
                  "format": "int64",
                  "type": "integer"
                },
                "instanceInterruptionBehavior": {
                  "type": "string"
                },
                "maxPrice": {
                  "type": "string"
                },
                "spotInstanceType": {
                  "type": "string"
                },
                "validUntil": {
                  "format": "date-time",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "instanceType": {
          "description": "The instance type. For more information, see Amazon EC2 instance types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)\nin the Amazon EC2 User Guide.",
          "type": "string"
        },
        "ipv6AddressCount": {
          "description": "The number of IPv6 addresses to associate with the primary network interface.\nAmazon EC2 chooses the IPv6 addresses from the range of your subnet. You\ncannot specify this option and the option to assign specific IPv6 addresses\nin the same request. You can specify this option if you've specified a minimum\nnumber of instances to launch.\n\nYou cannot specify this option and the network interfaces option in the same\nrequest.",
          "format": "int64",
          "type": "integer"
        },
        "ipv6Addresses": {
          "description": "The IPv6 addresses from the range of the subnet to associate with the primary\nnetwork interface. You cannot specify this option and the option to assign\na number of IPv6 addresses in the same request. You cannot specify this option\nif you've specified a minimum number of instances to launch.\n\nYou cannot specify this option and the network interfaces option in the same\nrequest.",
          "items": {
            "description": "Describes an IPv6 address.",
            "properties": {
              "ipv6Address": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "kernelID": {
          "description": "The ID of the kernel.\n\nWe recommend that you use PV-GRUB instead of kernels and RAM disks. For more\ninformation, see PV-GRUB (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html)\nin the Amazon EC2 User Guide.",
          "type": "string"
        },
        "keyName": {
          "description": "The name of the key pair. You can create a key pair using CreateKeyPair (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html)\nor ImportKeyPair (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html).\n\nIf you do not specify a key pair, you can't connect to the instance unless\nyou choose an AMI that is configured to allow users another way to log in.",
          "type": "string"
        },
        "launchTemplate": {
          "description": "The launch template. Any additional parameters that you specify for the new\ninstance overwrite the corresponding parameters included in the launch template.",
          "properties": {
            "launchTemplateID": {
              "type": "string"
            },
            "launchTemplateName": {
              "type": "string"
            },
            "launchTemplateRef": {
              "description": "Reference field for LaunchTemplateID",
              "properties": {
                "from": {
                  "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "namespace": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "version": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "licenseSpecifications": {
          "description": "The license configurations.",
          "items": {
            "description": "Describes a license configuration.",
            "properties": {
              "licenseConfigurationARN": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "maintenanceOptions": {
          "description": "The maintenance and recovery options for the instance.",
          "properties": {
            "autoRecovery": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "maxCount": {
          "description": "The maximum number of instances to launch. If you specify a value that is\nmore capacity than Amazon EC2 can launch in the target Availability Zone,\nAmazon EC2 launches the largest possible number of instances above the specified\nminimum count.\n\nConstraints: Between 1 and the quota for the specified instance type for\nyour account for this Region. For more information, see Amazon EC2 instance\ntype quotas (https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-quotas.html).",
          "format": "int64",
          "type": "integer"
        },
        "metadataOptions": {
          "description": "The metadata options for the instance. For more information, see Instance\nmetadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html).",
          "properties": {
            "httpEndpoint": {
              "type": "string"
            },
            "httpProtocolIPv6": {
              "type": "string"
            },
            "httpPutResponseHopLimit": {
              "format": "int64",
              "type": "integer"
            },
            "httpTokens": {
              "type": "string"
            },
            "instanceMetadataTags": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "minCount": {
          "description": "The minimum number of instances to launch. If you specify a value that is\nmore capacity than Amazon EC2 can provide in the target Availability Zone,\nAmazon EC2 does not launch any instances.\n\nConstraints: Between 1 and the quota for the specified instance type for\nyour account for this Region. For more information, see Amazon EC2 instance\ntype quotas (https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-quotas.html).",
          "format": "int64",
          "type": "integer"
        },
        "monitoring": {
          "description": "Specifies whether detailed monitoring is enabled for the instance.",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "networkInterfaces": {
          "description": "The network interfaces to associate with the instance.",
          "items": {
            "description": "Describes a network interface.",
            "properties": {
              "associateCarrierIPAddress": {
                "type": "boolean"
              },
              "associatePublicIPAddress": {
                "type": "boolean"
              },
              "deleteOnTermination": {
                "type": "boolean"
              },
              "description": {
                "type": "string"
              },
              "deviceIndex": {
                "format": "int64",
                "type": "integer"
              },
              "interfaceType": {
                "type": "string"
              },
              "ipv4PrefixCount": {
                "format": "int64",
                "type": "integer"
              },
              "ipv4Prefixes": {
                "items": {
                  "description": "Describes the IPv4 prefix option for a network interface.",
                  "properties": {
                    "ipv4Prefix": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "ipv6AddressCount": {
                "format": "int64",
                "type": "integer"
              },
              "ipv6Addresses": {
                "items": {
                  "description": "Describes an IPv6 address.",
                  "properties": {
                    "ipv6Address": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "ipv6PrefixCount": {
                "format": "int64",
                "type": "integer"
              },
              "ipv6Prefixes": {
                "items": {
                  "description": "Describes the IPv4 prefix option for a network interface.",
                  "properties": {
                    "ipv6Prefix": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "networkCardIndex": {
                "format": "int64",
                "type": "integer"
              },
              "networkInterfaceID": {
                "type": "string"
              },
              "privateIPAddress": {
                "type": "string"
              },
              "privateIPAddresses": {
                "items": {
                  "description": "Describes a secondary private IPv4 address for a network interface.",
                  "properties": {
                    "primary": {
                      "type": "boolean"
                    },
                    "privateIPAddress": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "secondaryPrivateIPAddressCount": {
                "format": "int64",
                "type": "integer"
              },
              "subnetID": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "placement": {
          "description": "The placement for the instance.",
          "properties": {
            "affinity": {
              "type": "string"
            },
            "availabilityZone": {
              "type": "string"
            },
            "groupName": {
              "type": "string"
            },
            "hostID": {
              "type": "string"
            },
            "hostResourceGroupARN": {
              "type": "string"
            },
            "partitionNumber": {
              "format": "int64",
              "type": "integer"
            },
            "spreadDomain": {
              "type": "string"
            },
            "tenancy": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "privateDNSNameOptions": {
          "description": "The options for the instance hostname. The default values are inherited from\nthe subnet. Applies only if creating a network interface, not attaching an\nexisting one.",
          "properties": {
            "enableResourceNameDNSAAAARecord": {
              "type": "boolean"
            },
            "enableResourceNameDNSARecord": {
              "type": "boolean"
            },
            "hostnameType": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "privateIPAddress": {
          "description": "The primary IPv4 address. You must specify a value from the IPv4 address\nrange of the subnet.\n\nOnly one private IP address can be designated as primary. You can't specify\nthis option if you've specified the option to designate a private IP address\nas the primary IP address in a network interface specification. You cannot\nspecify this option if you're launching more than one instance in the request.\n\nYou cannot specify this option and the network interfaces option in the same\nrequest.",
          "type": "string"
        },
        "ramDiskID": {
          "description": "The ID of the RAM disk to select. Some kernels require additional drivers\nat launch. Check the kernel requirements for information about whether you\nneed to specify a RAM disk. To find kernel requirements, go to the Amazon\nWeb Services Resource Center and search for the kernel ID.\n\nWe recommend that you use PV-GRUB instead of kernels and RAM disks. For more\ninformation, see PV-GRUB (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html)\nin the Amazon EC2 User Guide.",
          "type": "string"
        },
        "securityGroupIDs": {
          "description": "The IDs of the security groups. You can create a security group using CreateSecurityGroup\n(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html).\n\nIf you specify a network interface, you must specify any security groups\nas part of the network interface instead of using this parameter.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "securityGroups": {
          "description": "[Default VPC] The names of the security groups.\n\nIf you specify a network interface, you must specify any security groups\nas part of the network interface instead of using this parameter.\n\nDefault: Amazon EC2 uses the default security group.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "subnetID": {
          "description": "The ID of the subnet to launch the instance into.\n\nIf you specify a network interface, you must specify any subnets as part\nof the network interface instead of using this parameter.",
          "type": "string"
        },
        "subnetRef": {
          "description": "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference\ntype to provide more user friendly syntax for references using 'from' field\nEx:\nAPIIDRef:\n\n\tfrom:\n\t  name: my-api",
          "properties": {
            "from": {
              "description": "AWSResourceReference provides all the values necessary to reference another\nk8s resource for finding the identifier(Id/ARN/Name)",
              "properties": {
                "name": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "description": "The tags. The value parameter is required, but if you don't want the tag\nto have a value, specify the parameter with no value, and we set the value\nto an empty string.",
          "items": {
            "description": "Describes a tag.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "userData": {
          "description": "The user data to make available to the instance. User data must be base64-encoded.\nDepending on the tool or SDK that you're using, the base64-encoding might\nbe performed for you. For more information, see Work with instance user data\n(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-add-user-data.html).",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "InstanceStatus defines the observed state of Instance",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "amiLaunchIndex": {
          "description": "The AMI launch index, which can be used to find this instance in the launch\ngroup.",
          "format": "int64",
          "type": "integer"
        },
        "architecture": {
          "description": "The architecture of the image.",
          "type": "string"
        },
        "bootMode": {
          "description": "The boot mode that was specified by the AMI. If the value is uefi-preferred,\nthe AMI supports both UEFI and Legacy BIOS. The currentInstanceBootMode parameter\nis the boot mode that is used to boot the instance at launch or start.\n\nThe operating system contained in the AMI must be configured to support the\nspecified boot mode.\n\nFor more information, see Boot modes (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html)\nin the Amazon EC2 User Guide.",
          "type": "string"
        },
        "capacityReservationID": {
          "description": "The ID of the Capacity Reservation.",
          "type": "string"
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "elasticGPUAssociations": {
          "description": "Deprecated.\n\nAmazon Elastic Graphics reached end of life on January 8, 2024.",
          "items": {
            "description": "Amazon Elastic Graphics reached end of life on January 8, 2024.\n\nDescribes the association between an instance and an Elastic Graphics accelerator.",
            "properties": {
              "elasticGPUAssociationID": {
                "type": "string"
              },
              "elasticGPUAssociationState": {
                "type": "string"
              },
              "elasticGPUAssociationTime": {
                "type": "string"
              },
              "elasticGPUID": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "elasticInferenceAcceleratorAssociations": {
          "description": "Deprecated\n\nAmazon Elastic Inference is no longer available.",
          "items": {
            "description": "Amazon Elastic Inference is no longer available.\n\nDescribes the association between an instance and an elastic inference accelerator.",
            "properties": {
              "elasticInferenceAcceleratorARN": {
                "type": "string"
              },
              "elasticInferenceAcceleratorAssociationID": {
                "type": "string"
              },
              "elasticInferenceAcceleratorAssociationState": {
                "type": "string"
              },
              "elasticInferenceAcceleratorAssociationTime": {
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "enaSupport": {
          "description": "Specifies whether enhanced networking with ENA is enabled.",
          "type": "boolean"
        },
        "hypervisor": {
          "description": "The hypervisor type of the instance. The value xen is used for both Xen and\nNitro hypervisors.",
          "type": "string"
        },
        "instanceID": {
          "description": "The ID of the instance.",
          "type": "string"
        },
        "instanceLifecycle": {
          "description": "Indicates whether this is a Spot Instance or a Scheduled Instance.",
          "type": "string"
        },
        "ipv6Address": {
          "description": "The IPv6 address assigned to the instance.",
          "type": "string"
        },
        "launchTime": {
          "description": "The time that the instance was last launched. To determine the time that\ninstance was first launched, see the attachment time for the primary network\ninterface.",
          "format": "date-time",
          "type": "string"
        },
        "licenses": {
          "description": "The license configurations for the instance.",
          "items": {
            "description": "Describes a license configuration.",
            "properties": {
              "licenseConfigurationARN": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "outpostARN": {
          "description": "The Amazon Resource Name (ARN) of the Outpost.",
          "type": "string"
        },
        "platform": {
          "description": "The platform. This value is windows for Windows instances; otherwise, it\nis empty.",
          "type": "string"
        },
        "platformDetails": {
          "description": "The platform details value for the instance. For more information, see AMI\nbilling information fields (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html)\nin the Amazon EC2 User Guide.",
          "type": "string"
        },
        "privateDNSName": {
          "description": "[IPv4 only] The private DNS hostname name assigned to the instance. This\nDNS hostname can only be used inside the Amazon EC2 network. This name is\nnot available until the instance enters the running state.\n\nThe Amazon-provided DNS server resolves Amazon-provided private DNS hostnames\nif you've enabled DNS resolution and DNS hostnames in your VPC. If you are\nnot using the Amazon-provided DNS server in your VPC, your custom domain\nname servers must resolve the hostname as appropriate.",
          "type": "string"
        },
        "productCodes": {
          "description": "The product codes attached to this instance, if applicable.",
          "items": {
            "description": "Describes a product code.",
            "properties": {
              "productCodeID": {
                "type": "string"
              },
              "productCodeType": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "publicDNSName": {
          "description": "[IPv4 only] The public DNS name assigned to the instance. This name is not\navailable until the instance enters the running state. This name is only\navailable if you've enabled DNS hostnames for your VPC.",
          "type": "string"
        },
        "publicIPAddress": {
          "description": "The public IPv4 address, or the Carrier IP address assigned to the instance,\nif applicable.\n\nA Carrier IP address only applies to an instance launched in a subnet associated\nwith a Wavelength Zone.",
          "type": "string"
        },
        "rootDeviceName": {
          "description": "The device name of the root device volume (for example, /dev/sda1).",
          "type": "string"
        },
        "rootDeviceType": {
          "description": "The root device type used by the AMI. The AMI can use an EBS volume or an\ninstance store volume.",
          "type": "string"
        },
        "sourceDestCheck": {
          "description": "Indicates whether source/destination checking is enabled.",
          "type": "boolean"
        },
        "spotInstanceRequestID": {
          "description": "If the request is a Spot Instance request, the ID of the request.",
          "type": "string"
        },
        "sriovNetSupport": {
          "description": "Specifies whether enhanced networking with the Intel 82599 Virtual Function\ninterface is enabled.",
          "type": "string"
        },
        "state": {
          "description": "The current state of the instance.",
          "properties": {
            "code": {
              "format": "int64",
              "type": "integer"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "stateReason": {
          "description": "The reason for the most recent state transition.",
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "stateTransitionReason": {
          "description": "The reason for the most recent state transition. This might be an empty string.",
          "type": "string"
        },
        "tpmSupport": {
          "description": "If the instance is configured for NitroTPM support, the value is v2.0. For\nmore information, see NitroTPM (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html)\nin the Amazon EC2 User Guide.",
          "type": "string"
        },
        "usageOperation": {
          "description": "The usage operation value for the instance. For more information, see AMI\nbilling information fields (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/billing-info-fields.html)\nin the Amazon EC2 User Guide.",
          "type": "string"
        },
        "usageOperationUpdateTime": {
          "description": "The time that the usage operation was last updated.",
          "format": "date-time",
          "type": "string"
        },
        "virtualizationType": {
          "description": "The virtualization type of the instance.",
          "type": "string"
        },
        "vpcID": {
          "description": "The ID of the VPC in which the instance is running.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
