{
  "description": "NodeGroup is the Schema for the NodeGroups API. Manages an EKS Node Group",
  "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": "NodeGroupSpec defines the desired state of NodeGroup",
      "properties": {
        "forProvider": {
          "properties": {
            "amiType": {
              "description": "Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values.",
              "type": "string"
            },
            "capacityType": {
              "description": "Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT.",
              "type": "string"
            },
            "clusterName": {
              "description": "Name of the EKS Cluster.",
              "type": "string"
            },
            "clusterNameRef": {
              "description": "Reference to a Cluster in eks to populate clusterName.",
              "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
            },
            "clusterNameSelector": {
              "description": "Selector for a Cluster in eks to populate clusterName.",
              "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
            },
            "diskSize": {
              "description": "Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups.",
              "type": "number"
            },
            "forceUpdateVersion": {
              "description": "Force version update if existing pods are unable to be drained due to a pod disruption budget issue.",
              "type": "boolean"
            },
            "instanceTypes": {
              "description": "List of instance types associated with the EKS Node Group. Defaults to [\"t3.medium\"].",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "labels": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "launchTemplate": {
              "description": "Configuration block with Launch Template settings. See launch_template below for details. Conflicts with remote_access.",
              "properties": {
                "id": {
                  "description": "Identifier of the EC2 Launch Template. Conflicts with name.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the EC2 Launch Template. Conflicts with id.",
                  "type": "string"
                },
                "version": {
                  "description": "EC2 Launch Template version number.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "nodeRepairConfig": {
              "description": "The node auto repair configuration for the node group. See node_repair_config below for details.",
              "properties": {
                "enabled": {
                  "description": "Specifies whether to enable node auto repair for the node group. Node auto repair is disabled by default.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "nodeRoleArn": {
              "description": "Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.",
              "type": "string"
            },
            "nodeRoleArnRef": {
              "description": "Reference to a Role in iam to populate nodeRoleArn.",
              "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
            },
            "nodeRoleArnSelector": {
              "description": "Selector for a Role in iam to populate nodeRoleArn.",
              "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
            },
            "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"
            },
            "releaseVersion": {
              "description": "AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.",
              "type": "string"
            },
            "remoteAccess": {
              "description": "Configuration block with remote access settings. See remote_access below for details. Conflicts with launch_template.",
              "properties": {
                "ec2SshKey": {
                  "description": "EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.",
                  "type": "string"
                },
                "sourceSecurityGroupIdRefs": {
                  "description": "References to SecurityGroup in ec2 to populate sourceSecurityGroupIds.",
                  "items": {
                    "description": "A NamespacedReference to a named object.",
                    "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
                  },
                  "type": "array"
                },
                "sourceSecurityGroupIdSelector": {
                  "description": "Selector for a list of SecurityGroup in ec2 to populate sourceSecurityGroupIds.",
                  "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
                },
                "sourceSecurityGroupIds": {
                  "description": "Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "set"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "scalingConfig": {
              "description": "Configuration block with scaling settings. See scaling_config below for details.",
              "properties": {
                "desiredSize": {
                  "description": "Desired number of worker nodes.",
                  "type": "number"
                },
                "maxSize": {
                  "description": "Maximum number of worker nodes.",
                  "type": "number"
                },
                "minSize": {
                  "description": "Minimum number of worker nodes.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "subnetIdRefs": {
              "description": "References to Subnet in ec2 to populate subnetIds.",
              "items": {
                "description": "A NamespacedReference to a named object.",
                "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
              },
              "type": "array"
            },
            "subnetIdSelector": {
              "description": "Selector for a list of Subnet in ec2 to populate subnetIds.",
              "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
            },
            "subnetIds": {
              "description": "Identifiers of EC2 Subnets to associate with the EKS Node Group. Amazon EKS managed node groups can be launched in both public and private subnets. If you plan to deploy load balancers to a subnet, the private subnet must have tag kubernetes.io/role/internal-elb, the public subnet must have tag kubernetes.io/role/elb.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "taint": {
              "description": "The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. See taint below for details.",
              "items": {
                "properties": {
                  "effect": {
                    "description": "The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The key of the taint. Maximum length of 63.",
                    "type": "string"
                  },
                  "value": {
                    "description": "The value of the taint. Maximum length of 63.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "updateConfig": {
              "description": "Configuration block with update settings. See update_config below for details.",
              "properties": {
                "maxUnavailable": {
                  "description": "Desired max number of unavailable worker nodes during node group update.",
                  "type": "number"
                },
                "maxUnavailablePercentage": {
                  "description": "Desired max percentage of unavailable worker nodes during node group update.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "version": {
              "description": "Kubernetes version. Defaults to EKS Cluster Kubernetes version.",
              "type": "string"
            },
            "versionRef": {
              "description": "Reference to a Cluster in eks 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 Cluster in eks 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
            }
          },
          "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": {
            "amiType": {
              "description": "Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values.",
              "type": "string"
            },
            "capacityType": {
              "description": "Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT.",
              "type": "string"
            },
            "diskSize": {
              "description": "Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups.",
              "type": "number"
            },
            "forceUpdateVersion": {
              "description": "Force version update if existing pods are unable to be drained due to a pod disruption budget issue.",
              "type": "boolean"
            },
            "instanceTypes": {
              "description": "List of instance types associated with the EKS Node Group. Defaults to [\"t3.medium\"].",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "labels": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "launchTemplate": {
              "description": "Configuration block with Launch Template settings. See launch_template below for details. Conflicts with remote_access.",
              "properties": {
                "id": {
                  "description": "Identifier of the EC2 Launch Template. Conflicts with name.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the EC2 Launch Template. Conflicts with id.",
                  "type": "string"
                },
                "version": {
                  "description": "EC2 Launch Template version number.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "nodeRepairConfig": {
              "description": "The node auto repair configuration for the node group. See node_repair_config below for details.",
              "properties": {
                "enabled": {
                  "description": "Specifies whether to enable node auto repair for the node group. Node auto repair is disabled by default.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "nodeRoleArn": {
              "description": "Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.",
              "type": "string"
            },
            "nodeRoleArnRef": {
              "description": "Reference to a Role in iam to populate nodeRoleArn.",
              "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
            },
            "nodeRoleArnSelector": {
              "description": "Selector for a Role in iam to populate nodeRoleArn.",
              "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
            },
            "releaseVersion": {
              "description": "AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.",
              "type": "string"
            },
            "remoteAccess": {
              "description": "Configuration block with remote access settings. See remote_access below for details. Conflicts with launch_template.",
              "properties": {
                "ec2SshKey": {
                  "description": "EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.",
                  "type": "string"
                },
                "sourceSecurityGroupIdRefs": {
                  "description": "References to SecurityGroup in ec2 to populate sourceSecurityGroupIds.",
                  "items": {
                    "description": "A NamespacedReference to a named object.",
                    "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
                  },
                  "type": "array"
                },
                "sourceSecurityGroupIdSelector": {
                  "description": "Selector for a list of SecurityGroup in ec2 to populate sourceSecurityGroupIds.",
                  "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
                },
                "sourceSecurityGroupIds": {
                  "description": "Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "set"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "scalingConfig": {
              "description": "Configuration block with scaling settings. See scaling_config below for details.",
              "properties": {
                "desiredSize": {
                  "description": "Desired number of worker nodes.",
                  "type": "number"
                },
                "maxSize": {
                  "description": "Maximum number of worker nodes.",
                  "type": "number"
                },
                "minSize": {
                  "description": "Minimum number of worker nodes.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "subnetIdRefs": {
              "description": "References to Subnet in ec2 to populate subnetIds.",
              "items": {
                "description": "A NamespacedReference to a named object.",
                "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
              },
              "type": "array"
            },
            "subnetIdSelector": {
              "description": "Selector for a list of Subnet in ec2 to populate subnetIds.",
              "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
            },
            "subnetIds": {
              "description": "Identifiers of EC2 Subnets to associate with the EKS Node Group. Amazon EKS managed node groups can be launched in both public and private subnets. If you plan to deploy load balancers to a subnet, the private subnet must have tag kubernetes.io/role/internal-elb, the public subnet must have tag kubernetes.io/role/elb.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "taint": {
              "description": "The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. See taint below for details.",
              "items": {
                "properties": {
                  "effect": {
                    "description": "The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The key of the taint. Maximum length of 63.",
                    "type": "string"
                  },
                  "value": {
                    "description": "The value of the taint. Maximum length of 63.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "updateConfig": {
              "description": "Configuration block with update settings. See update_config below for details.",
              "properties": {
                "maxUnavailable": {
                  "description": "Desired max number of unavailable worker nodes during node group update.",
                  "type": "number"
                },
                "maxUnavailablePercentage": {
                  "description": "Desired max percentage of unavailable worker nodes during node group update.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "version": {
              "description": "Kubernetes version. Defaults to EKS Cluster Kubernetes version.",
              "type": "string"
            },
            "versionRef": {
              "description": "Reference to a Cluster in eks 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 Cluster in eks 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
        },
        "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.scalingConfig is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.scalingConfig) || (has(self.initProvider) && has(self.initProvider.scalingConfig))"
        }
      ],
      "additionalProperties": false
    },
    "status": {
      "description": "NodeGroupStatus defines the observed state of NodeGroup.",
      "properties": {
        "atProvider": {
          "properties": {
            "amiType": {
              "description": "Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values.",
              "type": "string"
            },
            "arn": {
              "description": "Amazon Resource Name (ARN) of the EKS Node Group.",
              "type": "string"
            },
            "capacityType": {
              "description": "Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT.",
              "type": "string"
            },
            "clusterName": {
              "description": "Name of the EKS Cluster.",
              "type": "string"
            },
            "diskSize": {
              "description": "Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups.",
              "type": "number"
            },
            "forceUpdateVersion": {
              "description": "Force version update if existing pods are unable to be drained due to a pod disruption budget issue.",
              "type": "boolean"
            },
            "id": {
              "description": "EKS Cluster name and EKS Node Group name separated by a colon (:).",
              "type": "string"
            },
            "instanceTypes": {
              "description": "List of instance types associated with the EKS Node Group. Defaults to [\"t3.medium\"].",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "labels": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "launchTemplate": {
              "description": "Configuration block with Launch Template settings. See launch_template below for details. Conflicts with remote_access.",
              "properties": {
                "id": {
                  "description": "Identifier of the EC2 Launch Template. Conflicts with name.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the EC2 Launch Template. Conflicts with id.",
                  "type": "string"
                },
                "version": {
                  "description": "EC2 Launch Template version number.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "nodeRepairConfig": {
              "description": "The node auto repair configuration for the node group. See node_repair_config below for details.",
              "properties": {
                "enabled": {
                  "description": "Specifies whether to enable node auto repair for the node group. Node auto repair is disabled by default.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "nodeRoleArn": {
              "description": "Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.",
              "type": "string"
            },
            "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"
            },
            "releaseVersion": {
              "description": "AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.",
              "type": "string"
            },
            "remoteAccess": {
              "description": "Configuration block with remote access settings. See remote_access below for details. Conflicts with launch_template.",
              "properties": {
                "ec2SshKey": {
                  "description": "EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.",
                  "type": "string"
                },
                "sourceSecurityGroupIds": {
                  "description": "Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "x-kubernetes-list-type": "set"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "resources": {
              "description": "List of objects containing information about underlying resources.",
              "items": {
                "properties": {
                  "autoscalingGroups": {
                    "description": "List of objects containing information about AutoScaling Groups.",
                    "items": {
                      "properties": {
                        "name": {
                          "description": "Name of the AutoScaling Group.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "remoteAccessSecurityGroupId": {
                    "description": "Identifier of the remote access EC2 Security Group.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "scalingConfig": {
              "description": "Configuration block with scaling settings. See scaling_config below for details.",
              "properties": {
                "desiredSize": {
                  "description": "Desired number of worker nodes.",
                  "type": "number"
                },
                "maxSize": {
                  "description": "Maximum number of worker nodes.",
                  "type": "number"
                },
                "minSize": {
                  "description": "Minimum number of worker nodes.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "status": {
              "description": "Status of the EKS Node Group.",
              "type": "string"
            },
            "subnetIds": {
              "description": "Identifiers of EC2 Subnets to associate with the EKS Node Group. Amazon EKS managed node groups can be launched in both public and private subnets. If you plan to deploy load balancers to a subnet, the private subnet must have tag kubernetes.io/role/internal-elb, the public subnet must have tag kubernetes.io/role/elb.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "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"
            },
            "taint": {
              "description": "The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. See taint below for details.",
              "items": {
                "properties": {
                  "effect": {
                    "description": "The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.",
                    "type": "string"
                  },
                  "key": {
                    "description": "The key of the taint. Maximum length of 63.",
                    "type": "string"
                  },
                  "value": {
                    "description": "The value of the taint. Maximum length of 63.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "updateConfig": {
              "description": "Configuration block with update settings. See update_config below for details.",
              "properties": {
                "maxUnavailable": {
                  "description": "Desired max number of unavailable worker nodes during node group update.",
                  "type": "number"
                },
                "maxUnavailablePercentage": {
                  "description": "Desired max percentage of unavailable worker nodes during node group update.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "version": {
              "description": "Kubernetes version. Defaults to EKS Cluster Kubernetes version.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "Conditions of the resource.",
          "items": {
            "description": "A Condition that may apply to a resource.",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time this condition transitioned from one\nstatus to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A Message containing details about this condition's last transition from\none status to another, if any.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "A Reason for this condition's last transition from one status to another.",
                "type": "string"
              },
              "status": {
                "description": "Status of this condition; is it currently True, False, or Unknown?",
                "type": "string"
              },
              "type": {
                "description": "Type of this condition. At most one of each condition type may apply to\na resource at any point in time.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "type"
          ],
          "x-kubernetes-list-type": "map"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the latest metadata.generation\nwhich resulted in either a ready state, or stalled due to error\nit can not recover from without human intervention.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
