{
  "description": "Fleet is the Schema for the Fleets API. Provides a resource to manage EC2 Fleets",
  "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": "FleetSpec defines the desired state of Fleet",
      "properties": {
        "forProvider": {
          "properties": {
            "context": {
              "description": "Reserved.",
              "type": "string"
            },
            "excessCapacityTerminationPolicy": {
              "description": "Whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2. Valid values: no-termination, termination. Defaults to termination. Supported only for fleets of type maintain.",
              "type": "string"
            },
            "fleetInstanceSet": {
              "description": "Information about the instances that were launched by the fleet. Available only when type is set to instant.",
              "items": {
                "properties": {
                  "instanceIds": {
                    "description": "The IDs of the instances.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "instanceType": {
                    "description": "Instance type.",
                    "type": "string"
                  },
                  "lifecycle": {
                    "description": "Indicates if the instance that was launched is a Spot Instance or On-Demand Instance.",
                    "type": "string"
                  },
                  "platform": {
                    "description": "The value is Windows for Windows instances. Otherwise, the value is blank.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "fleetState": {
              "description": "The state of the EC2 Fleet.",
              "type": "string"
            },
            "fulfilledCapacity": {
              "description": "The number of units fulfilled by this request compared to the set target capacity.",
              "type": "number"
            },
            "fulfilledOnDemandCapacity": {
              "description": "The number of units fulfilled by this request compared to the set target On-Demand capacity.",
              "type": "number"
            },
            "launchTemplateConfig": {
              "description": "Nested argument containing EC2 Launch Template configurations. Defined below.",
              "items": {
                "properties": {
                  "launchTemplateSpecification": {
                    "description": "Nested argument containing EC2 Launch Template to use. Defined below.",
                    "properties": {
                      "launchTemplateId": {
                        "description": "The ID of the launch template.",
                        "type": "string"
                      },
                      "launchTemplateIdRef": {
                        "description": "Reference to a LaunchTemplate in ec2 to populate launchTemplateId.",
                        "properties": {
                          "name": {
                            "description": "Name of the referenced object.",
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace 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.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "launchTemplateIdSelector": {
                        "description": "Selector for a LaunchTemplate in ec2 to populate launchTemplateId.",
                        "properties": {
                          "matchControllerRef": {
                            "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                            "type": "boolean"
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "description": "MatchLabels ensures an object with matching labels is selected.",
                            "type": "object"
                          },
                          "namespace": {
                            "description": "Namespace for the selector",
                            "type": "string"
                          },
                          "policy": {
                            "description": "Policies for selection.",
                            "properties": {
                              "resolution": {
                                "default": "Required",
                                "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "launchTemplateName": {
                        "description": "The name of the launch template.",
                        "type": "string"
                      },
                      "version": {
                        "description": "The launch template version number, $Latest, or $Default.",
                        "type": "string"
                      },
                      "versionRef": {
                        "description": "Reference to a LaunchTemplate in ec2 to populate version.",
                        "properties": {
                          "name": {
                            "description": "Name of the referenced object.",
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace 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.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "versionSelector": {
                        "description": "Selector for a LaunchTemplate in ec2 to populate version.",
                        "properties": {
                          "matchControllerRef": {
                            "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                            "type": "boolean"
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "description": "MatchLabels ensures an object with matching labels is selected.",
                            "type": "object"
                          },
                          "namespace": {
                            "description": "Namespace for the selector",
                            "type": "string"
                          },
                          "policy": {
                            "description": "Policies for selection.",
                            "properties": {
                              "resolution": {
                                "default": "Required",
                                "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "override": {
                    "description": "Nested argument(s) containing parameters to override the same parameters in the Launch Template. Defined below.",
                    "items": {
                      "properties": {
                        "availabilityZone": {
                          "description": "Availability Zone in which to launch the instances.",
                          "type": "string"
                        },
                        "instanceRequirements": {
                          "description": "Override the instance type in the Launch Template with instance types that satisfy the requirements.",
                          "properties": {
                            "acceleratorCount": {
                              "description": "Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum limits.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorManufacturers": {
                              "description": "List of accelerator manufacturer names. Default is any manufacturer.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "acceleratorNames": {
                              "description": "List of accelerator names. Default is any acclerator.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "acceleratorTotalMemoryMib": {
                              "description": "Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorTypes": {
                              "description": "The accelerator types that must be on the instance type. Default is any accelerator type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "allowedInstanceTypes": {
                              "description": "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "bareMetal": {
                              "description": "Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "baselineEbsBandwidthMbps": {
                              "description": "Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "burstablePerformance": {
                              "description": "Indicates whether burstable performance T instance types are included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "cpuManufacturers": {
                              "description": "The CPU manufacturers to include. Default is any manufacturer.\n~> NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "excludedInstanceTypes": {
                              "description": "The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "instanceGenerations": {
                              "description": "Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are current and previous. Default is current and previous generation instance types.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "localStorage": {
                              "description": "Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.",
                              "type": "string"
                            },
                            "localStorageTypes": {
                              "description": "List of local storage type names. Valid values are hdd and ssd. Default any storage type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "maxSpotPriceAsPercentageOfOptimalOnDemandPrice": {
                              "description": "The price protection threshold for Spot Instances. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with spot_max_price_percentage_over_lowest_price",
                              "type": "number"
                            },
                            "memoryGibPerVcpu": {
                              "description": "Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "memoryMib": {
                              "description": "The minimum and maximum amount of memory per vCPU, in GiB. Default is no minimum or maximum limits.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkBandwidthGbps": {
                              "description": "The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is No minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkInterfaceCount": {
                              "description": "Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "onDemandMaxPricePercentageOverLowestPrice": {
                              "description": "The price protection threshold for On-Demand Instances. This is the maximum you\u2019ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.",
                              "type": "number"
                            },
                            "requireHibernateSupport": {
                              "description": "Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.",
                              "type": "boolean"
                            },
                            "spotMaxPricePercentageOverLowestPrice": {
                              "description": "The price protection threshold for Spot Instances. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with max_spot_price_as_percentage_of_optimal_on_demand_price",
                              "type": "number"
                            },
                            "totalLocalStorageGb": {
                              "description": "Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "vcpuCount": {
                              "description": "Block describing the minimum and maximum number of vCPUs. Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "instanceType": {
                          "description": "Instance type.",
                          "type": "string"
                        },
                        "maxPrice": {
                          "description": "Maximum price per unit hour that you are willing to pay for a Spot Instance.",
                          "type": "string"
                        },
                        "priority": {
                          "description": "Priority for the launch template override. If on_demand_options allocation_strategy is set to prioritized, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. The highest priority is launched first. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. Valid values are whole numbers starting at 0.",
                          "type": "number"
                        },
                        "subnetId": {
                          "description": "ID of the subnet in which to launch the instances.",
                          "type": "string"
                        },
                        "weightedCapacity": {
                          "description": "Number of units provided by the specified instance type.",
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "onDemandOptions": {
              "description": "Nested argument containing On-Demand configurations. Defined below.",
              "properties": {
                "allocationStrategy": {
                  "description": "The order of the launch template overrides to use in fulfilling On-Demand capacity. Valid values: lowestPrice, prioritized. Default: lowestPrice.",
                  "type": "string"
                },
                "capacityReservationOptions": {
                  "description": "Demand capacity. Supported only for fleets of type instant.",
                  "properties": {
                    "usageStrategy": {
                      "description": "Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity. Valid values: use-capacity-reservations-first.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maxTotalPrice": {
                  "description": "The maximum amount per hour for On-Demand Instances that you're willing to pay.",
                  "type": "string"
                },
                "minTargetCapacity": {
                  "description": "The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type instant.\nIf you specify min_target_capacity, at least one of the following must be specified: single_availability_zone or single_instance_type.",
                  "type": "number"
                },
                "singleAvailabilityZone": {
                  "description": "Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type instant.",
                  "type": "boolean"
                },
                "singleInstanceType": {
                  "description": "Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type instant.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "region": {
              "description": "Region where this resource will be managed. Defaults to the Region set in the provider configuration.\nRegion is the region you'd like your resource to be created in.",
              "type": "string"
            },
            "replaceUnhealthyInstances": {
              "description": "Whether EC2 Fleet should replace unhealthy instances. Defaults to false. Supported only for fleets of type maintain.",
              "type": "boolean"
            },
            "spotOptions": {
              "description": "Nested argument containing Spot configurations. Defined below.",
              "properties": {
                "allocationStrategy": {
                  "description": "How to allocate the target capacity across the Spot pools. Valid values: diversified, lowestPrice, capacity-optimized, capacity-optimized-prioritized and price-capacity-optimized. Default: lowestPrice.",
                  "type": "string"
                },
                "instanceInterruptionBehavior": {
                  "description": "Behavior when a Spot Instance is interrupted. Valid values: hibernate, stop, terminate. Default: terminate.",
                  "type": "string"
                },
                "instancePoolsToUseCount": {
                  "description": "Number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot allocation_strategy is set to lowestPrice. Default: 1.",
                  "type": "number"
                },
                "maintenanceStrategies": {
                  "description": "Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.",
                  "properties": {
                    "capacityRebalance": {
                      "description": "Nested argument containing the capacity rebalance for your fleet request. Defined below.",
                      "properties": {
                        "replacementStrategy": {
                          "description": "The replacement strategy to use. Only available for fleets of type set to maintain. Valid values: launch.",
                          "type": "string"
                        },
                        "terminationDelay": {
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maxTotalPrice": {
                  "description": "The maximum amount per hour for Spot Instances that you're willing to pay.",
                  "type": "string"
                },
                "minTargetCapacity": {
                  "description": "The minimum target capacity for Spot Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type instant.",
                  "type": "number"
                },
                "singleAvailabilityZone": {
                  "description": "Indicates that the fleet launches all Spot Instances into a single Availability Zone. Supported only for fleets of type instant.",
                  "type": "boolean"
                },
                "singleInstanceType": {
                  "description": "Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet. Supported only for fleets of type instant.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "targetCapacitySpecification": {
              "description": "Nested argument containing target capacity configurations. Defined below.",
              "properties": {
                "defaultTargetCapacityType": {
                  "description": "Default target capacity type. Valid values: on-demand, spot.",
                  "type": "string"
                },
                "onDemandTargetCapacity": {
                  "description": "The number of On-Demand units to request.",
                  "type": "number"
                },
                "spotTargetCapacity": {
                  "description": "The number of Spot units to request.",
                  "type": "number"
                },
                "targetCapacityUnitType": {
                  "description": "The unit for the target capacity.\nIf you specify target_capacity_unit_type, instance_requirements must be specified.",
                  "type": "string"
                },
                "totalTargetCapacity": {
                  "description": "The number of units to request, filled using default_target_capacity_type.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "terminateInstances": {
              "description": "Whether to terminate instances for an EC2 Fleet if it is deleted successfully. Defaults to false.",
              "type": "boolean"
            },
            "terminateInstancesWithExpiration": {
              "description": "Whether running instances should be terminated when the EC2 Fleet expires. Defaults to false.",
              "type": "boolean"
            },
            "type": {
              "description": "The type of request. Indicates whether the EC2 Fleet only requests the target capacity, or also attempts to maintain it. Valid values: maintain, request, instant. Defaults to maintain.",
              "type": "string"
            },
            "validFrom": {
              "description": "The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.",
              "type": "string"
            },
            "validUntil": {
              "description": "The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.",
              "type": "string"
            }
          },
          "required": [
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "initProvider": {
          "description": "THIS IS A BETA FIELD. It will be honored\nunless the Management Policies feature flag is disabled.\nInitProvider holds the same fields as ForProvider, with the exception\nof Identifier and other resource reference fields. The fields that are\nin InitProvider are merged into ForProvider when the resource is created.\nThe same fields are also added to the terraform ignore_changes hook, to\navoid updating them after creation. This is useful for fields that are\nrequired on creation, but we do not desire to update them after creation,\nfor example because of an external controller is managing them, like an\nautoscaler.",
          "properties": {
            "context": {
              "description": "Reserved.",
              "type": "string"
            },
            "excessCapacityTerminationPolicy": {
              "description": "Whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2. Valid values: no-termination, termination. Defaults to termination. Supported only for fleets of type maintain.",
              "type": "string"
            },
            "fleetInstanceSet": {
              "description": "Information about the instances that were launched by the fleet. Available only when type is set to instant.",
              "items": {
                "properties": {
                  "instanceIds": {
                    "description": "The IDs of the instances.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "instanceType": {
                    "description": "Instance type.",
                    "type": "string"
                  },
                  "lifecycle": {
                    "description": "Indicates if the instance that was launched is a Spot Instance or On-Demand Instance.",
                    "type": "string"
                  },
                  "platform": {
                    "description": "The value is Windows for Windows instances. Otherwise, the value is blank.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "fleetState": {
              "description": "The state of the EC2 Fleet.",
              "type": "string"
            },
            "fulfilledCapacity": {
              "description": "The number of units fulfilled by this request compared to the set target capacity.",
              "type": "number"
            },
            "fulfilledOnDemandCapacity": {
              "description": "The number of units fulfilled by this request compared to the set target On-Demand capacity.",
              "type": "number"
            },
            "launchTemplateConfig": {
              "description": "Nested argument containing EC2 Launch Template configurations. Defined below.",
              "items": {
                "properties": {
                  "launchTemplateSpecification": {
                    "description": "Nested argument containing EC2 Launch Template to use. Defined below.",
                    "properties": {
                      "launchTemplateId": {
                        "description": "The ID of the launch template.",
                        "type": "string"
                      },
                      "launchTemplateIdRef": {
                        "description": "Reference to a LaunchTemplate in ec2 to populate launchTemplateId.",
                        "properties": {
                          "name": {
                            "description": "Name of the referenced object.",
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace 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.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "launchTemplateIdSelector": {
                        "description": "Selector for a LaunchTemplate in ec2 to populate launchTemplateId.",
                        "properties": {
                          "matchControllerRef": {
                            "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                            "type": "boolean"
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "description": "MatchLabels ensures an object with matching labels is selected.",
                            "type": "object"
                          },
                          "namespace": {
                            "description": "Namespace for the selector",
                            "type": "string"
                          },
                          "policy": {
                            "description": "Policies for selection.",
                            "properties": {
                              "resolution": {
                                "default": "Required",
                                "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "launchTemplateName": {
                        "description": "The name of the launch template.",
                        "type": "string"
                      },
                      "version": {
                        "description": "The launch template version number, $Latest, or $Default.",
                        "type": "string"
                      },
                      "versionRef": {
                        "description": "Reference to a LaunchTemplate in ec2 to populate version.",
                        "properties": {
                          "name": {
                            "description": "Name of the referenced object.",
                            "type": "string"
                          },
                          "namespace": {
                            "description": "Namespace 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.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "versionSelector": {
                        "description": "Selector for a LaunchTemplate in ec2 to populate version.",
                        "properties": {
                          "matchControllerRef": {
                            "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                            "type": "boolean"
                          },
                          "matchLabels": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "description": "MatchLabels ensures an object with matching labels is selected.",
                            "type": "object"
                          },
                          "namespace": {
                            "description": "Namespace for the selector",
                            "type": "string"
                          },
                          "policy": {
                            "description": "Policies for selection.",
                            "properties": {
                              "resolution": {
                                "default": "Required",
                                "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                "enum": [
                                  "Required",
                                  "Optional"
                                ],
                                "type": "string"
                              },
                              "resolve": {
                                "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                "enum": [
                                  "Always",
                                  "IfNotPresent"
                                ],
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "override": {
                    "description": "Nested argument(s) containing parameters to override the same parameters in the Launch Template. Defined below.",
                    "items": {
                      "properties": {
                        "availabilityZone": {
                          "description": "Availability Zone in which to launch the instances.",
                          "type": "string"
                        },
                        "instanceRequirements": {
                          "description": "Override the instance type in the Launch Template with instance types that satisfy the requirements.",
                          "properties": {
                            "acceleratorCount": {
                              "description": "Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum limits.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorManufacturers": {
                              "description": "List of accelerator manufacturer names. Default is any manufacturer.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "acceleratorNames": {
                              "description": "List of accelerator names. Default is any acclerator.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "acceleratorTotalMemoryMib": {
                              "description": "Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorTypes": {
                              "description": "The accelerator types that must be on the instance type. Default is any accelerator type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "allowedInstanceTypes": {
                              "description": "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "bareMetal": {
                              "description": "Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "baselineEbsBandwidthMbps": {
                              "description": "Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "burstablePerformance": {
                              "description": "Indicates whether burstable performance T instance types are included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "cpuManufacturers": {
                              "description": "The CPU manufacturers to include. Default is any manufacturer.\n~> NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "excludedInstanceTypes": {
                              "description": "The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "instanceGenerations": {
                              "description": "Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are current and previous. Default is current and previous generation instance types.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "localStorage": {
                              "description": "Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.",
                              "type": "string"
                            },
                            "localStorageTypes": {
                              "description": "List of local storage type names. Valid values are hdd and ssd. Default any storage type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "maxSpotPriceAsPercentageOfOptimalOnDemandPrice": {
                              "description": "The price protection threshold for Spot Instances. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with spot_max_price_percentage_over_lowest_price",
                              "type": "number"
                            },
                            "memoryGibPerVcpu": {
                              "description": "Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "memoryMib": {
                              "description": "The minimum and maximum amount of memory per vCPU, in GiB. Default is no minimum or maximum limits.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkBandwidthGbps": {
                              "description": "The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is No minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkInterfaceCount": {
                              "description": "Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "onDemandMaxPricePercentageOverLowestPrice": {
                              "description": "The price protection threshold for On-Demand Instances. This is the maximum you\u2019ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.",
                              "type": "number"
                            },
                            "requireHibernateSupport": {
                              "description": "Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.",
                              "type": "boolean"
                            },
                            "spotMaxPricePercentageOverLowestPrice": {
                              "description": "The price protection threshold for Spot Instances. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with max_spot_price_as_percentage_of_optimal_on_demand_price",
                              "type": "number"
                            },
                            "totalLocalStorageGb": {
                              "description": "Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "vcpuCount": {
                              "description": "Block describing the minimum and maximum number of vCPUs. Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "instanceType": {
                          "description": "Instance type.",
                          "type": "string"
                        },
                        "maxPrice": {
                          "description": "Maximum price per unit hour that you are willing to pay for a Spot Instance.",
                          "type": "string"
                        },
                        "priority": {
                          "description": "Priority for the launch template override. If on_demand_options allocation_strategy is set to prioritized, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. The highest priority is launched first. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. Valid values are whole numbers starting at 0.",
                          "type": "number"
                        },
                        "subnetId": {
                          "description": "ID of the subnet in which to launch the instances.",
                          "type": "string"
                        },
                        "weightedCapacity": {
                          "description": "Number of units provided by the specified instance type.",
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "onDemandOptions": {
              "description": "Nested argument containing On-Demand configurations. Defined below.",
              "properties": {
                "allocationStrategy": {
                  "description": "The order of the launch template overrides to use in fulfilling On-Demand capacity. Valid values: lowestPrice, prioritized. Default: lowestPrice.",
                  "type": "string"
                },
                "capacityReservationOptions": {
                  "description": "Demand capacity. Supported only for fleets of type instant.",
                  "properties": {
                    "usageStrategy": {
                      "description": "Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity. Valid values: use-capacity-reservations-first.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maxTotalPrice": {
                  "description": "The maximum amount per hour for On-Demand Instances that you're willing to pay.",
                  "type": "string"
                },
                "minTargetCapacity": {
                  "description": "The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type instant.\nIf you specify min_target_capacity, at least one of the following must be specified: single_availability_zone or single_instance_type.",
                  "type": "number"
                },
                "singleAvailabilityZone": {
                  "description": "Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type instant.",
                  "type": "boolean"
                },
                "singleInstanceType": {
                  "description": "Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type instant.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "replaceUnhealthyInstances": {
              "description": "Whether EC2 Fleet should replace unhealthy instances. Defaults to false. Supported only for fleets of type maintain.",
              "type": "boolean"
            },
            "spotOptions": {
              "description": "Nested argument containing Spot configurations. Defined below.",
              "properties": {
                "allocationStrategy": {
                  "description": "How to allocate the target capacity across the Spot pools. Valid values: diversified, lowestPrice, capacity-optimized, capacity-optimized-prioritized and price-capacity-optimized. Default: lowestPrice.",
                  "type": "string"
                },
                "instanceInterruptionBehavior": {
                  "description": "Behavior when a Spot Instance is interrupted. Valid values: hibernate, stop, terminate. Default: terminate.",
                  "type": "string"
                },
                "instancePoolsToUseCount": {
                  "description": "Number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot allocation_strategy is set to lowestPrice. Default: 1.",
                  "type": "number"
                },
                "maintenanceStrategies": {
                  "description": "Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.",
                  "properties": {
                    "capacityRebalance": {
                      "description": "Nested argument containing the capacity rebalance for your fleet request. Defined below.",
                      "properties": {
                        "replacementStrategy": {
                          "description": "The replacement strategy to use. Only available for fleets of type set to maintain. Valid values: launch.",
                          "type": "string"
                        },
                        "terminationDelay": {
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maxTotalPrice": {
                  "description": "The maximum amount per hour for Spot Instances that you're willing to pay.",
                  "type": "string"
                },
                "minTargetCapacity": {
                  "description": "The minimum target capacity for Spot Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type instant.",
                  "type": "number"
                },
                "singleAvailabilityZone": {
                  "description": "Indicates that the fleet launches all Spot Instances into a single Availability Zone. Supported only for fleets of type instant.",
                  "type": "boolean"
                },
                "singleInstanceType": {
                  "description": "Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet. Supported only for fleets of type instant.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "targetCapacitySpecification": {
              "description": "Nested argument containing target capacity configurations. Defined below.",
              "properties": {
                "defaultTargetCapacityType": {
                  "description": "Default target capacity type. Valid values: on-demand, spot.",
                  "type": "string"
                },
                "onDemandTargetCapacity": {
                  "description": "The number of On-Demand units to request.",
                  "type": "number"
                },
                "spotTargetCapacity": {
                  "description": "The number of Spot units to request.",
                  "type": "number"
                },
                "targetCapacityUnitType": {
                  "description": "The unit for the target capacity.\nIf you specify target_capacity_unit_type, instance_requirements must be specified.",
                  "type": "string"
                },
                "totalTargetCapacity": {
                  "description": "The number of units to request, filled using default_target_capacity_type.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "terminateInstances": {
              "description": "Whether to terminate instances for an EC2 Fleet if it is deleted successfully. Defaults to false.",
              "type": "boolean"
            },
            "terminateInstancesWithExpiration": {
              "description": "Whether running instances should be terminated when the EC2 Fleet expires. Defaults to false.",
              "type": "boolean"
            },
            "type": {
              "description": "The type of request. Indicates whether the EC2 Fleet only requests the target capacity, or also attempts to maintain it. Valid values: maintain, request, instant. Defaults to maintain.",
              "type": "string"
            },
            "validFrom": {
              "description": "The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.",
              "type": "string"
            },
            "validUntil": {
              "description": "The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "managementPolicies": {
          "default": [
            "*"
          ],
          "description": "THIS IS A BETA FIELD. It is on by default but can be opted out\nthrough a Crossplane feature flag.\nManagementPolicies specify the array of actions Crossplane is allowed to\ntake on the managed and external resources.\nSee the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223\nand 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\ncan take on an external resource.",
            "enum": [
              "Observe",
              "Create",
              "Update",
              "Delete",
              "LateInitialize",
              "*"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "providerConfigRef": {
          "default": {
            "kind": "ClusterProviderConfig",
            "name": "default"
          },
          "description": "ProviderConfigReference specifies how the provider that will be used to\ncreate, observe, update, and delete this managed resource should be\nconfigured.",
          "properties": {
            "kind": {
              "description": "Kind of the referenced object.",
              "type": "string"
            },
            "name": {
              "description": "Name of the referenced object.",
              "type": "string"
            }
          },
          "required": [
            "kind",
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "writeConnectionSecretToRef": {
          "description": "WriteConnectionSecretToReference specifies the namespace and name of a\nSecret to which any connection details for this managed resource should\nbe written. Connection details frequently include the endpoint, username,\nand password required to connect to the managed resource.",
          "properties": {
            "name": {
              "description": "Name of the secret.",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "forProvider"
      ],
      "type": "object",
      "x-kubernetes-validations": [
        {
          "message": "spec.forProvider.launchTemplateConfig is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.launchTemplateConfig) || (has(self.initProvider) && has(self.initProvider.launchTemplateConfig))"
        },
        {
          "message": "spec.forProvider.targetCapacitySpecification is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.targetCapacitySpecification) || (has(self.initProvider) && has(self.initProvider.targetCapacitySpecification))"
        }
      ],
      "additionalProperties": false
    },
    "status": {
      "description": "FleetStatus defines the observed state of Fleet.",
      "properties": {
        "atProvider": {
          "properties": {
            "arn": {
              "description": "The ARN of the fleet",
              "type": "string"
            },
            "context": {
              "description": "Reserved.",
              "type": "string"
            },
            "excessCapacityTerminationPolicy": {
              "description": "Whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2. Valid values: no-termination, termination. Defaults to termination. Supported only for fleets of type maintain.",
              "type": "string"
            },
            "fleetInstanceSet": {
              "description": "Information about the instances that were launched by the fleet. Available only when type is set to instant.",
              "items": {
                "properties": {
                  "instanceIds": {
                    "description": "The IDs of the instances.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "instanceType": {
                    "description": "Instance type.",
                    "type": "string"
                  },
                  "lifecycle": {
                    "description": "Indicates if the instance that was launched is a Spot Instance or On-Demand Instance.",
                    "type": "string"
                  },
                  "platform": {
                    "description": "The value is Windows for Windows instances. Otherwise, the value is blank.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "fleetState": {
              "description": "The state of the EC2 Fleet.",
              "type": "string"
            },
            "fulfilledCapacity": {
              "description": "The number of units fulfilled by this request compared to the set target capacity.",
              "type": "number"
            },
            "fulfilledOnDemandCapacity": {
              "description": "The number of units fulfilled by this request compared to the set target On-Demand capacity.",
              "type": "number"
            },
            "id": {
              "description": "Fleet identifier",
              "type": "string"
            },
            "launchTemplateConfig": {
              "description": "Nested argument containing EC2 Launch Template configurations. Defined below.",
              "items": {
                "properties": {
                  "launchTemplateSpecification": {
                    "description": "Nested argument containing EC2 Launch Template to use. Defined below.",
                    "properties": {
                      "launchTemplateId": {
                        "description": "The ID of the launch template.",
                        "type": "string"
                      },
                      "launchTemplateName": {
                        "description": "The name of the launch template.",
                        "type": "string"
                      },
                      "version": {
                        "description": "The launch template version number, $Latest, or $Default.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "override": {
                    "description": "Nested argument(s) containing parameters to override the same parameters in the Launch Template. Defined below.",
                    "items": {
                      "properties": {
                        "availabilityZone": {
                          "description": "Availability Zone in which to launch the instances.",
                          "type": "string"
                        },
                        "instanceRequirements": {
                          "description": "Override the instance type in the Launch Template with instance types that satisfy the requirements.",
                          "properties": {
                            "acceleratorCount": {
                              "description": "Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum limits.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorManufacturers": {
                              "description": "List of accelerator manufacturer names. Default is any manufacturer.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "acceleratorNames": {
                              "description": "List of accelerator names. Default is any acclerator.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "acceleratorTotalMemoryMib": {
                              "description": "Block describing the minimum and maximum total memory of the accelerators. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorTypes": {
                              "description": "The accelerator types that must be on the instance type. Default is any accelerator type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "allowedInstanceTypes": {
                              "description": "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. You can use strings with one or more wild cards,represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types. Default is any instance type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "bareMetal": {
                              "description": "Indicate whether bare metal instace types should be included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "baselineEbsBandwidthMbps": {
                              "description": "Block describing the minimum and maximum baseline EBS bandwidth, in Mbps. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "burstablePerformance": {
                              "description": "Indicates whether burstable performance T instance types are included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "cpuManufacturers": {
                              "description": "The CPU manufacturers to include. Default is any manufacturer.\n~> NOTE: Don't confuse the CPU hardware manufacturer with the CPU hardware architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "excludedInstanceTypes": {
                              "description": "The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*. For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types. Maximum of 400 entries in the list; each entry is limited to 30 characters. Default is no excluded instance types.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "instanceGenerations": {
                              "description": "Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Valid values are current and previous. Default is current and previous generation instance types.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "localStorage": {
                              "description": "Indicate whether instance types with local storage volumes are included, excluded, or required. Default is included.",
                              "type": "string"
                            },
                            "localStorageTypes": {
                              "description": "List of local storage type names. Valid values are hdd and ssd. Default any storage type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "maxSpotPriceAsPercentageOfOptimalOnDemandPrice": {
                              "description": "The price protection threshold for Spot Instances. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Conflicts with spot_max_price_percentage_over_lowest_price",
                              "type": "number"
                            },
                            "memoryGibPerVcpu": {
                              "description": "Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "memoryMib": {
                              "description": "The minimum and maximum amount of memory per vCPU, in GiB. Default is no minimum or maximum limits.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkBandwidthGbps": {
                              "description": "The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is No minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkInterfaceCount": {
                              "description": "Block describing the minimum and maximum number of network interfaces. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "onDemandMaxPricePercentageOverLowestPrice": {
                              "description": "The price protection threshold for On-Demand Instances. This is the maximum you\u2019ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 20.",
                              "type": "number"
                            },
                            "requireHibernateSupport": {
                              "description": "Indicate whether instance types must support On-Demand Instance Hibernation, either true or false. Default is false.",
                              "type": "boolean"
                            },
                            "spotMaxPricePercentageOverLowestPrice": {
                              "description": "The price protection threshold for Spot Instances. This is the maximum you\u2019ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999. Default is 100. Conflicts with max_spot_price_as_percentage_of_optimal_on_demand_price",
                              "type": "number"
                            },
                            "totalLocalStorageGb": {
                              "description": "Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "vcpuCount": {
                              "description": "Block describing the minimum and maximum number of vCPUs. Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "The maximum number of vCPUs. To specify no maximum limit, omit this parameter.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "The minimum number of vCPUs. To specify no minimum limit, specify 0.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "instanceType": {
                          "description": "Instance type.",
                          "type": "string"
                        },
                        "maxPrice": {
                          "description": "Maximum price per unit hour that you are willing to pay for a Spot Instance.",
                          "type": "string"
                        },
                        "priority": {
                          "description": "Priority for the launch template override. If on_demand_options allocation_strategy is set to prioritized, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On-Demand capacity. The highest priority is launched first. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority. Valid values are whole numbers starting at 0.",
                          "type": "number"
                        },
                        "subnetId": {
                          "description": "ID of the subnet in which to launch the instances.",
                          "type": "string"
                        },
                        "weightedCapacity": {
                          "description": "Number of units provided by the specified instance type.",
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "onDemandOptions": {
              "description": "Nested argument containing On-Demand configurations. Defined below.",
              "properties": {
                "allocationStrategy": {
                  "description": "The order of the launch template overrides to use in fulfilling On-Demand capacity. Valid values: lowestPrice, prioritized. Default: lowestPrice.",
                  "type": "string"
                },
                "capacityReservationOptions": {
                  "description": "Demand capacity. Supported only for fleets of type instant.",
                  "properties": {
                    "usageStrategy": {
                      "description": "Indicates whether to use unused Capacity Reservations for fulfilling On-Demand capacity. Valid values: use-capacity-reservations-first.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maxTotalPrice": {
                  "description": "The maximum amount per hour for On-Demand Instances that you're willing to pay.",
                  "type": "string"
                },
                "minTargetCapacity": {
                  "description": "The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type instant.\nIf you specify min_target_capacity, at least one of the following must be specified: single_availability_zone or single_instance_type.",
                  "type": "number"
                },
                "singleAvailabilityZone": {
                  "description": "Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type instant.",
                  "type": "boolean"
                },
                "singleInstanceType": {
                  "description": "Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type instant.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "region": {
              "description": "Region where this resource will be managed. Defaults to the Region set in the provider configuration.\nRegion is the region you'd like your resource to be created in.",
              "type": "string"
            },
            "replaceUnhealthyInstances": {
              "description": "Whether EC2 Fleet should replace unhealthy instances. Defaults to false. Supported only for fleets of type maintain.",
              "type": "boolean"
            },
            "spotOptions": {
              "description": "Nested argument containing Spot configurations. Defined below.",
              "properties": {
                "allocationStrategy": {
                  "description": "How to allocate the target capacity across the Spot pools. Valid values: diversified, lowestPrice, capacity-optimized, capacity-optimized-prioritized and price-capacity-optimized. Default: lowestPrice.",
                  "type": "string"
                },
                "instanceInterruptionBehavior": {
                  "description": "Behavior when a Spot Instance is interrupted. Valid values: hibernate, stop, terminate. Default: terminate.",
                  "type": "string"
                },
                "instancePoolsToUseCount": {
                  "description": "Number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot allocation_strategy is set to lowestPrice. Default: 1.",
                  "type": "number"
                },
                "maintenanceStrategies": {
                  "description": "Nested argument containing maintenance strategies for managing your Spot Instances that are at an elevated risk of being interrupted. Defined below.",
                  "properties": {
                    "capacityRebalance": {
                      "description": "Nested argument containing the capacity rebalance for your fleet request. Defined below.",
                      "properties": {
                        "replacementStrategy": {
                          "description": "The replacement strategy to use. Only available for fleets of type set to maintain. Valid values: launch.",
                          "type": "string"
                        },
                        "terminationDelay": {
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maxTotalPrice": {
                  "description": "The maximum amount per hour for Spot Instances that you're willing to pay.",
                  "type": "string"
                },
                "minTargetCapacity": {
                  "description": "The minimum target capacity for Spot Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type instant.",
                  "type": "number"
                },
                "singleAvailabilityZone": {
                  "description": "Indicates that the fleet launches all Spot Instances into a single Availability Zone. Supported only for fleets of type instant.",
                  "type": "boolean"
                },
                "singleInstanceType": {
                  "description": "Indicates that the fleet uses a single instance type to launch all Spot Instances in the fleet. Supported only for fleets of type instant.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "tagsAll": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "targetCapacitySpecification": {
              "description": "Nested argument containing target capacity configurations. Defined below.",
              "properties": {
                "defaultTargetCapacityType": {
                  "description": "Default target capacity type. Valid values: on-demand, spot.",
                  "type": "string"
                },
                "onDemandTargetCapacity": {
                  "description": "The number of On-Demand units to request.",
                  "type": "number"
                },
                "spotTargetCapacity": {
                  "description": "The number of Spot units to request.",
                  "type": "number"
                },
                "targetCapacityUnitType": {
                  "description": "The unit for the target capacity.\nIf you specify target_capacity_unit_type, instance_requirements must be specified.",
                  "type": "string"
                },
                "totalTargetCapacity": {
                  "description": "The number of units to request, filled using default_target_capacity_type.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "terminateInstances": {
              "description": "Whether to terminate instances for an EC2 Fleet if it is deleted successfully. Defaults to false.",
              "type": "boolean"
            },
            "terminateInstancesWithExpiration": {
              "description": "Whether running instances should be terminated when the EC2 Fleet expires. Defaults to false.",
              "type": "boolean"
            },
            "type": {
              "description": "The type of request. Indicates whether the EC2 Fleet only requests the target capacity, or also attempts to maintain it. Valid values: maintain, request, instant. Defaults to maintain.",
              "type": "string"
            },
            "validFrom": {
              "description": "The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.",
              "type": "string"
            },
            "validUntil": {
              "description": "The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "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\nstatus to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A Message containing details about this condition's last transition from\none status to another, if any.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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\na resource at any point in time.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "type"
          ],
          "x-kubernetes-list-type": "map"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the latest metadata.generation\nwhich resulted in either a ready state, or stalled due to error\nit can not recover from without human intervention.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
