{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-codedeploy-deploymentconfig.json",
  "title": "AWSCodeDeployDeploymentConfigProperties",
  "description": "Resource Type definition for AWS::CodeDeploy::DeploymentConfig. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codedeploy>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-codedeploy-deploymentconfig.json",
    "sourceSha256": "7acbf99d2f68ce3e54851709c1b11d9fa36bc4777e70954890edb94ab93bb420"
  },
  "type": "object",
  "properties": {
    "ComputePlatform": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The destination platform type for the deployment (Lambda, Server, or ECS)."
    },
    "DeploymentConfigName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "A name for the deployment configuration. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the deployment configuration name. For more information, see Name Type."
    },
    "MinimumHealthyHosts": {
      "description": "The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.",
      "$ref": "#/$defs/MinimumHealthyHosts"
    },
    "TrafficRoutingConfig": {
      "description": "The configuration that specifies how the deployment traffic is routed.",
      "$ref": "#/$defs/TrafficRoutingConfig"
    }
  },
  "typeName": "AWS::CodeDeploy::DeploymentConfig",
  "tagging": {
    "taggable": false,
    "tagOnCreate": false,
    "tagUpdatable": false,
    "cloudFormationSystemTags": false
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codedeploy",
  "additionalProperties": false,
  "primaryIdentifier": [
    "/properties/DeploymentConfigName"
  ],
  "$defs": {
    "TimeBasedLinear": {
      "type": "object",
      "title": "AWSCodeDeployDeploymentConfigTimeBasedLinearDefinition",
      "properties": {
        "LinearInterval": {
          "type": "integer"
        },
        "LinearPercentage": {
          "type": "integer"
        }
      },
      "required": [
        "LinearInterval",
        "LinearPercentage"
      ],
      "additionalProperties": false
    },
    "TimeBasedCanary": {
      "type": "object",
      "title": "AWSCodeDeployDeploymentConfigTimeBasedCanaryDefinition",
      "properties": {
        "CanaryPercentage": {
          "type": "integer"
        },
        "CanaryInterval": {
          "type": "integer"
        }
      },
      "required": [
        "CanaryPercentage",
        "CanaryInterval"
      ],
      "additionalProperties": false
    },
    "TrafficRoutingConfig": {
      "type": "object",
      "title": "AWSCodeDeployDeploymentConfigTrafficRoutingConfigDefinition",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "TimeBasedLinear": {
          "$ref": "#/$defs/TimeBasedLinear"
        },
        "TimeBasedCanary": {
          "$ref": "#/$defs/TimeBasedCanary"
        }
      },
      "required": [
        "Type"
      ],
      "additionalProperties": false
    },
    "MinimumHealthyHosts": {
      "type": "object",
      "title": "AWSCodeDeployDeploymentConfigMinimumHealthyHostsDefinition",
      "properties": {
        "Value": {
          "type": "integer"
        },
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Type",
        "Value"
      ],
      "additionalProperties": false
    }
  },
  "createOnlyProperties": [
    "/properties/DeploymentConfigName",
    "/properties/MinimumHealthyHosts",
    "/properties/ComputePlatform",
    "/properties/TrafficRoutingConfig"
  ]
}
