{
  "description": "SpotFleetRequest is the Schema for the SpotFleetRequests API. Provides a Spot Fleet Request resource.",
  "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": "SpotFleetRequestSpec defines the desired state of SpotFleetRequest",
      "properties": {
        "forProvider": {
          "properties": {
            "allocationStrategy": {
              "description": "Indicates how to allocate the target capacity across\nthe Spot pools specified by the Spot fleet request. Valid values: lowestPrice, diversified, capacityOptimized, capacityOptimizedPrioritized, and priceCapacityOptimized. The default is\nlowestPrice.",
              "type": "string"
            },
            "context": {
              "description": "Reserved.",
              "type": "string"
            },
            "excessCapacityTerminationPolicy": {
              "description": "Indicates whether running Spot\ninstances should be terminated if the target capacity of the Spot fleet\nrequest is decreased below the current size of the Spot fleet.",
              "type": "string"
            },
            "fleetType": {
              "description": "The type of fleet request. Indicates whether the Spot Fleet only requests the target\ncapacity or also attempts to maintain it. Default is maintain.",
              "type": "string"
            },
            "iamFleetRole": {
              "description": "Grants the Spot fleet permission to terminate\nSpot instances on your behalf when you cancel its Spot fleet request using\nCancelSpotFleetRequests or when the Spot fleet request expires, if you set\nterminateInstancesWithExpiration.",
              "type": "string"
            },
            "instanceInterruptionBehaviour": {
              "description": "Indicates whether a Spot\ninstance stops or terminates when it is interrupted. Default is\nterminate.",
              "type": "string"
            },
            "instancePoolsToUseCount": {
              "description": "The number of Spot pools across which to allocate your target Spot capacity.\nValid only when allocation_strategy is set to lowestPrice. Spot Fleet selects\nthe cheapest Spot pools and evenly allocates your target Spot capacity across\nthe number of Spot pools that you specify.",
              "type": "number"
            },
            "launchSpecification": {
              "description": "Used to define the launch configuration of the\nspot-fleet request. Can be specified multiple times to define different bids\nacross different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.",
              "items": {
                "properties": {
                  "ami": {
                    "type": "string"
                  },
                  "associatePublicIpAddress": {
                    "type": "boolean"
                  },
                  "availabilityZone": {
                    "description": "The availability zone in which to place the request.",
                    "type": "string"
                  },
                  "ebsBlockDevice": {
                    "items": {
                      "properties": {
                        "deleteOnTermination": {
                          "type": "boolean"
                        },
                        "deviceName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        },
                        "encrypted": {
                          "type": "boolean"
                        },
                        "iops": {
                          "type": "number"
                        },
                        "kmsKeyId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "snapshotId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "throughput": {
                          "type": "number"
                        },
                        "volumeSize": {
                          "type": "number"
                        },
                        "volumeType": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "ebsOptimized": {
                    "type": "boolean"
                  },
                  "ephemeralBlockDevice": {
                    "items": {
                      "properties": {
                        "deviceName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        },
                        "virtualName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "iamInstanceProfile": {
                    "type": "string"
                  },
                  "iamInstanceProfileArn": {
                    "description": "takes aws_iam_instance_profile attribute arn as input.",
                    "type": "string"
                  },
                  "iamInstanceProfileArnRef": {
                    "description": "Reference to a InstanceProfile in iam to populate iamInstanceProfileArn.",
                    "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
                  },
                  "iamInstanceProfileArnSelector": {
                    "description": "Selector for a InstanceProfile in iam to populate iamInstanceProfileArn.",
                    "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
                  },
                  "instanceType": {
                    "description": "The type of instance to request.",
                    "type": "string"
                  },
                  "keyName": {
                    "description": "The name of the launch template. Conflicts with id.",
                    "type": "string"
                  },
                  "monitoring": {
                    "type": "boolean"
                  },
                  "placementGroup": {
                    "type": "string"
                  },
                  "placementTenancy": {
                    "type": "string"
                  },
                  "rootBlockDevice": {
                    "items": {
                      "properties": {
                        "deleteOnTermination": {
                          "type": "boolean"
                        },
                        "encrypted": {
                          "type": "boolean"
                        },
                        "iops": {
                          "type": "number"
                        },
                        "kmsKeyId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "throughput": {
                          "type": "number"
                        },
                        "volumeSize": {
                          "type": "number"
                        },
                        "volumeType": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "spotPrice": {
                    "description": "The maximum bid price per unit hour.",
                    "type": "string"
                  },
                  "subnetId": {
                    "description": "The subnet in which to launch the requested instance.",
                    "type": "string"
                  },
                  "tags": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Key-value map of resource tags.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "userData": {
                    "type": "string"
                  },
                  "vpcSecurityGroupIds": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "x-kubernetes-list-type": "set"
                  },
                  "weightedCapacity": {
                    "description": "The capacity added to the fleet by a fulfilled request.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "launchTemplateConfig": {
              "description": "Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.",
              "items": {
                "properties": {
                  "launchTemplateSpecification": {
                    "description": "Launch template specification. See Launch Template Specification below for more details.",
                    "properties": {
                      "id": {
                        "description": "The ID of the launch template. Conflicts with name.",
                        "type": "string"
                      },
                      "idRef": {
                        "description": "Reference to a LaunchTemplate in ec2 to populate id.",
                        "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
                      },
                      "idSelector": {
                        "description": "Selector for a LaunchTemplate in ec2 to populate id.",
                        "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
                      },
                      "name": {
                        "description": "The name of the launch template. Conflicts with id.",
                        "type": "string"
                      },
                      "version": {
                        "description": "Template version. Unlike the autoscaling equivalent, does not support $Latest or $Default, so use the launch_template resource's attribute, e.g., \"${aws_launch_template.foo.latest_version}\". It will use the default version if omitted.",
                        "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
                  },
                  "overrides": {
                    "description": "One or more override configurations. See Overrides below for more details.",
                    "items": {
                      "properties": {
                        "availabilityZone": {
                          "description": "The availability zone in which to place the request.",
                          "type": "string"
                        },
                        "instanceRequirements": {
                          "description": "The instance requirements. See below.",
                          "properties": {
                            "acceleratorCount": {
                              "description": "Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorTypes": {
                              "description": "List of accelerator types. Default is any accelerator type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "allowedInstanceTypes": {
                              "description": "List of 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 (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.",
                              "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "burstablePerformance": {
                              "description": "Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "cpuManufacturers": {
                              "description": "List of CPU manufacturer names. Default is any manufacturer.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "excludedInstanceTypes": {
                              "description": "List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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": "List of instance generation names. Default is any generation.",
                              "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. Default any storage type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "memoryGibPerVcpu": {
                              "description": "Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "memoryMib": {
                              "description": "Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkBandwidthGbps": {
                              "description": "Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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.",
                              "type": "number"
                            },
                            "totalLocalStorageGb": {
                              "description": "Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "vcpuCount": {
                              "description": "Block describing the minimum and maximum number of vCPUs. Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "instanceType": {
                          "description": "The type of instance to request.",
                          "type": "string"
                        },
                        "priority": {
                          "description": "The priority for the launch template override. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority.",
                          "type": "number"
                        },
                        "spotPrice": {
                          "description": "The maximum bid price per unit hour.",
                          "type": "string"
                        },
                        "subnetId": {
                          "description": "The subnet in which to launch the requested instance.",
                          "type": "string"
                        },
                        "weightedCapacity": {
                          "description": "The capacity added to the fleet by a fulfilled request.",
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "loadBalancers": {
              "description": "A list of elastic load balancer names to add to the Spot fleet.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "onDemandAllocationStrategy": {
              "description": "The order of the launch template overrides to use in fulfilling On-Demand capacity. the possible values are: lowestPrice and prioritized. the default is lowestPrice.",
              "type": "string"
            },
            "onDemandMaxTotalPrice": {
              "description": "The maximum amount per hour for On-Demand Instances that you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity.",
              "type": "string"
            },
            "onDemandTargetCapacity": {
              "description": "The number of On-Demand units to request. If the request type is maintain, you can specify a target capacity of 0 and add capacity later.",
              "type": "number"
            },
            "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": "Indicates whether Spot fleet should replace unhealthy instances. Default false.",
              "type": "boolean"
            },
            "spotMaintenanceStrategies": {
              "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 spot fleets with fleet_type set to maintain. Valid values: launch.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "spotPrice": {
              "description": "The maximum bid price per unit hour.",
              "type": "string"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "targetCapacity": {
              "description": "The number of units to request. You can choose to set the\ntarget capacity in terms of instances or a performance characteristic that is\nimportant to your application workload, such as vCPUs, memory, or I/O.",
              "type": "number"
            },
            "targetCapacityUnitType": {
              "description": "The unit for the target capacity. This can only be done with instance_requirements defined",
              "type": "string"
            },
            "targetGroupArns": {
              "description": "A list of aws_alb_target_group ARNs, for use with Application Load Balancing.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "terminateInstancesOnDelete": {
              "description": "Indicates whether running Spot\ninstances should be terminated when the resource is deleted (and the Spot fleet request cancelled).\nIf no value is specified, the value of the terminate_instances_with_expiration argument is used.",
              "type": "string"
            },
            "terminateInstancesWithExpiration": {
              "description": "Indicates whether running Spot\ninstances should be terminated when the Spot fleet request expires.",
              "type": "boolean"
            },
            "validFrom": {
              "description": "The start date and time of the request, in UTC RFC3339 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 RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.",
              "type": "string"
            },
            "waitForFulfillment": {
              "type": "boolean"
            }
          },
          "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": {
            "allocationStrategy": {
              "description": "Indicates how to allocate the target capacity across\nthe Spot pools specified by the Spot fleet request. Valid values: lowestPrice, diversified, capacityOptimized, capacityOptimizedPrioritized, and priceCapacityOptimized. The default is\nlowestPrice.",
              "type": "string"
            },
            "context": {
              "description": "Reserved.",
              "type": "string"
            },
            "excessCapacityTerminationPolicy": {
              "description": "Indicates whether running Spot\ninstances should be terminated if the target capacity of the Spot fleet\nrequest is decreased below the current size of the Spot fleet.",
              "type": "string"
            },
            "fleetType": {
              "description": "The type of fleet request. Indicates whether the Spot Fleet only requests the target\ncapacity or also attempts to maintain it. Default is maintain.",
              "type": "string"
            },
            "iamFleetRole": {
              "description": "Grants the Spot fleet permission to terminate\nSpot instances on your behalf when you cancel its Spot fleet request using\nCancelSpotFleetRequests or when the Spot fleet request expires, if you set\nterminateInstancesWithExpiration.",
              "type": "string"
            },
            "instanceInterruptionBehaviour": {
              "description": "Indicates whether a Spot\ninstance stops or terminates when it is interrupted. Default is\nterminate.",
              "type": "string"
            },
            "instancePoolsToUseCount": {
              "description": "The number of Spot pools across which to allocate your target Spot capacity.\nValid only when allocation_strategy is set to lowestPrice. Spot Fleet selects\nthe cheapest Spot pools and evenly allocates your target Spot capacity across\nthe number of Spot pools that you specify.",
              "type": "number"
            },
            "launchSpecification": {
              "description": "Used to define the launch configuration of the\nspot-fleet request. Can be specified multiple times to define different bids\nacross different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.",
              "items": {
                "properties": {
                  "ami": {
                    "type": "string"
                  },
                  "associatePublicIpAddress": {
                    "type": "boolean"
                  },
                  "availabilityZone": {
                    "description": "The availability zone in which to place the request.",
                    "type": "string"
                  },
                  "ebsBlockDevice": {
                    "items": {
                      "properties": {
                        "deleteOnTermination": {
                          "type": "boolean"
                        },
                        "deviceName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        },
                        "encrypted": {
                          "type": "boolean"
                        },
                        "iops": {
                          "type": "number"
                        },
                        "kmsKeyId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "snapshotId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "throughput": {
                          "type": "number"
                        },
                        "volumeSize": {
                          "type": "number"
                        },
                        "volumeType": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "ebsOptimized": {
                    "type": "boolean"
                  },
                  "ephemeralBlockDevice": {
                    "items": {
                      "properties": {
                        "deviceName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        },
                        "virtualName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "iamInstanceProfile": {
                    "type": "string"
                  },
                  "iamInstanceProfileArn": {
                    "description": "takes aws_iam_instance_profile attribute arn as input.",
                    "type": "string"
                  },
                  "iamInstanceProfileArnRef": {
                    "description": "Reference to a InstanceProfile in iam to populate iamInstanceProfileArn.",
                    "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
                  },
                  "iamInstanceProfileArnSelector": {
                    "description": "Selector for a InstanceProfile in iam to populate iamInstanceProfileArn.",
                    "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
                  },
                  "instanceType": {
                    "description": "The type of instance to request.",
                    "type": "string"
                  },
                  "keyName": {
                    "description": "The name of the launch template. Conflicts with id.",
                    "type": "string"
                  },
                  "monitoring": {
                    "type": "boolean"
                  },
                  "placementGroup": {
                    "type": "string"
                  },
                  "placementTenancy": {
                    "type": "string"
                  },
                  "rootBlockDevice": {
                    "items": {
                      "properties": {
                        "deleteOnTermination": {
                          "type": "boolean"
                        },
                        "encrypted": {
                          "type": "boolean"
                        },
                        "iops": {
                          "type": "number"
                        },
                        "kmsKeyId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "throughput": {
                          "type": "number"
                        },
                        "volumeSize": {
                          "type": "number"
                        },
                        "volumeType": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "spotPrice": {
                    "description": "The maximum bid price per unit hour.",
                    "type": "string"
                  },
                  "subnetId": {
                    "description": "The subnet in which to launch the requested instance.",
                    "type": "string"
                  },
                  "tags": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Key-value map of resource tags.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "userData": {
                    "type": "string"
                  },
                  "vpcSecurityGroupIds": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "x-kubernetes-list-type": "set"
                  },
                  "weightedCapacity": {
                    "description": "The capacity added to the fleet by a fulfilled request.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "launchTemplateConfig": {
              "description": "Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.",
              "items": {
                "properties": {
                  "launchTemplateSpecification": {
                    "description": "Launch template specification. See Launch Template Specification below for more details.",
                    "properties": {
                      "id": {
                        "description": "The ID of the launch template. Conflicts with name.",
                        "type": "string"
                      },
                      "idRef": {
                        "description": "Reference to a LaunchTemplate in ec2 to populate id.",
                        "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
                      },
                      "idSelector": {
                        "description": "Selector for a LaunchTemplate in ec2 to populate id.",
                        "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
                      },
                      "name": {
                        "description": "The name of the launch template. Conflicts with id.",
                        "type": "string"
                      },
                      "version": {
                        "description": "Template version. Unlike the autoscaling equivalent, does not support $Latest or $Default, so use the launch_template resource's attribute, e.g., \"${aws_launch_template.foo.latest_version}\". It will use the default version if omitted.",
                        "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
                  },
                  "overrides": {
                    "description": "One or more override configurations. See Overrides below for more details.",
                    "items": {
                      "properties": {
                        "availabilityZone": {
                          "description": "The availability zone in which to place the request.",
                          "type": "string"
                        },
                        "instanceRequirements": {
                          "description": "The instance requirements. See below.",
                          "properties": {
                            "acceleratorCount": {
                              "description": "Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorTypes": {
                              "description": "List of accelerator types. Default is any accelerator type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "allowedInstanceTypes": {
                              "description": "List of 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 (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.",
                              "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "burstablePerformance": {
                              "description": "Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "cpuManufacturers": {
                              "description": "List of CPU manufacturer names. Default is any manufacturer.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "excludedInstanceTypes": {
                              "description": "List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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": "List of instance generation names. Default is any generation.",
                              "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. Default any storage type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "memoryGibPerVcpu": {
                              "description": "Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "memoryMib": {
                              "description": "Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkBandwidthGbps": {
                              "description": "Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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.",
                              "type": "number"
                            },
                            "totalLocalStorageGb": {
                              "description": "Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "vcpuCount": {
                              "description": "Block describing the minimum and maximum number of vCPUs. Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "instanceType": {
                          "description": "The type of instance to request.",
                          "type": "string"
                        },
                        "priority": {
                          "description": "The priority for the launch template override. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority.",
                          "type": "number"
                        },
                        "spotPrice": {
                          "description": "The maximum bid price per unit hour.",
                          "type": "string"
                        },
                        "subnetId": {
                          "description": "The subnet in which to launch the requested instance.",
                          "type": "string"
                        },
                        "weightedCapacity": {
                          "description": "The capacity added to the fleet by a fulfilled request.",
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "loadBalancers": {
              "description": "A list of elastic load balancer names to add to the Spot fleet.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "onDemandAllocationStrategy": {
              "description": "The order of the launch template overrides to use in fulfilling On-Demand capacity. the possible values are: lowestPrice and prioritized. the default is lowestPrice.",
              "type": "string"
            },
            "onDemandMaxTotalPrice": {
              "description": "The maximum amount per hour for On-Demand Instances that you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity.",
              "type": "string"
            },
            "onDemandTargetCapacity": {
              "description": "The number of On-Demand units to request. If the request type is maintain, you can specify a target capacity of 0 and add capacity later.",
              "type": "number"
            },
            "replaceUnhealthyInstances": {
              "description": "Indicates whether Spot fleet should replace unhealthy instances. Default false.",
              "type": "boolean"
            },
            "spotMaintenanceStrategies": {
              "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 spot fleets with fleet_type set to maintain. Valid values: launch.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "spotPrice": {
              "description": "The maximum bid price per unit hour.",
              "type": "string"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "targetCapacity": {
              "description": "The number of units to request. You can choose to set the\ntarget capacity in terms of instances or a performance characteristic that is\nimportant to your application workload, such as vCPUs, memory, or I/O.",
              "type": "number"
            },
            "targetCapacityUnitType": {
              "description": "The unit for the target capacity. This can only be done with instance_requirements defined",
              "type": "string"
            },
            "targetGroupArns": {
              "description": "A list of aws_alb_target_group ARNs, for use with Application Load Balancing.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "terminateInstancesOnDelete": {
              "description": "Indicates whether running Spot\ninstances should be terminated when the resource is deleted (and the Spot fleet request cancelled).\nIf no value is specified, the value of the terminate_instances_with_expiration argument is used.",
              "type": "string"
            },
            "terminateInstancesWithExpiration": {
              "description": "Indicates whether running Spot\ninstances should be terminated when the Spot fleet request expires.",
              "type": "boolean"
            },
            "validFrom": {
              "description": "The start date and time of the request, in UTC RFC3339 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 RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.",
              "type": "string"
            },
            "waitForFulfillment": {
              "type": "boolean"
            }
          },
          "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.iamFleetRole is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.iamFleetRole) || (has(self.initProvider) && has(self.initProvider.iamFleetRole))"
        },
        {
          "message": "spec.forProvider.targetCapacity is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.targetCapacity) || (has(self.initProvider) && has(self.initProvider.targetCapacity))"
        }
      ],
      "additionalProperties": false
    },
    "status": {
      "description": "SpotFleetRequestStatus defines the observed state of SpotFleetRequest.",
      "properties": {
        "atProvider": {
          "properties": {
            "allocationStrategy": {
              "description": "Indicates how to allocate the target capacity across\nthe Spot pools specified by the Spot fleet request. Valid values: lowestPrice, diversified, capacityOptimized, capacityOptimizedPrioritized, and priceCapacityOptimized. The default is\nlowestPrice.",
              "type": "string"
            },
            "clientToken": {
              "type": "string"
            },
            "context": {
              "description": "Reserved.",
              "type": "string"
            },
            "excessCapacityTerminationPolicy": {
              "description": "Indicates whether running Spot\ninstances should be terminated if the target capacity of the Spot fleet\nrequest is decreased below the current size of the Spot fleet.",
              "type": "string"
            },
            "fleetType": {
              "description": "The type of fleet request. Indicates whether the Spot Fleet only requests the target\ncapacity or also attempts to maintain it. Default is maintain.",
              "type": "string"
            },
            "iamFleetRole": {
              "description": "Grants the Spot fleet permission to terminate\nSpot instances on your behalf when you cancel its Spot fleet request using\nCancelSpotFleetRequests or when the Spot fleet request expires, if you set\nterminateInstancesWithExpiration.",
              "type": "string"
            },
            "id": {
              "description": "The ID of the launch template. Conflicts with name.",
              "type": "string"
            },
            "instanceInterruptionBehaviour": {
              "description": "Indicates whether a Spot\ninstance stops or terminates when it is interrupted. Default is\nterminate.",
              "type": "string"
            },
            "instancePoolsToUseCount": {
              "description": "The number of Spot pools across which to allocate your target Spot capacity.\nValid only when allocation_strategy is set to lowestPrice. Spot Fleet selects\nthe cheapest Spot pools and evenly allocates your target Spot capacity across\nthe number of Spot pools that you specify.",
              "type": "number"
            },
            "launchSpecification": {
              "description": "Used to define the launch configuration of the\nspot-fleet request. Can be specified multiple times to define different bids\nacross different markets and instance types. Conflicts with launch_template_config. At least one of launch_specification or launch_template_config is required.",
              "items": {
                "properties": {
                  "ami": {
                    "type": "string"
                  },
                  "associatePublicIpAddress": {
                    "type": "boolean"
                  },
                  "availabilityZone": {
                    "description": "The availability zone in which to place the request.",
                    "type": "string"
                  },
                  "ebsBlockDevice": {
                    "items": {
                      "properties": {
                        "deleteOnTermination": {
                          "type": "boolean"
                        },
                        "deviceName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        },
                        "encrypted": {
                          "type": "boolean"
                        },
                        "iops": {
                          "type": "number"
                        },
                        "kmsKeyId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "snapshotId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "throughput": {
                          "type": "number"
                        },
                        "volumeSize": {
                          "type": "number"
                        },
                        "volumeType": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "ebsOptimized": {
                    "type": "boolean"
                  },
                  "ephemeralBlockDevice": {
                    "items": {
                      "properties": {
                        "deviceName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        },
                        "virtualName": {
                          "description": "The name of the launch template. Conflicts with id.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "iamInstanceProfile": {
                    "type": "string"
                  },
                  "iamInstanceProfileArn": {
                    "description": "takes aws_iam_instance_profile attribute arn as input.",
                    "type": "string"
                  },
                  "instanceType": {
                    "description": "The type of instance to request.",
                    "type": "string"
                  },
                  "keyName": {
                    "description": "The name of the launch template. Conflicts with id.",
                    "type": "string"
                  },
                  "monitoring": {
                    "type": "boolean"
                  },
                  "placementGroup": {
                    "type": "string"
                  },
                  "placementTenancy": {
                    "type": "string"
                  },
                  "rootBlockDevice": {
                    "items": {
                      "properties": {
                        "deleteOnTermination": {
                          "type": "boolean"
                        },
                        "encrypted": {
                          "type": "boolean"
                        },
                        "iops": {
                          "type": "number"
                        },
                        "kmsKeyId": {
                          "description": "The ID of the launch template. Conflicts with name.",
                          "type": "string"
                        },
                        "throughput": {
                          "type": "number"
                        },
                        "volumeSize": {
                          "type": "number"
                        },
                        "volumeType": {
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "spotPrice": {
                    "description": "The maximum bid price per unit hour.",
                    "type": "string"
                  },
                  "subnetId": {
                    "description": "The subnet in which to launch the requested instance.",
                    "type": "string"
                  },
                  "tags": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Key-value map of resource tags.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "userData": {
                    "type": "string"
                  },
                  "vpcSecurityGroupIds": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "x-kubernetes-list-type": "set"
                  },
                  "weightedCapacity": {
                    "description": "The capacity added to the fleet by a fulfilled request.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "launchTemplateConfig": {
              "description": "Launch template configuration block. See Launch Template Configs below for more details. Conflicts with launch_specification. At least one of launch_specification or launch_template_config is required.",
              "items": {
                "properties": {
                  "launchTemplateSpecification": {
                    "description": "Launch template specification. See Launch Template Specification below for more details.",
                    "properties": {
                      "id": {
                        "description": "The ID of the launch template. Conflicts with name.",
                        "type": "string"
                      },
                      "name": {
                        "description": "The name of the launch template. Conflicts with id.",
                        "type": "string"
                      },
                      "version": {
                        "description": "Template version. Unlike the autoscaling equivalent, does not support $Latest or $Default, so use the launch_template resource's attribute, e.g., \"${aws_launch_template.foo.latest_version}\". It will use the default version if omitted.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "overrides": {
                    "description": "One or more override configurations. See Overrides below for more details.",
                    "items": {
                      "properties": {
                        "availabilityZone": {
                          "description": "The availability zone in which to place the request.",
                          "type": "string"
                        },
                        "instanceRequirements": {
                          "description": "The instance requirements. See below.",
                          "properties": {
                            "acceleratorCount": {
                              "description": "Block describing the minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "acceleratorTypes": {
                              "description": "List of accelerator types. Default is any accelerator type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "allowedInstanceTypes": {
                              "description": "List of 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 (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*. For example, if you specify c5*, you are allowing the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are allowing 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 all instance types.",
                              "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "burstablePerformance": {
                              "description": "Indicate whether burstable performance instance types should be included, excluded, or required. Default is excluded.",
                              "type": "string"
                            },
                            "cpuManufacturers": {
                              "description": "List of CPU manufacturer names. Default is any manufacturer.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "excludedInstanceTypes": {
                              "description": "List of instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, 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": "List of instance generation names. Default is any generation.",
                              "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. Default any storage type.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array",
                              "x-kubernetes-list-type": "set"
                            },
                            "memoryGibPerVcpu": {
                              "description": "Block describing the minimum and maximum amount of memory (GiB) per vCPU. Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "memoryMib": {
                              "description": "Block describing the minimum and maximum amount of memory (MiB). Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "networkBandwidthGbps": {
                              "description": "Block describing the minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "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.",
                              "type": "number"
                            },
                            "totalLocalStorageGb": {
                              "description": "Block describing the minimum and maximum total local storage (GB). Default is no minimum or maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "vcpuCount": {
                              "description": "Block describing the minimum and maximum number of vCPUs. Default is no maximum.",
                              "properties": {
                                "max": {
                                  "description": "Maximum.",
                                  "type": "number"
                                },
                                "min": {
                                  "description": "Minimum.",
                                  "type": "number"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "instanceType": {
                          "description": "The type of instance to request.",
                          "type": "string"
                        },
                        "priority": {
                          "description": "The priority for the launch template override. The lower the number, the higher the priority. If no number is set, the launch template override has the lowest priority.",
                          "type": "number"
                        },
                        "spotPrice": {
                          "description": "The maximum bid price per unit hour.",
                          "type": "string"
                        },
                        "subnetId": {
                          "description": "The subnet in which to launch the requested instance.",
                          "type": "string"
                        },
                        "weightedCapacity": {
                          "description": "The capacity added to the fleet by a fulfilled request.",
                          "type": "number"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "loadBalancers": {
              "description": "A list of elastic load balancer names to add to the Spot fleet.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "onDemandAllocationStrategy": {
              "description": "The order of the launch template overrides to use in fulfilling On-Demand capacity. the possible values are: lowestPrice and prioritized. the default is lowestPrice.",
              "type": "string"
            },
            "onDemandMaxTotalPrice": {
              "description": "The maximum amount per hour for On-Demand Instances that you're willing to pay. When the maximum amount you're willing to pay is reached, the fleet stops launching instances even if it hasn\u2019t met the target capacity.",
              "type": "string"
            },
            "onDemandTargetCapacity": {
              "description": "The number of On-Demand units to request. If the request type is maintain, you can specify a target capacity of 0 and add capacity later.",
              "type": "number"
            },
            "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": "Indicates whether Spot fleet should replace unhealthy instances. Default false.",
              "type": "boolean"
            },
            "spotMaintenanceStrategies": {
              "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 spot fleets with fleet_type set to maintain. Valid values: launch.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "spotPrice": {
              "description": "The maximum bid price per unit hour.",
              "type": "string"
            },
            "spotRequestState": {
              "description": "The state of the Spot fleet request.",
              "type": "string"
            },
            "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"
            },
            "targetCapacity": {
              "description": "The number of units to request. You can choose to set the\ntarget capacity in terms of instances or a performance characteristic that is\nimportant to your application workload, such as vCPUs, memory, or I/O.",
              "type": "number"
            },
            "targetCapacityUnitType": {
              "description": "The unit for the target capacity. This can only be done with instance_requirements defined",
              "type": "string"
            },
            "targetGroupArns": {
              "description": "A list of aws_alb_target_group ARNs, for use with Application Load Balancing.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "terminateInstancesOnDelete": {
              "description": "Indicates whether running Spot\ninstances should be terminated when the resource is deleted (and the Spot fleet request cancelled).\nIf no value is specified, the value of the terminate_instances_with_expiration argument is used.",
              "type": "string"
            },
            "terminateInstancesWithExpiration": {
              "description": "Indicates whether running Spot\ninstances should be terminated when the Spot fleet request expires.",
              "type": "boolean"
            },
            "validFrom": {
              "description": "The start date and time of the request, in UTC RFC3339 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 RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request.",
              "type": "string"
            },
            "waitForFulfillment": {
              "type": "boolean"
            }
          },
          "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"
}
