{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-ecs/json-schema/amazon-ecs-update-cluster-request-schema.json",
  "title": "UpdateClusterRequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-ecs-clusters-api-openapi.yml#/components/schemas/UpdateClusterRequest",
  "type": "object",
  "properties": {
    "cluster": {
      "type": "string",
      "description": "The name of the cluster to modify the settings for."
    },
    "settings": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ClusterSetting"
      },
      "description": "The cluster settings for your cluster."
    },
    "configuration": {
      "$ref": "#/$defs/ClusterConfiguration"
    },
    "serviceConnectDefaults": {
      "$ref": "#/$defs/ClusterServiceConnectDefaultsRequest"
    }
  },
  "required": [
    "cluster"
  ],
  "$defs": {
    "ClusterConfiguration": {
      "type": "object",
      "properties": {
        "executeCommandConfiguration": {
          "$ref": "#/$defs/ExecuteCommandConfiguration"
        },
        "managedStorageConfiguration": {
          "$ref": "#/$defs/ManagedStorageConfiguration"
        }
      }
    },
    "ClusterServiceConnectDefaultsRequest": {
      "type": "object",
      "properties": {
        "namespace": {
          "type": "string",
          "description": "The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include greater than (&gt;), less than (&lt;), double quotation marks (\"), or slash (/). If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this Amazon Web Services Region. If you enter a new name, a Cloud Map namespace will be"
        }
      },
      "required": [
        "namespace"
      ]
    },
    "ClusterSetting": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "enum": [
            "containerInsights"
          ],
          "description": "The name of the cluster setting. The value is containerInsights."
        },
        "value": {
          "type": "string",
          "description": "The value to set for the cluster setting. The supported values are enhanced, enabled, and disabled. To use Container Insights with enhanced observability, set the containerInsights account setting to enhanced. To use Container Insights, set the containerInsights account setting to enabled. If a cluster value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault."
        }
      }
    },
    "ExecuteCommandConfiguration": {
      "type": "object",
      "properties": {
        "kmsKeyId": {
          "type": "string",
          "description": "Specify an Key Management Service key ID to encrypt the data between the local client and the container."
        },
        "logging": {
          "type": "string",
          "enum": [
            "NONE",
            "DEFAULT",
            "OVERRIDE"
          ],
          "description": "The log setting to use for redirecting logs for your execute command results. The following log settings are available. NONE: The execute command session is not logged. DEFAULT: The awslogs configuration in the task definition is used. If no logging parameter is specified, it defaults to this value. If no awslogs log driver is configured in the task definition, the output won't be logged. OVERRIDE: Specify the logging details as a part of logConfiguration. If the OVERRIDE logging option is specified, the logConfiguration is required."
        },
        "logConfiguration": {
          "$ref": "#/$defs/ExecuteCommandLogConfiguration"
        }
      }
    },
    "ExecuteCommandLogConfiguration": {
      "type": "object",
      "properties": {
        "cloudWatchLogGroupName": {
          "type": "string",
          "description": "The name of the CloudWatch log group to send logs to. The CloudWatch log group must already be created."
        },
        "cloudWatchEncryptionEnabled": {
          "type": "boolean",
          "description": "Determines whether to use encryption on the CloudWatch logs. If not specified, encryption will be off."
        },
        "s3BucketName": {
          "type": "string",
          "description": "The name of the S3 bucket to send logs to. The S3 bucket must already be created."
        },
        "s3EncryptionEnabled": {
          "type": "boolean",
          "description": "Determines whether to use encryption on the S3 logs. If not specified, encryption is not used."
        },
        "s3KeyPrefix": {
          "type": "string",
          "description": "An optional folder in the S3 bucket to place logs in."
        }
      }
    },
    "ManagedStorageConfiguration": {
      "type": "object",
      "properties": {
        "kmsKeyId": {
          "type": "string",
          "description": "Specify a Key Management Service key ID to encrypt Amazon ECS managed storage. When you specify a kmsKeyId, Amazon ECS uses the key to encrypt data volumes managed by Amazon ECS that are attached to tasks in the cluster. The following data volumes are managed by Amazon ECS: Amazon EBS. For more information about encryption of Amazon EBS volumes attached to Amazon ECS tasks, see Encrypt data stored in Amazon EBS volumes for Amazon ECS in the Amazon Elastic Container Service Developer Guide. The key must be a single Region key."
        },
        "fargateEphemeralStorageKmsKeyId": {
          "type": "string",
          "description": "Specify the Key Management Service key ID for Fargate ephemeral storage. When you specify a fargateEphemeralStorageKmsKeyId, Amazon Web Services Fargate uses the key to encrypt data at rest in ephemeral storage. For more information about Fargate ephemeral storage encryption, see Customer managed keys for Amazon Web Services Fargate ephemeral storage for Amazon ECS in the Amazon Elastic Container Service Developer Guide. The key must be a single Region key."
        }
      }
    }
  }
}