{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/latest.json",
  "description": "AWS Copilot manifest schema with comprehensive validation for all manifest types\n<https://aws.github.io/copilot-cli/docs/manifest/overview/>",
  "x-lintel": {
    "source": "https://sootyowl.github.io/aws-copilot-schemas/copilot-schema.json",
    "sourceSha256": "17aca6ef8668807462eb947d8c8ad95b8840f990d5c975f86328ec793b95f349",
    "fileMatch": [
      "**/copilot/**/manifest.yml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "required": [
    "name"
  ],
  "oneOf": [
    {
      "description": "Backend Service manifest\n<https://aws.github.io/copilot-cli/docs/manifest/backend-service/>",
      "allOf": [
        {
          "properties": {
            "type": {
              "const": "Backend Service"
            }
          }
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--backend-service.json"
        }
      ]
    },
    {
      "description": "Load Balanced Web Service manifest\n<https://aws.github.io/copilot-cli/docs/manifest/lb-web-service/>",
      "allOf": [
        {
          "properties": {
            "type": {
              "const": "Load Balanced Web Service"
            }
          }
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--lb-web-service.json"
        }
      ]
    },
    {
      "description": "Request-Driven Web Service manifest\n<https://aws.github.io/copilot-cli/docs/manifest/rd-web-service/>",
      "allOf": [
        {
          "properties": {
            "type": {
              "const": "Request-Driven Web Service"
            }
          }
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--rd-web-service.json"
        }
      ]
    },
    {
      "description": "Scheduled Job manifest\n<https://aws.github.io/copilot-cli/docs/manifest/scheduled-job/>",
      "allOf": [
        {
          "properties": {
            "type": {
              "const": "Scheduled Job"
            }
          }
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--scheduled-job.json"
        }
      ]
    },
    {
      "description": "Static Site manifest\n<https://aws.github.io/copilot-cli/docs/manifest/static-site/>",
      "allOf": [
        {
          "properties": {
            "type": {
              "const": "Static Site"
            }
          }
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--static-site.json"
        }
      ]
    },
    {
      "description": "Worker Service manifest\n<https://aws.github.io/copilot-cli/docs/manifest/worker-service/>",
      "allOf": [
        {
          "properties": {
            "type": {
              "const": "Worker Service"
            }
          }
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--worker-service.json"
        }
      ]
    },
    {
      "description": "Environment manifest\n<https://aws.github.io/copilot-cli/docs/manifest/environment/>",
      "allOf": [
        {
          "properties": {
            "type": {
              "const": "Environment"
            }
          }
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--environment.json"
        }
      ]
    },
    {
      "description": "Pipeline manifest (detected by structure)\n<https://aws.github.io/copilot-cli/docs/manifest/pipeline/>",
      "allOf": [
        {
          "properties": {
            "source": {
              "type": "object"
            },
            "stages": {
              "type": "array"
            }
          },
          "required": [
            "source",
            "stages"
          ],
          "not": {
            "required": [
              "type"
            ]
          },
          "type": "object"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--pipeline.json"
        }
      ]
    }
  ]
}
