{
  "tagging" : {
    "permissions" : [ "appconfig:TagResource", "appconfig:UntagResource", "appconfig:ListTagsForResource" ],
    "taggable" : true,
    "tagOnCreate" : true,
    "tagUpdatable" : false,
    "tagProperty" : "/properties/Tags",
    "cloudFormationSystemTags" : true
  },
  "typeName" : "AWS::AppConfig::Deployment",
  "readOnlyProperties" : [ "/properties/DeploymentNumber", "/properties/State" ],
  "description" : "Resource Type definition for AWS::AppConfig::Deployment",
  "createOnlyProperties" : [ "/properties/ApplicationId", "/properties/ConfigurationProfileId", "/properties/DeploymentStrategyId", "/properties/EnvironmentId", "/properties/Description", "/properties/ConfigurationVersion", "/properties/KmsKeyIdentifier", "/properties/DynamicExtensionParameters", "/properties/Tags" ],
  "primaryIdentifier" : [ "/properties/ApplicationId", "/properties/EnvironmentId", "/properties/DeploymentNumber" ],
  "required" : [ "ApplicationId", "ConfigurationProfileId", "DeploymentStrategyId", "EnvironmentId", "ConfigurationVersion" ],
  "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
  "handlers" : {
    "read" : {
      "permissions" : [ "appconfig:GetDeployment", "appconfig:ListTagsForResource" ]
    },
    "create" : {
      "permissions" : [ "appconfig:StartDeployment", "appconfig:GetDeployment", "appconfig:TagResource", "appconfig:ListTagsForResource", "kms:GenerateDataKey" ],
      "timeoutInMinutes" : 1445
    },
    "list" : {
      "permissions" : [ "appconfig:ListDeployments" ],
      "handlerSchema" : {
        "properties" : {
          "EnvironmentId" : {
            "$ref" : "resource-schema.json#/properties/EnvironmentId"
          },
          "ApplicationId" : {
            "$ref" : "resource-schema.json#/properties/ApplicationId"
          }
        },
        "required" : [ "ApplicationId", "EnvironmentId" ]
      }
    },
    "delete" : {
      "permissions" : [ "appconfig:StopDeployment" ]
    }
  },
  "writeOnlyProperties" : [ "/properties/DynamicExtensionParameters" ],
  "additionalProperties" : false,
  "definitions" : {
    "Tag" : {
      "description" : "Metadata to assign to the deployment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.",
      "additionalProperties" : false,
      "type" : "object",
      "properties" : {
        "Value" : {
          "description" : "The tag value can be up to 256 characters.",
          "type" : "string"
        },
        "Key" : {
          "description" : "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.",
          "type" : "string"
        }
      }
    },
    "DynamicExtensionParameters" : {
      "additionalProperties" : false,
      "type" : "object",
      "properties" : {
        "ParameterValue" : {
          "type" : "string"
        },
        "ExtensionReference" : {
          "type" : "string"
        },
        "ParameterName" : {
          "type" : "string"
        }
      }
    }
  },
  "properties" : {
    "DeploymentStrategyId" : {
      "description" : "The deployment strategy ID.",
      "type" : "string"
    },
    "ConfigurationProfileId" : {
      "description" : "The configuration profile ID.",
      "type" : "string"
    },
    "EnvironmentId" : {
      "description" : "The environment ID.",
      "type" : "string"
    },
    "KmsKeyIdentifier" : {
      "description" : "The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated.",
      "type" : "string"
    },
    "Description" : {
      "description" : "A description of the deployment.",
      "type" : "string"
    },
    "ConfigurationVersion" : {
      "description" : "The configuration version to deploy. If deploying an AWS AppConfig hosted configuration version, you can specify either the version number or version label. For all other configurations, you must specify the version number.",
      "type" : "string"
    },
    "State" : {
      "description" : "The state of the deployment.",
      "type" : "string",
      "enum" : [ "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK", "REVERTED" ]
    },
    "DeploymentNumber" : {
      "description" : "The sequence number of the deployment.",
      "type" : "string"
    },
    "ApplicationId" : {
      "description" : "The application ID.",
      "type" : "string"
    },
    "DynamicExtensionParameters" : {
      "uniqueItems" : false,
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/DynamicExtensionParameters"
      }
    },
    "Tags" : {
      "uniqueItems" : true,
      "description" : "An array of key-value pairs to apply to this resource.",
      "insertionOrder" : false,
      "type" : "array",
      "items" : {
        "$ref" : "#/definitions/Tag"
      }
    }
  }
}