{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-ecs-service.json",
  "title": "AWSECSServiceProperties",
  "description": "Resource Type definition for AWS::ECS::Service. 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-service.json",
    "sourceSha256": "0d2aa5f86ad7e7751a0dc37e5c7972faef26b870fe70353ee2c3fe8ac92436d5"
  },
  "type": "object",
  "properties": {
    "CapacityProviderStrategy": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CapacityProviderStrategyItem"
      }
    },
    "Cluster": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "DeploymentConfiguration": {
      "$ref": "#/$defs/DeploymentConfiguration"
    },
    "DeploymentController": {
      "$ref": "#/$defs/DeploymentController"
    },
    "DesiredCount": {
      "type": "integer"
    },
    "EnableECSManagedTags": {
      "type": "boolean"
    },
    "EnableExecuteCommand": {
      "type": "boolean"
    },
    "HealthCheckGracePeriodSeconds": {
      "type": "integer"
    },
    "LaunchType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "EC2",
            "FARGATE",
            "EXTERNAL"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "LoadBalancers": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/LoadBalancer"
      }
    },
    "NetworkConfiguration": {
      "$ref": "#/$defs/NetworkConfiguration"
    },
    "PlacementConstraints": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/PlacementConstraint"
      }
    },
    "PlacementStrategies": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/PlacementStrategy"
      }
    },
    "PlatformVersion": {
      "oneOf": [
        {
          "type": "string",
          "default": "LATEST"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "PropagateTags": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "SERVICE",
            "TASK_DEFINITION"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Role": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SchedulingStrategy": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "DAEMON",
            "REPLICA"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "ServiceConnectConfiguration": {
      "$ref": "#/$defs/ServiceConnectConfiguration"
    },
    "ServiceName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "ServiceRegistries": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ServiceRegistry"
      }
    },
    "Tags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Tag"
      }
    },
    "TaskDefinition": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    }
  },
  "typeName": "AWS::ECS::Service",
  "$defs": {
    "AwsVpcConfiguration": {
      "type": "object",
      "properties": {
        "AssignPublicIp": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "DISABLED",
                "ENABLED"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "SecurityGroups": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "Subnets": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "title": "AWSECSServiceAwsVpcConfigurationDefinition",
      "additionalProperties": false
    },
    "CapacityProviderStrategyItem": {
      "type": "object",
      "properties": {
        "Base": {
          "type": "integer"
        },
        "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"
        }
      },
      "title": "AWSECSServiceCapacityProviderStrategyItemDefinition",
      "additionalProperties": false
    },
    "DeploymentAlarms": {
      "type": "object",
      "properties": {
        "AlarmNames": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "Rollback": {
          "type": "boolean"
        },
        "Enable": {
          "type": "boolean"
        }
      },
      "required": [
        "AlarmNames",
        "Rollback",
        "Enable"
      ],
      "title": "AWSECSServiceDeploymentAlarmsDefinition",
      "additionalProperties": false
    },
    "DeploymentCircuitBreaker": {
      "type": "object",
      "properties": {
        "Enable": {
          "type": "boolean"
        },
        "Rollback": {
          "type": "boolean"
        }
      },
      "required": [
        "Enable",
        "Rollback"
      ],
      "title": "AWSECSServiceDeploymentCircuitBreakerDefinition",
      "additionalProperties": false
    },
    "DeploymentConfiguration": {
      "type": "object",
      "properties": {
        "DeploymentCircuitBreaker": {
          "$ref": "#/$defs/DeploymentCircuitBreaker"
        },
        "MaximumPercent": {
          "type": "integer"
        },
        "MinimumHealthyPercent": {
          "type": "integer"
        },
        "Alarms": {
          "$ref": "#/$defs/DeploymentAlarms"
        }
      },
      "title": "AWSECSServiceDeploymentConfigurationDefinition",
      "additionalProperties": false
    },
    "DeploymentController": {
      "type": "object",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "CODE_DEPLOY",
                "ECS",
                "EXTERNAL"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSECSServiceDeploymentControllerDefinition",
      "additionalProperties": false
    },
    "LoadBalancer": {
      "type": "object",
      "properties": {
        "ContainerName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ContainerPort": {
          "type": "integer"
        },
        "LoadBalancerName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "TargetGroupArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSECSServiceLoadBalancerDefinition",
      "additionalProperties": false
    },
    "LogConfiguration": {
      "type": "object",
      "properties": {
        "LogDriver": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Options": {
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            ".{1,}": {
              "type": "string"
            }
          }
        },
        "SecretOptions": {
          "type": "array",
          "insertionOrder": false,
          "items": {
            "$ref": "#/$defs/Secret"
          }
        }
      },
      "title": "AWSECSServiceLogConfigurationDefinition",
      "additionalProperties": false
    },
    "NetworkConfiguration": {
      "type": "object",
      "properties": {
        "AwsvpcConfiguration": {
          "$ref": "#/$defs/AwsVpcConfiguration"
        }
      },
      "title": "AWSECSServiceNetworkConfigurationDefinition",
      "additionalProperties": false
    },
    "PlacementConstraint": {
      "type": "object",
      "properties": {
        "Expression": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Type": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "distinctInstance",
                "memberOf"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Type"
      ],
      "title": "AWSECSServicePlacementConstraintDefinition",
      "additionalProperties": false
    },
    "PlacementStrategy": {
      "type": "object",
      "properties": {
        "Field": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Type": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "binpack",
                "random",
                "spread"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Type"
      ],
      "title": "AWSECSServicePlacementStrategyDefinition",
      "additionalProperties": false
    },
    "Secret": {
      "type": "object",
      "required": [
        "Name",
        "ValueFrom"
      ],
      "properties": {
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ValueFrom": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSECSServiceSecretDefinition",
      "additionalProperties": false
    },
    "ServiceConnectClientAlias": {
      "type": "object",
      "properties": {
        "Port": {
          "type": "integer"
        },
        "DnsName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Port"
      ],
      "title": "AWSECSServiceServiceConnectClientAliasDefinition",
      "additionalProperties": false
    },
    "ServiceConnectConfiguration": {
      "type": "object",
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "Namespace": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Services": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ServiceConnectService"
          }
        },
        "LogConfiguration": {
          "$ref": "#/$defs/LogConfiguration"
        }
      },
      "required": [
        "Enabled"
      ],
      "title": "AWSECSServiceServiceConnectConfigurationDefinition",
      "additionalProperties": false
    },
    "ServiceConnectService": {
      "type": "object",
      "properties": {
        "PortName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DiscoveryName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ClientAliases": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ServiceConnectClientAlias"
          }
        },
        "IngressPortOverride": {
          "type": "integer"
        }
      },
      "required": [
        "PortName"
      ],
      "title": "AWSECSServiceServiceConnectServiceDefinition",
      "additionalProperties": false
    },
    "ServiceRegistry": {
      "type": "object",
      "properties": {
        "ContainerName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ContainerPort": {
          "type": "integer"
        },
        "Port": {
          "type": "integer"
        },
        "RegistryArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSECSServiceServiceRegistryDefinition",
      "additionalProperties": false
    },
    "Tag": {
      "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": "AWSECSServiceTagDefinition",
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "writeOnlyProperties": [
    "/properties/ServiceConnectConfiguration"
  ],
  "primaryIdentifier": [
    "/properties/ServiceArn",
    "/properties/Cluster"
  ],
  "readOnlyProperties": [
    "/properties/ServiceArn",
    "/properties/Name"
  ],
  "createOnlyProperties": [
    "/properties/Cluster",
    "/properties/DeploymentController",
    "/properties/LaunchType",
    "/properties/Role",
    "/properties/SchedulingStrategy",
    "/properties/ServiceName"
  ]
}
