{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-ecs-cluster.json",
  "title": "AWSECSClusterProperties",
  "description": "Create an Elastic Container Service (ECS) cluster.. Source:- No source definition found, add manually please",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-ecs-cluster.json",
    "sourceSha256": "701e1e044f104d97883c27f7acfb66ff88785dbfbb54592d362ae576a5630461"
  },
  "type": "object",
  "properties": {
    "Tags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Tag"
      }
    },
    "ClusterName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name."
    },
    "ClusterSettings": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ClusterSettings"
      }
    },
    "Configuration": {
      "$ref": "#/$defs/ClusterConfiguration"
    },
    "CapacityProviders": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "DefaultCapacityProviderStrategy": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CapacityProviderStrategyItem"
      }
    },
    "ServiceConnectDefaults": {
      "$ref": "#/$defs/ServiceConnectDefaults"
    }
  },
  "typeName": "AWS::ECS::Cluster",
  "$defs": {
    "Tag": {
      "description": "The metadata that you apply to the cluster to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.",
      "type": "object",
      "properties": {
        "Key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSECSClusterTagDefinition",
      "additionalProperties": false
    },
    "ClusterSettings": {
      "description": "The setting to use when creating a cluster. This parameter is used to enable CloudWatch Container Insights for a cluster. If this value is specified, it will override the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.",
      "type": "object",
      "properties": {
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSECSClusterClusterSettingsDefinition",
      "additionalProperties": false
    },
    "ClusterConfiguration": {
      "description": "The configurations to be set at cluster level.",
      "type": "object",
      "properties": {
        "ExecuteCommandConfiguration": {
          "$ref": "#/$defs/ExecuteCommandConfiguration"
        }
      },
      "title": "AWSECSClusterClusterConfigurationDefinition",
      "additionalProperties": false
    },
    "ExecuteCommandConfiguration": {
      "description": "The configuration for ExecuteCommand.",
      "type": "object",
      "properties": {
        "KmsKeyId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Logging": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "LogConfiguration": {
          "$ref": "#/$defs/ExecuteCommandLogConfiguration"
        }
      },
      "title": "AWSECSClusterExecuteCommandConfigurationDefinition",
      "additionalProperties": false
    },
    "ExecuteCommandLogConfiguration": {
      "description": "The session logging configuration for ExecuteCommand.",
      "type": "object",
      "properties": {
        "CloudWatchLogGroupName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CloudWatchEncryptionEnabled": {
          "type": "boolean"
        },
        "S3BucketName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "S3EncryptionEnabled": {
          "type": "boolean"
        },
        "S3KeyPrefix": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSECSClusterExecuteCommandLogConfigurationDefinition",
      "additionalProperties": false
    },
    "ServiceConnectDefaults": {
      "description": "Service Connect Configuration default for all services or tasks within this cluster",
      "type": "object",
      "properties": {
        "Namespace": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Service Connect Namespace Name or ARN default for all services or tasks within this cluster"
        }
      },
      "title": "AWSECSClusterServiceConnectDefaultsDefinition",
      "additionalProperties": false
    },
    "CapacityProviderStrategyItem": {
      "description": "A capacity provider strategy consists of one or more capacity providers along with the `base` and `weight` to assign to them. A capacity provider must be associated with the cluster to be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster. Only capacity providers with an `ACTIVE` or `UPDATING` status can be used.",
      "type": "object",
      "properties": {
        "CapacityProvider": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Weight": {
          "type": "integer"
        },
        "Base": {
          "type": "integer"
        }
      },
      "title": "AWSECSClusterCapacityProviderStrategyItemDefinition",
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "writeOnlyProperties": [
    "/properties/ServiceConnectDefaults"
  ],
  "primaryIdentifier": [
    "/properties/ClusterName"
  ],
  "readOnlyProperties": [
    "/properties/Arn"
  ],
  "createOnlyProperties": [
    "/properties/ClusterName"
  ]
}
