---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.16.0
  name: launchtemplateversions.ec2.aws.crossplane.io
spec:
  group: ec2.aws.crossplane.io
  names:
    categories:
    - crossplane
    - managed
    - aws
    kind: LaunchTemplateVersion
    listKind: LaunchTemplateVersionList
    plural: launchtemplateversions
    singular: launchtemplateversion
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: READY
      type: string
    - jsonPath: .status.conditions[?(@.type=='Synced')].status
      name: SYNCED
      type: string
    - jsonPath: .metadata.annotations.crossplane\.io/external-name
      name: EXTERNAL-NAME
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: LaunchTemplateVersion is the Schema for the LaunchTemplateVersions
          API
        properties:
          apiVersion:
            description: |-
              APIVersion defines the versioned schema of this representation of an object.
              Servers should convert recognized schemas to the latest internal value, and
              may reject unrecognized values.
              More 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.
              Servers may infer this from the endpoint the client submits requests to.
              Cannot be updated.
              In CamelCase.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
            type: string
          metadata:
            type: object
          spec:
            description: LaunchTemplateVersionSpec defines the desired state of LaunchTemplateVersion
            properties:
              deletionPolicy:
                default: Delete
                description: |-
                  DeletionPolicy specifies what will happen to the underlying external
                  when this managed resource is deleted - either "Delete" or "Orphan" the
                  external resource.
                  This field is planned to be deprecated in favor of the ManagementPolicies
                  field in a future release. Currently, both could be set independently and
                  non-default values would be honored if the feature flag is enabled.
                  See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
                enum:
                - Orphan
                - Delete
                type: string
              forProvider:
                description: LaunchTemplateVersionParameters defines the desired state
                  of LaunchTemplateVersion
                properties:
                  launchTemplateData:
                    description: The information for the launch template.
                    properties:
                      blockDeviceMappings:
                        items:
                          properties:
                            deviceName:
                              type: string
                            ebs:
                              description: The parameters for a block device for an
                                EBS volume.
                              properties:
                                deleteOnTermination:
                                  type: boolean
                                encrypted:
                                  type: boolean
                                iops:
                                  format: int64
                                  type: integer
                                kmsKeyID:
                                  type: string
                                snapshotID:
                                  type: string
                                throughput:
                                  format: int64
                                  type: integer
                                volumeSize:
                                  format: int64
                                  type: integer
                                volumeType:
                                  type: string
                              type: object
                            noDevice:
                              type: string
                            virtualName:
                              type: string
                          type: object
                        type: array
                      capacityReservationSpecification:
                        description: |-
                          Describes an instance's Capacity Reservation targeting option. You can specify
                          only one option at a time. Use the CapacityReservationPreference parameter
                          to configure the instance to run in On-Demand capacity or to run in any open
                          Capacity Reservation that has matching attributes (instance type, platform,
                          Availability Zone). Use the CapacityReservationTarget parameter to explicitly
                          target a specific Capacity Reservation or a Capacity Reservation group.
                        properties:
                          capacityReservationPreference:
                            type: string
                          capacityReservationTarget:
                            description: Describes a target Capacity Reservation or
                              Capacity Reservation group.
                            properties:
                              capacityReservationID:
                                type: string
                              capacityReservationResourceGroupARN:
                                type: string
                            type: object
                        type: object
                      cpuOptions:
                        description: |-
                          The CPU options for the instance. Both the core count and threads per core
                          must be specified in the request.
                        properties:
                          amdSevSnp:
                            type: string
                          coreCount:
                            format: int64
                            type: integer
                          threadsPerCore:
                            format: int64
                            type: integer
                        type: object
                      creditSpecification:
                        description: The credit option for CPU usage of a T instance.
                        properties:
                          cpuCredits:
                            type: string
                        type: object
                      disableAPIStop:
                        type: boolean
                      disableAPITermination:
                        type: boolean
                      ebsOptimized:
                        type: boolean
                      elasticGPUSpecifications:
                        items:
                          properties:
                            type_:
                              type: string
                          type: object
                        type: array
                      elasticInferenceAccelerators:
                        items:
                          properties:
                            count:
                              format: int64
                              type: integer
                            type_:
                              type: string
                          type: object
                        type: array
                      enclaveOptions:
                        description: |-
                          Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves.
                          For more information, see What is Amazon Web Services Nitro Enclaves? (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html)
                          in the Amazon Web Services Nitro Enclaves User Guide.
                        properties:
                          enabled:
                            type: boolean
                        type: object
                      hibernationOptions:
                        description: |-
                          Indicates whether the instance is configured for hibernation. This parameter
                          is valid only if the instance meets the hibernation prerequisites (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html).
                        properties:
                          configured:
                            type: boolean
                        type: object
                      iamInstanceProfile:
                        description: An IAM instance profile.
                        properties:
                          arn:
                            type: string
                          name:
                            type: string
                        type: object
                      imageID:
                        type: string
                      instanceInitiatedShutdownBehavior:
                        type: string
                      instanceMarketOptions:
                        description: The market (purchasing) option for the instances.
                        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
                        type: object
                      instanceRequirements:
                        description: |-
                          The attributes for the instance types. When you specify instance attributes,
                          Amazon EC2 will identify instance types with these attributes.

                          You must specify VCpuCount and MemoryMiB. All other attributes are optional.
                          Any unspecified optional attribute is set to its default.

                          When you specify multiple attributes, you get instance types that satisfy
                          all of the specified attributes. If you specify multiple values for an attribute,
                          you get instance types that satisfy any of the specified values.

                          To limit the list of instance types from which Amazon EC2 can identify matching
                          instance types, you can use one of the following parameters, but not both
                          in the same request:

                             * AllowedInstanceTypes - The instance types to include in the list. All
                             other instance types are ignored, even if they match your specified attributes.

                             * ExcludedInstanceTypes - The instance types to exclude from the list,
                             even if they match your specified attributes.

                          If you specify InstanceRequirements, you can't specify InstanceType.

                          Attribute-based instance type selection is only supported when using Auto
                          Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan
                          to use the launch template in the launch instance wizard (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html),
                          or with the RunInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)
                          API or AWS::EC2::Instance (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html)
                          Amazon Web Services CloudFormation resource, you can't specify InstanceRequirements.

                          For more information, see Attribute-based instance type selection for EC2
                          Fleet (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html),
                          Attribute-based instance type selection for Spot Fleet (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html),
                          and Spot placement score (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html)
                          in the Amazon EC2 User Guide.
                        properties:
                          acceleratorCount:
                            description: |-
                              The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web
                              Services Inferentia chips) on an instance. To exclude accelerator-enabled
                              instance types, set Max to 0.
                            properties:
                              max:
                                format: int64
                                type: integer
                              min:
                                format: int64
                                type: integer
                            type: object
                          acceleratorManufacturers:
                            items:
                              type: string
                            type: array
                          acceleratorNames:
                            items:
                              type: string
                            type: array
                          acceleratorTotalMemoryMiB:
                            description: The minimum and maximum amount of total accelerator
                              memory, in MiB.
                            properties:
                              max:
                                format: int64
                                type: integer
                              min:
                                format: int64
                                type: integer
                            type: object
                          acceleratorTypes:
                            items:
                              type: string
                            type: array
                          allowedInstanceTypes:
                            items:
                              type: string
                            type: array
                          bareMetal:
                            type: string
                          baselineEBSBandwidthMbps:
                            description: |-
                              The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more
                              information, see Amazon EBS–optimized instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)
                              in the Amazon EC2 User Guide.
                            properties:
                              max:
                                format: int64
                                type: integer
                              min:
                                format: int64
                                type: integer
                            type: object
                          burstablePerformance:
                            type: string
                          cpuManufacturers:
                            items:
                              type: string
                            type: array
                          excludedInstanceTypes:
                            items:
                              type: string
                            type: array
                          instanceGenerations:
                            items:
                              type: string
                            type: array
                          localStorage:
                            type: string
                          localStorageTypes:
                            items:
                              type: string
                            type: array
                          memoryGiBPerVCPU:
                            description: The minimum and maximum amount of memory
                              per vCPU, in GiB.
                            properties:
                              max:
                                type: number
                              min:
                                type: number
                            type: object
                          memoryMiB:
                            description: The minimum and maximum amount of memory,
                              in MiB.
                            properties:
                              max:
                                format: int64
                                type: integer
                              min:
                                format: int64
                                type: integer
                            type: object
                          networkBandwidthGbps:
                            description: |-
                              The minimum and maximum amount of network bandwidth, in gigabits per second
                              (Gbps).

                              Setting the minimum bandwidth does not guarantee that your instance will
                              achieve the minimum bandwidth. Amazon EC2 will identify instance types that
                              support the specified minimum bandwidth, but the actual bandwidth of your
                              instance might go below the specified minimum at times. For more information,
                              see Available instance bandwidth (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth)
                              in the Amazon EC2 User Guide.
                            properties:
                              max:
                                type: number
                              min:
                                type: number
                            type: object
                          networkInterfaceCount:
                            description: The minimum and maximum number of network
                              interfaces.
                            properties:
                              max:
                                format: int64
                                type: integer
                              min:
                                format: int64
                                type: integer
                            type: object
                          onDemandMaxPricePercentageOverLowestPrice:
                            format: int64
                            type: integer
                          requireHibernateSupport:
                            type: boolean
                          spotMaxPricePercentageOverLowestPrice:
                            format: int64
                            type: integer
                          totalLocalStorageGB:
                            description: The minimum and maximum amount of total local
                              storage, in GB.
                            properties:
                              max:
                                type: number
                              min:
                                type: number
                            type: object
                          vCPUCount:
                            description: The minimum and maximum number of vCPUs.
                            properties:
                              max:
                                format: int64
                                type: integer
                              min:
                                format: int64
                                type: integer
                            type: object
                        type: object
                      instanceType:
                        type: string
                      kernelID:
                        type: string
                      keyName:
                        type: string
                      licenseSpecifications:
                        items:
                          properties:
                            licenseConfigurationARN:
                              type: string
                          type: object
                        type: array
                      maintenanceOptions:
                        description: The maintenance options of your instance.
                        properties:
                          autoRecovery:
                            type: string
                        type: object
                      metadataOptions:
                        description: |-
                          The metadata options for the instance. For more information, see Instance
                          metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)
                          in the Amazon Elastic Compute Cloud User Guide.
                        properties:
                          httpEndpoint:
                            type: string
                          httpProtocolIPv6:
                            type: string
                          httpPutResponseHopLimit:
                            format: int64
                            type: integer
                          httpTokens:
                            type: string
                          instanceMetadataTags:
                            type: string
                        type: object
                      monitoring:
                        description: Describes the monitoring for the instance.
                        properties:
                          enabled:
                            type: boolean
                        type: object
                      networkInterfaces:
                        items:
                          properties:
                            associateCarrierIPAddress:
                              type: boolean
                            associatePublicIPAddress:
                              type: boolean
                            deleteOnTermination:
                              type: boolean
                            description:
                              type: string
                            deviceIndex:
                              format: int64
                              type: integer
                            enaSrdSpecification:
                              description: Launch instances with ENA Express settings
                                configured from your launch template.
                              properties:
                                enaSrdEnabled:
                                  type: boolean
                                enaSrdUDPSpecification:
                                  description: Configures ENA Express for UDP network
                                    traffic from your launch template.
                                  properties:
                                    enaSrdUDPEnabled:
                                      type: boolean
                                  type: object
                              type: object
                            groups:
                              items:
                                type: string
                              type: array
                            interfaceType:
                              type: string
                            ipv4PrefixCount:
                              format: int64
                              type: integer
                            ipv4Prefixes:
                              items:
                                properties:
                                  ipv4Prefix:
                                    type: string
                                type: object
                              type: array
                            ipv6AddressCount:
                              format: int64
                              type: integer
                            ipv6Addresses:
                              items:
                                properties:
                                  ipv6Address:
                                    type: string
                                type: object
                              type: array
                            ipv6PrefixCount:
                              format: int64
                              type: integer
                            ipv6Prefixes:
                              items:
                                properties:
                                  ipv6Prefix:
                                    type: string
                                type: object
                              type: array
                            networkCardIndex:
                              format: int64
                              type: integer
                            networkInterfaceID:
                              type: string
                            primaryIPv6:
                              type: boolean
                            privateIPAddress:
                              type: string
                            privateIPAddresses:
                              items:
                                properties:
                                  primary:
                                    type: boolean
                                  privateIPAddress:
                                    type: string
                                type: object
                              type: array
                            secondaryPrivateIPAddressCount:
                              format: int64
                              type: integer
                            subnetID:
                              type: string
                          type: object
                        type: array
                      placement:
                        description: Describes the placement of an instance.
                        properties:
                          affinity:
                            type: string
                          availabilityZone:
                            type: string
                          groupID:
                            type: string
                          groupName:
                            type: string
                          hostID:
                            type: string
                          hostResourceGroupARN:
                            type: string
                          partitionNumber:
                            format: int64
                            type: integer
                          spreadDomain:
                            type: string
                          tenancy:
                            type: string
                        type: object
                      privateDNSNameOptions:
                        description: Describes the options for instance hostnames.
                        properties:
                          enableResourceNameDNSAAAARecord:
                            type: boolean
                          enableResourceNameDNSARecord:
                            type: boolean
                          hostnameType:
                            type: string
                        type: object
                      ramDiskID:
                        type: string
                      securityGroupIDs:
                        items:
                          type: string
                        type: array
                      securityGroups:
                        items:
                          type: string
                        type: array
                      tagSpecifications:
                        items:
                          properties:
                            resourceType:
                              type: string
                            tags:
                              items:
                                properties:
                                  key:
                                    type: string
                                  value:
                                    type: string
                                type: object
                              type: array
                          type: object
                        type: array
                      userData:
                        type: string
                    type: object
                  launchTemplateId:
                    description: The ID of the Launch Template. You must specify this
                      parameter in the request.
                    type: string
                  launchTemplateIdRef:
                    description: |-
                      LaunchTemplateIDRef is a reference to an API used to set
                      the LaunchTemplateID.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  launchTemplateIdSelector:
                    description: |-
                      LaunchTemplateIDSelector selects references to API used
                      to set the LaunchTemplateID.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  launchTemplateName:
                    description: The Name of the Launch Template. You must specify
                      this parameter in the request.
                    type: string
                  launchTemplateNameRef:
                    description: |-
                      LaunchTemplateNameRef is a reference to an API used to set
                      the LaunchTemplateName.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  launchTemplateNameSelector:
                    description: |-
                      LaunchTemplateNameSelector selects references to API used
                      to set the LaunchTemplateName.
                    properties:
                      matchControllerRef:
                        description: |-
                          MatchControllerRef ensures an object with the same controller reference
                          as the selecting object is selected.
                        type: boolean
                      matchLabels:
                        additionalProperties:
                          type: string
                        description: MatchLabels ensures an object with matching labels
                          is selected.
                        type: object
                      policy:
                        description: Policies for selection.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    type: object
                  region:
                    description: Region is which region the LaunchTemplateVersion
                      will be created.
                    type: string
                  resolveAlias:
                    description: |-
                      If true, and if a Systems Manager parameter is specified for ImageId, the
                      AMI ID is displayed in the response for imageID. For more information, see
                      Use a Systems Manager parameter instead of an AMI ID (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#use-an-ssm-parameter-instead-of-an-ami-id)
                      in the Amazon Elastic Compute Cloud User Guide.

                      Default: false
                    type: boolean
                  sourceVersion:
                    description: |-
                      The version number of the launch template version on which to base the new
                      version. The new version inherits the same launch parameters as the source
                      version, except for parameters that you specify in LaunchTemplateData. Snapshots
                      applied to the block device mapping are ignored when creating a new version
                      unless they are explicitly included.
                    type: string
                  versionDescription:
                    description: A description for the version of the launch template.
                    type: string
                required:
                - launchTemplateData
                - region
                type: object
              managementPolicies:
                default:
                - '*'
                description: |-
                  THIS IS A BETA FIELD. It is on by default but can be opted out
                  through a Crossplane feature flag.
                  ManagementPolicies specify the array of actions Crossplane is allowed to
                  take on the managed and external resources.
                  This field is planned to replace the DeletionPolicy field in a future
                  release. Currently, both could be set independently and non-default
                  values would be honored if the feature flag is enabled. If both are
                  custom, the DeletionPolicy field will be ignored.
                  See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
                  and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
                items:
                  description: |-
                    A ManagementAction represents an action that the Crossplane controllers
                    can take on an external resource.
                  enum:
                  - Observe
                  - Create
                  - Update
                  - Delete
                  - LateInitialize
                  - '*'
                  type: string
                type: array
              providerConfigRef:
                default:
                  name: default
                description: |-
                  ProviderConfigReference specifies how the provider that will be used to
                  create, observe, update, and delete this managed resource should be
                  configured.
                properties:
                  name:
                    description: Name of the referenced object.
                    type: string
                  policy:
                    description: Policies for referencing.
                    properties:
                      resolution:
                        default: Required
                        description: |-
                          Resolution specifies whether resolution of this reference is required.
                          The default is 'Required', which means the reconcile will fail if the
                          reference cannot be resolved. 'Optional' means this reference will be
                          a no-op if it cannot be resolved.
                        enum:
                        - Required
                        - Optional
                        type: string
                      resolve:
                        description: |-
                          Resolve specifies when this reference should be resolved. The default
                          is 'IfNotPresent', which will attempt to resolve the reference only when
                          the corresponding field is not present. Use 'Always' to resolve the
                          reference on every reconcile.
                        enum:
                        - Always
                        - IfNotPresent
                        type: string
                    type: object
                required:
                - name
                type: object
              publishConnectionDetailsTo:
                description: |-
                  PublishConnectionDetailsTo specifies the connection secret config which
                  contains a name, metadata and a reference to secret store config to
                  which any connection details for this managed resource should be written.
                  Connection details frequently include the endpoint, username,
                  and password required to connect to the managed resource.
                properties:
                  configRef:
                    default:
                      name: default
                    description: |-
                      SecretStoreConfigRef specifies which secret store config should be used
                      for this ConnectionSecret.
                    properties:
                      name:
                        description: Name of the referenced object.
                        type: string
                      policy:
                        description: Policies for referencing.
                        properties:
                          resolution:
                            default: Required
                            description: |-
                              Resolution specifies whether resolution of this reference is required.
                              The default is 'Required', which means the reconcile will fail if the
                              reference cannot be resolved. 'Optional' means this reference will be
                              a no-op if it cannot be resolved.
                            enum:
                            - Required
                            - Optional
                            type: string
                          resolve:
                            description: |-
                              Resolve specifies when this reference should be resolved. The default
                              is 'IfNotPresent', which will attempt to resolve the reference only when
                              the corresponding field is not present. Use 'Always' to resolve the
                              reference on every reconcile.
                            enum:
                            - Always
                            - IfNotPresent
                            type: string
                        type: object
                    required:
                    - name
                    type: object
                  metadata:
                    description: Metadata is the metadata for connection secret.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: |-
                          Annotations are the annotations to be added to connection secret.
                          - For Kubernetes secrets, this will be used as "metadata.annotations".
                          - It is up to Secret Store implementation for others store types.
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: |-
                          Labels are the labels/tags to be added to connection secret.
                          - For Kubernetes secrets, this will be used as "metadata.labels".
                          - It is up to Secret Store implementation for others store types.
                        type: object
                      type:
                        description: |-
                          Type is the SecretType for the connection secret.
                          - Only valid for Kubernetes Secret Stores.
                        type: string
                    type: object
                  name:
                    description: Name is the name of the connection secret.
                    type: string
                required:
                - name
                type: object
              writeConnectionSecretToRef:
                description: |-
                  WriteConnectionSecretToReference specifies the namespace and name of a
                  Secret to which any connection details for this managed resource should
                  be written. Connection details frequently include the endpoint, username,
                  and password required to connect to the managed resource.
                  This field is planned to be replaced in a future release in favor of
                  PublishConnectionDetailsTo. Currently, both could be set independently
                  and connection details would be published to both without affecting
                  each other.
                properties:
                  name:
                    description: Name of the secret.
                    type: string
                  namespace:
                    description: Namespace of the secret.
                    type: string
                required:
                - name
                - namespace
                type: object
            required:
            - forProvider
            type: object
          status:
            description: LaunchTemplateVersionStatus defines the observed state of
              LaunchTemplateVersion.
            properties:
              atProvider:
                description: LaunchTemplateVersionObservation defines the observed
                  state of LaunchTemplateVersion
                properties:
                  launchTemplateVersion:
                    description: Information about the launch template version.
                    properties:
                      createTime:
                        format: date-time
                        type: string
                      createdBy:
                        type: string
                      defaultVersion:
                        type: boolean
                      launchTemplateData:
                        description: The information for a launch template.
                        properties:
                          blockDeviceMappings:
                            items:
                              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
                                    snapshotID:
                                      type: string
                                    throughput:
                                      format: int64
                                      type: integer
                                    volumeSize:
                                      format: int64
                                      type: integer
                                    volumeType:
                                      type: string
                                  type: object
                                noDevice:
                                  type: string
                                virtualName:
                                  type: string
                              type: object
                            type: array
                          capacityReservationSpecification:
                            description: Information about the Capacity Reservation
                              targeting option.
                            properties:
                              capacityReservationPreference:
                                type: string
                              capacityReservationTarget:
                                description: Describes a target Capacity Reservation
                                  or Capacity Reservation group.
                                properties:
                                  capacityReservationID:
                                    type: string
                                  capacityReservationResourceGroupARN:
                                    type: string
                                type: object
                            type: object
                          cpuOptions:
                            description: The CPU options for the instance.
                            properties:
                              amdSevSnp:
                                type: string
                              coreCount:
                                format: int64
                                type: integer
                              threadsPerCore:
                                format: int64
                                type: integer
                            type: object
                          creditSpecification:
                            description: Describes the credit option for CPU usage
                              of a T instance.
                            properties:
                              cpuCredits:
                                type: string
                            type: object
                          disableAPIStop:
                            type: boolean
                          disableAPITermination:
                            type: boolean
                          ebsOptimized:
                            type: boolean
                          elasticGPUSpecifications:
                            items:
                              properties:
                                type_:
                                  type: string
                              type: object
                            type: array
                          elasticInferenceAccelerators:
                            items:
                              properties:
                                count:
                                  format: int64
                                  type: integer
                                type_:
                                  type: string
                              type: object
                            type: array
                          enclaveOptions:
                            description: Indicates whether the instance is enabled
                              for Amazon Web Services Nitro Enclaves.
                            properties:
                              enabled:
                                type: boolean
                            type: object
                          hibernationOptions:
                            description: Indicates whether an instance is configured
                              for hibernation.
                            properties:
                              configured:
                                type: boolean
                            type: object
                          iamInstanceProfile:
                            description: Describes an IAM instance profile.
                            properties:
                              arn:
                                type: string
                              name:
                                type: string
                            type: object
                          imageID:
                            type: string
                          instanceInitiatedShutdownBehavior:
                            type: string
                          instanceMarketOptions:
                            description: The market (purchasing) option for the instances.
                            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
                            type: object
                          instanceRequirements:
                            description: |-
                              The attributes for the instance types. When you specify instance attributes,
                              Amazon EC2 will identify instance types with these attributes.

                              You must specify VCpuCount and MemoryMiB. All other attributes are optional.
                              Any unspecified optional attribute is set to its default.

                              When you specify multiple attributes, you get instance types that satisfy
                              all of the specified attributes. If you specify multiple values for an attribute,
                              you get instance types that satisfy any of the specified values.

                              To limit the list of instance types from which Amazon EC2 can identify matching
                              instance types, you can use one of the following parameters, but not both
                              in the same request:

                                 * AllowedInstanceTypes - The instance types to include in the list. All
                                 other instance types are ignored, even if they match your specified attributes.

                                 * ExcludedInstanceTypes - The instance types to exclude from the list,
                                 even if they match your specified attributes.

                              If you specify InstanceRequirements, you can't specify InstanceType.

                              Attribute-based instance type selection is only supported when using Auto
                              Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan
                              to use the launch template in the launch instance wizard (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html)
                              or with the RunInstances API (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html),
                              you can't specify InstanceRequirements.

                              For more information, see Create a mixed instances group using attribute-based
                              instance type selection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html)
                              in the Amazon EC2 Auto Scaling User Guide, and also Attribute-based instance
                              type selection for EC2 Fleet (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html),
                              Attribute-based instance type selection for Spot Fleet (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html),
                              and Spot placement score (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html)
                              in the Amazon EC2 User Guide.
                            properties:
                              acceleratorCount:
                                description: |-
                                  The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web
                                  Services Inferentia chips) on an instance.
                                properties:
                                  max:
                                    format: int64
                                    type: integer
                                  min:
                                    format: int64
                                    type: integer
                                type: object
                              acceleratorManufacturers:
                                items:
                                  type: string
                                type: array
                              acceleratorNames:
                                items:
                                  type: string
                                type: array
                              acceleratorTotalMemoryMiB:
                                description: The minimum and maximum amount of total
                                  accelerator memory, in MiB.
                                properties:
                                  max:
                                    format: int64
                                    type: integer
                                  min:
                                    format: int64
                                    type: integer
                                type: object
                              acceleratorTypes:
                                items:
                                  type: string
                                type: array
                              allowedInstanceTypes:
                                items:
                                  type: string
                                type: array
                              bareMetal:
                                type: string
                              baselineEBSBandwidthMbps:
                                description: |-
                                  The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more
                                  information, see Amazon EBS–optimized instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)
                                  in the Amazon EC2 User Guide.
                                properties:
                                  max:
                                    format: int64
                                    type: integer
                                  min:
                                    format: int64
                                    type: integer
                                type: object
                              burstablePerformance:
                                type: string
                              cpuManufacturers:
                                items:
                                  type: string
                                type: array
                              excludedInstanceTypes:
                                items:
                                  type: string
                                type: array
                              instanceGenerations:
                                items:
                                  type: string
                                type: array
                              localStorage:
                                type: string
                              localStorageTypes:
                                items:
                                  type: string
                                type: array
                              memoryGiBPerVCPU:
                                description: The minimum and maximum amount of memory
                                  per vCPU, in GiB.
                                properties:
                                  max:
                                    type: number
                                  min:
                                    type: number
                                type: object
                              memoryMiB:
                                description: The minimum and maximum amount of memory,
                                  in MiB.
                                properties:
                                  max:
                                    format: int64
                                    type: integer
                                  min:
                                    format: int64
                                    type: integer
                                type: object
                              networkBandwidthGbps:
                                description: |-
                                  The minimum and maximum amount of network bandwidth, in gigabits per second
                                  (Gbps).

                                  Setting the minimum bandwidth does not guarantee that your instance will
                                  achieve the minimum bandwidth. Amazon EC2 will identify instance types that
                                  support the specified minimum bandwidth, but the actual bandwidth of your
                                  instance might go below the specified minimum at times. For more information,
                                  see Available instance bandwidth (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth)
                                  in the Amazon EC2 User Guide.
                                properties:
                                  max:
                                    type: number
                                  min:
                                    type: number
                                type: object
                              networkInterfaceCount:
                                description: The minimum and maximum number of network
                                  interfaces.
                                properties:
                                  max:
                                    format: int64
                                    type: integer
                                  min:
                                    format: int64
                                    type: integer
                                type: object
                              onDemandMaxPricePercentageOverLowestPrice:
                                format: int64
                                type: integer
                              requireHibernateSupport:
                                type: boolean
                              spotMaxPricePercentageOverLowestPrice:
                                format: int64
                                type: integer
                              totalLocalStorageGB:
                                description: The minimum and maximum amount of total
                                  local storage, in GB.
                                properties:
                                  max:
                                    type: number
                                  min:
                                    type: number
                                type: object
                              vCPUCount:
                                description: The minimum and maximum number of vCPUs.
                                properties:
                                  max:
                                    format: int64
                                    type: integer
                                  min:
                                    format: int64
                                    type: integer
                                type: object
                            type: object
                          instanceType:
                            type: string
                          kernelID:
                            type: string
                          keyName:
                            type: string
                          licenseSpecifications:
                            items:
                              properties:
                                licenseConfigurationARN:
                                  type: string
                              type: object
                            type: array
                          maintenanceOptions:
                            description: The maintenance options of your instance.
                            properties:
                              autoRecovery:
                                type: string
                            type: object
                          metadataOptions:
                            description: |-
                              The metadata options for the instance. For more information, see Instance
                              metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)
                              in the Amazon Elastic Compute Cloud User Guide.
                            properties:
                              httpEndpoint:
                                type: string
                              httpProtocolIPv6:
                                type: string
                              httpPutResponseHopLimit:
                                format: int64
                                type: integer
                              httpTokens:
                                type: string
                              instanceMetadataTags:
                                type: string
                              state:
                                type: string
                            type: object
                          monitoring:
                            description: Describes the monitoring for the instance.
                            properties:
                              enabled:
                                type: boolean
                            type: object
                          networkInterfaces:
                            items:
                              properties:
                                associateCarrierIPAddress:
                                  type: boolean
                                associatePublicIPAddress:
                                  type: boolean
                                deleteOnTermination:
                                  type: boolean
                                description:
                                  type: string
                                deviceIndex:
                                  format: int64
                                  type: integer
                                enaSrdSpecification:
                                  description: |-
                                    ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology
                                    to increase the maximum bandwidth used per stream and minimize tail latency
                                    of network traffic between EC2 instances. With ENA Express, you can communicate
                                    between two EC2 instances in the same subnet within the same account, or
                                    in different accounts. Both sending and receiving instances must have ENA
                                    Express enabled.

                                    To improve the reliability of network packet delivery, ENA Express reorders
                                    network packets on the receiving end by default. However, some UDP-based
                                    applications are designed to handle network packets that are out of order
                                    to reduce the overhead for packet delivery at the network layer. When ENA
                                    Express is enabled, you can specify whether UDP network traffic uses it.
                                  properties:
                                    enaSrdEnabled:
                                      type: boolean
                                    enaSrdUDPSpecification:
                                      description: |-
                                        ENA Express is compatible with both TCP and UDP transport protocols. When
                                        it's enabled, TCP traffic automatically uses it. However, some UDP-based
                                        applications are designed to handle network packets that are out of order,
                                        without a need for retransmission, such as live video broadcasting or other
                                        near-real-time applications. For UDP traffic, you can specify whether to
                                        use ENA Express, based on your application environment needs.
                                      properties:
                                        enaSrdUDPEnabled:
                                          type: boolean
                                      type: object
                                  type: object
                                groups:
                                  items:
                                    type: string
                                  type: array
                                interfaceType:
                                  type: string
                                ipv4PrefixCount:
                                  format: int64
                                  type: integer
                                ipv4Prefixes:
                                  items:
                                    properties:
                                      ipv4Prefix:
                                        type: string
                                    type: object
                                  type: array
                                ipv6AddressCount:
                                  format: int64
                                  type: integer
                                ipv6Addresses:
                                  items:
                                    properties:
                                      ipv6Address:
                                        type: string
                                      isPrimaryIPv6:
                                        type: boolean
                                    type: object
                                  type: array
                                ipv6PrefixCount:
                                  format: int64
                                  type: integer
                                ipv6Prefixes:
                                  items:
                                    properties:
                                      ipv6Prefix:
                                        type: string
                                    type: object
                                  type: array
                                networkCardIndex:
                                  format: int64
                                  type: integer
                                networkInterfaceID:
                                  type: string
                                primaryIPv6:
                                  type: boolean
                                privateIPAddress:
                                  type: string
                                privateIPAddresses:
                                  items:
                                    properties:
                                      primary:
                                        type: boolean
                                      privateIPAddress:
                                        type: string
                                    type: object
                                  type: array
                                secondaryPrivateIPAddressCount:
                                  format: int64
                                  type: integer
                                subnetID:
                                  type: string
                              type: object
                            type: array
                          placement:
                            description: Describes the placement of an instance.
                            properties:
                              affinity:
                                type: string
                              availabilityZone:
                                type: string
                              groupID:
                                type: string
                              groupName:
                                type: string
                              hostID:
                                type: string
                              hostResourceGroupARN:
                                type: string
                              partitionNumber:
                                format: int64
                                type: integer
                              spreadDomain:
                                type: string
                              tenancy:
                                type: string
                            type: object
                          privateDNSNameOptions:
                            description: Describes the options for instance hostnames.
                            properties:
                              enableResourceNameDNSAAAARecord:
                                type: boolean
                              enableResourceNameDNSARecord:
                                type: boolean
                              hostnameType:
                                type: string
                            type: object
                          ramDiskID:
                            type: string
                          securityGroupIDs:
                            items:
                              type: string
                            type: array
                          securityGroups:
                            items:
                              type: string
                            type: array
                          tagSpecifications:
                            items:
                              properties:
                                resourceType:
                                  type: string
                                tags:
                                  items:
                                    properties:
                                      key:
                                        type: string
                                      value:
                                        type: string
                                    type: object
                                  type: array
                              type: object
                            type: array
                          userData:
                            type: string
                        type: object
                      launchTemplateID:
                        type: string
                      launchTemplateName:
                        type: string
                      versionDescription:
                        type: string
                      versionNumber:
                        format: int64
                        type: integer
                    type: object
                  warning:
                    description: |-
                      If the new version of the launch template contains parameters or parameter
                      combinations that are not valid, an error code and an error message are returned
                      for each issue that's found.
                    properties:
                      errors:
                        items:
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                          type: object
                        type: array
                    type: object
                type: object
              conditions:
                description: Conditions of the resource.
                items:
                  description: A Condition that may apply to a resource.
                  properties:
                    lastTransitionTime:
                      description: |-
                        LastTransitionTime is the last time this condition transitioned from one
                        status to another.
                      format: date-time
                      type: string
                    message:
                      description: |-
                        A Message containing details about this condition's last transition from
                        one status to another, if any.
                      type: string
                    observedGeneration:
                      description: |-
                        ObservedGeneration represents the .metadata.generation that the condition was set based upon.
                        For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
                        with respect to the current state of the instance.
                      format: int64
                      type: integer
                    reason:
                      description: A Reason for this condition's last transition from
                        one status to another.
                      type: string
                    status:
                      description: Status of this condition; is it currently True,
                        False, or Unknown?
                      type: string
                    type:
                      description: |-
                        Type of this condition. At most one of each condition type may apply to
                        a resource at any point in time.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              observedGeneration:
                description: |-
                  ObservedGeneration is the latest metadata.generation
                  which resulted in either a ready state, or stalled due to error
                  it can not recover from without human intervention.
                format: int64
                type: integer
            type: object
        required:
        - spec
        type: object
    served: true
    storage: true
    subresources:
      status: {}
