{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2014-10-06",
    "endpointPrefix":"codedeploy",
    "jsonVersion":"1.1",
    "serviceAbbreviation":"CodeDeploy",
    "serviceFullName":"AWS CodeDeploy",
    "signatureVersion":"v4",
    "targetPrefix":"CodeDeploy_20141006",
    "timestampFormat":"unixTimestamp",
    "protocol":"json"
  },
  "documentation":"<fullname>AWS CodeDeploy</fullname> <b>Overview</b> <p>This is the AWS CodeDeploy API Reference. This guide provides descriptions of the AWS CodeDeploy APIs. For additional information, see the <a href=\"http://docs.aws.amazon.com/codedeploy/latest/userguide\">AWS CodeDeploy User Guide</a>.</p> <b>Using the APIs</b> <p>You can use the AWS CodeDeploy APIs to work with the following items:</p> <ul> <li> <p>Applications are unique identifiers that AWS CodeDeploy uses to ensure that the correct combinations of revisions, deployment configurations, and deployment groups are being referenced during deployments.</p> <p>You can use the AWS CodeDeploy APIs to create, delete, get, list, and update applications.</p> </li> <li> <p>Deployment configurations are sets of deployment rules and deployment success and failure conditions that AWS CodeDeploy uses during deployments.</p> <p>You can use the AWS CodeDeploy APIs to create, delete, get, and list deployment configurations.</p> </li> <li> <p>Deployment groups are groups of instances to which application revisions can be deployed.</p> <p>You can use the AWS CodeDeploy APIs to create, delete, get, list, and update deployment groups.</p> </li> <li> <p>Instances represent Amazon EC2 instances to which application revisions are deployed. Instances are identified by their Amazon EC2 tags or Auto Scaling group names. Instances belong to deployment groups.</p> <p>You can use the AWS CodeDeploy APIs to get and list instances.</p> </li> <li> <p>Deployments represent the process of deploying revisions to instances.</p> <p>You can use the AWS CodeDeploy APIs to create, get, list, and stop deployments.</p> </li> <li> <p>Application revisions are archive files that are stored in Amazon S3 buckets or GitHub repositories. These revisions contain source content (such as source code, web pages, executable files, any deployment scripts, and similar) along with an Application Specification file (AppSpec file). (The AppSpec file is unique to AWS CodeDeploy; it defines a series of deployment actions that you want AWS CodeDeploy to execute.) An application revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both (for application revisions that are stored in Amazon S3 buckets) or by its repository name and commit ID (for applications revisions that are stored in GitHub repositories). Application revisions are deployed through deployment groups.</p> <p>You can use the AWS CodeDeploy APIs to get, list, and register application revisions.</p> </li> </ul>",
  "operations":{
    "AddTagsToOnPremisesInstances":{
      "name":"AddTagsToOnPremisesInstances",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"AddTagsToOnPremisesInstancesInput",
        "documentation":"<p>Represents the input of an adds tags to on-premises instance operation.</p>"
      },
      "errors":[
        {
          "shape":"InstanceNameRequiredException",
          "exception":true,
          "documentation":"<p>An on-premises instance name was not specified.</p>"
        },
        {
          "shape":"TagRequiredException",
          "exception":true,
          "documentation":"<p>A tag was not specified.</p>"
        },
        {
          "shape":"InvalidTagException",
          "exception":true,
          "documentation":"<p>The specified tag was specified in an invalid format.</p>"
        },
        {
          "shape":"TagLimitExceededException",
          "exception":true,
          "documentation":"<p>The maximum allowed number of tags was exceeded.</p>"
        },
        {
          "shape":"InstanceLimitExceededException",
          "exception":true,
          "documentation":"<p>The maximum number of allowed on-premises instances in a single call was exceeded.</p>"
        },
        {
          "shape":"InstanceNotRegisteredException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance is not registered.</p>"
        }
      ],
      "documentation":"<p>Adds tags to on-premises instances.</p>"
    },
    "BatchGetApplications":{
      "name":"BatchGetApplications",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"BatchGetApplicationsInput",
        "documentation":"<p>Represents the input of a batch get applications operation.</p>"
      },
      "output":{
        "shape":"BatchGetApplicationsOutput",
        "documentation":"<p>Represents the output of a batch get applications operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        }
      ],
      "documentation":"<p>Gets information about one or more applications.</p>"
    },
    "BatchGetDeployments":{
      "name":"BatchGetDeployments",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"BatchGetDeploymentsInput",
        "documentation":"<p>Represents the input of a batch get deployments operation.</p>"
      },
      "output":{
        "shape":"BatchGetDeploymentsOutput",
        "documentation":"<p>Represents the output of a batch get deployments operation.</p>"
      },
      "errors":[
        {
          "shape":"DeploymentIdRequiredException",
          "exception":true,
          "documentation":"<p>At least one deployment ID must be specified.</p>"
        },
        {
          "shape":"InvalidDeploymentIdException",
          "exception":true,
          "documentation":"<p>At least one of the deployment IDs was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Gets information about one or more deployments.</p>"
    },
    "BatchGetOnPremisesInstances":{
      "name":"BatchGetOnPremisesInstances",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"BatchGetOnPremisesInstancesInput",
        "documentation":"<p>Represents the input of a batch get on-premises instances operation.</p>"
      },
      "output":{
        "shape":"BatchGetOnPremisesInstancesOutput",
        "documentation":"<p>Represents the output of a batch get on-premises instances operation.</p>"
      },
      "errors":[
        {
          "shape":"InstanceNameRequiredException",
          "exception":true,
          "documentation":"<p>An on-premises instance name was not specified.</p>"
        },
        {
          "shape":"InvalidInstanceNameException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance name was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Gets information about one or more on-premises instances.</p>"
    },
    "CreateApplication":{
      "name":"CreateApplication",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"CreateApplicationInput",
        "documentation":"<p>Represents the input of a create application operation.</p>"
      },
      "output":{
        "shape":"CreateApplicationOutput",
        "documentation":"<p>Represents the output of a create application operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationAlreadyExistsException",
          "exception":true,
          "documentation":"<p>An application with the specified name already exists with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"ApplicationLimitExceededException",
          "exception":true,
          "documentation":"<p>More applications were attempted to be created than were allowed.</p>"
        }
      ],
      "documentation":"<p>Creates a new application.</p>"
    },
    "CreateDeployment":{
      "name":"CreateDeployment",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"CreateDeploymentInput",
        "documentation":"<p>Represents the input of a create deployment operation.</p>"
      },
      "output":{
        "shape":"CreateDeploymentOutput",
        "documentation":"<p>Represents the output of a create deployment operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DeploymentGroupNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment group name was not specified.</p>"
        },
        {
          "shape":"InvalidDeploymentGroupNameException",
          "exception":true,
          "documentation":"<p>The deployment group name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentGroupDoesNotExistException",
          "exception":true,
          "documentation":"<p>The named deployment group does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"RevisionRequiredException",
          "exception":true,
          "documentation":"<p>The revision ID was not specified.</p>"
        },
        {
          "shape":"InvalidRevisionException",
          "exception":true,
          "documentation":"<p>The revision was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidDeploymentConfigNameException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentConfigDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment configuration does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DescriptionTooLongException",
          "exception":true,
          "documentation":"<p>The description that was provided is too long.</p>"
        },
        {
          "shape":"DeploymentLimitExceededException",
          "exception":true,
          "documentation":"<p>The number of allowed deployments was exceeded.</p>"
        }
      ],
      "documentation":"<p>Deploys an application revision through the specified deployment group.</p>"
    },
    "CreateDeploymentConfig":{
      "name":"CreateDeploymentConfig",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"CreateDeploymentConfigInput",
        "documentation":"<p>Represents the input of a create deployment configuration operation.</p>"
      },
      "output":{
        "shape":"CreateDeploymentConfigOutput",
        "documentation":"<p>Represents the output of a create deployment configuration operation.</p>"
      },
      "errors":[
        {
          "shape":"InvalidDeploymentConfigNameException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentConfigNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was not specified.</p>"
        },
        {
          "shape":"DeploymentConfigAlreadyExistsException",
          "exception":true,
          "documentation":"<p>A deployment configuration with the specified name already exists with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InvalidMinimumHealthyHostValueException",
          "exception":true,
          "documentation":"<p>The minimum healthy instances value was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentConfigLimitExceededException",
          "exception":true,
          "documentation":"<p>The deployment configurations limit was exceeded.</p>"
        }
      ],
      "documentation":"<p>Creates a new deployment configuration.</p>"
    },
    "CreateDeploymentGroup":{
      "name":"CreateDeploymentGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"CreateDeploymentGroupInput",
        "documentation":"<p>Represents the input of a create deployment group operation.</p>"
      },
      "output":{
        "shape":"CreateDeploymentGroupOutput",
        "documentation":"<p>Represents the output of a create deployment group operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DeploymentGroupNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment group name was not specified.</p>"
        },
        {
          "shape":"InvalidDeploymentGroupNameException",
          "exception":true,
          "documentation":"<p>The deployment group name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentGroupAlreadyExistsException",
          "exception":true,
          "documentation":"<p>A deployment group with the specified name already exists with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InvalidEC2TagException",
          "exception":true,
          "documentation":"<p>The tag was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidTagException",
          "exception":true,
          "documentation":"<p>The specified tag was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidAutoScalingGroupException",
          "exception":true,
          "documentation":"<p>The Auto Scaling group was specified in an invalid format or does not exist.</p>"
        },
        {
          "shape":"InvalidDeploymentConfigNameException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentConfigDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment configuration does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"RoleRequiredException",
          "exception":true,
          "documentation":"<p>The role ID was not specified.</p>"
        },
        {
          "shape":"InvalidRoleException",
          "exception":true,
          "documentation":"<p>The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.</p>"
        },
        {
          "shape":"DeploymentGroupLimitExceededException",
          "exception":true,
          "documentation":"<p> The deployment groups limit was exceeded.</p>"
        }
      ],
      "documentation":"<p>Creates a new deployment group for application revisions to be deployed to.</p>"
    },
    "DeleteApplication":{
      "name":"DeleteApplication",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DeleteApplicationInput",
        "documentation":"<p>Represents the input of a delete application operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Deletes an application.</p>"
    },
    "DeleteDeploymentConfig":{
      "name":"DeleteDeploymentConfig",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DeleteDeploymentConfigInput",
        "documentation":"<p>Represents the input of a delete deployment configuration operation.</p>"
      },
      "errors":[
        {
          "shape":"InvalidDeploymentConfigNameException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentConfigNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was not specified.</p>"
        },
        {
          "shape":"DeploymentConfigInUseException",
          "exception":true,
          "documentation":"<p>The deployment configuration is still in use.</p>"
        },
        {
          "shape":"InvalidOperationException",
          "exception":true,
          "documentation":"<p>An invalid operation was detected.</p>"
        }
      ],
      "documentation":"<p>Deletes a deployment configuration.</p> <note>A deployment configuration cannot be deleted if it is currently in use. Also, predefined configurations cannot be deleted.</note>"
    },
    "DeleteDeploymentGroup":{
      "name":"DeleteDeploymentGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DeleteDeploymentGroupInput",
        "documentation":"<p>Represents the input of a delete deployment group operation.</p>"
      },
      "output":{
        "shape":"DeleteDeploymentGroupOutput",
        "documentation":"<p>Represents the output of a delete deployment group operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentGroupNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment group name was not specified.</p>"
        },
        {
          "shape":"InvalidDeploymentGroupNameException",
          "exception":true,
          "documentation":"<p>The deployment group name was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidRoleException",
          "exception":true,
          "documentation":"<p>The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.</p>"
        }
      ],
      "documentation":"<p>Deletes a deployment group.</p>"
    },
    "DeregisterOnPremisesInstance":{
      "name":"DeregisterOnPremisesInstance",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DeregisterOnPremisesInstanceInput",
        "documentation":"<p>Represents the input of a deregister on-premises instance operation.</p>"
      },
      "errors":[
        {
          "shape":"InstanceNameRequiredException",
          "exception":true,
          "documentation":"<p>An on-premises instance name was not specified.</p>"
        },
        {
          "shape":"InvalidInstanceNameException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance name was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Deregisters an on-premises instance.</p>"
    },
    "GetApplication":{
      "name":"GetApplication",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"GetApplicationInput",
        "documentation":"<p>Represents the input of a get application operation.</p>"
      },
      "output":{
        "shape":"GetApplicationOutput",
        "documentation":"<p>Represents the output of a get application operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        }
      ],
      "documentation":"<p>Gets information about an application.</p>"
    },
    "GetApplicationRevision":{
      "name":"GetApplicationRevision",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"GetApplicationRevisionInput",
        "documentation":"<p>Represents the input of a get application revision operation.</p>"
      },
      "output":{
        "shape":"GetApplicationRevisionOutput",
        "documentation":"<p>Represents the output of a get application revision operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"RevisionDoesNotExistException",
          "exception":true,
          "documentation":"<p>The named revision does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"RevisionRequiredException",
          "exception":true,
          "documentation":"<p>The revision ID was not specified.</p>"
        },
        {
          "shape":"InvalidRevisionException",
          "exception":true,
          "documentation":"<p>The revision was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Gets information about an application revision.</p>"
    },
    "GetDeployment":{
      "name":"GetDeployment",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"GetDeploymentInput",
        "documentation":"<p>Represents the input of a get deployment operation.</p>"
      },
      "output":{
        "shape":"GetDeploymentOutput",
        "documentation":"<p>Represents the output of a get deployment operation.</p>"
      },
      "errors":[
        {
          "shape":"DeploymentIdRequiredException",
          "exception":true,
          "documentation":"<p>At least one deployment ID must be specified.</p>"
        },
        {
          "shape":"InvalidDeploymentIdException",
          "exception":true,
          "documentation":"<p>At least one of the deployment IDs was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment does not exist with the applicable IAM user or AWS account.</p>"
        }
      ],
      "documentation":"<p>Gets information about a deployment.</p>"
    },
    "GetDeploymentConfig":{
      "name":"GetDeploymentConfig",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"GetDeploymentConfigInput",
        "documentation":"<p>Represents the input of a get deployment configuration operation.</p>"
      },
      "output":{
        "shape":"GetDeploymentConfigOutput",
        "documentation":"<p>Represents the output of a get deployment configuration operation.</p>"
      },
      "errors":[
        {
          "shape":"InvalidDeploymentConfigNameException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentConfigNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was not specified.</p>"
        },
        {
          "shape":"DeploymentConfigDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment configuration does not exist with the applicable IAM user or AWS account.</p>"
        }
      ],
      "documentation":"<p>Gets information about a deployment configuration.</p>"
    },
    "GetDeploymentGroup":{
      "name":"GetDeploymentGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"GetDeploymentGroupInput",
        "documentation":"<p>Represents the input of a get deployment group operation.</p>"
      },
      "output":{
        "shape":"GetDeploymentGroupOutput",
        "documentation":"<p>Represents the output of a get deployment group operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DeploymentGroupNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment group name was not specified.</p>"
        },
        {
          "shape":"InvalidDeploymentGroupNameException",
          "exception":true,
          "documentation":"<p>The deployment group name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentGroupDoesNotExistException",
          "exception":true,
          "documentation":"<p>The named deployment group does not exist with the applicable IAM user or AWS account.</p>"
        }
      ],
      "documentation":"<p>Gets information about a deployment group.</p>"
    },
    "GetDeploymentInstance":{
      "name":"GetDeploymentInstance",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"GetDeploymentInstanceInput",
        "documentation":"<p>Represents the input of a get deployment instance operation.</p>"
      },
      "output":{
        "shape":"GetDeploymentInstanceOutput",
        "documentation":"<p>Represents the output of a get deployment instance operation.</p>"
      },
      "errors":[
        {
          "shape":"DeploymentIdRequiredException",
          "exception":true,
          "documentation":"<p>At least one deployment ID must be specified.</p>"
        },
        {
          "shape":"DeploymentDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InstanceIdRequiredException",
          "exception":true,
          "documentation":"<p>The instance ID was not specified.</p>"
        },
        {
          "shape":"InvalidDeploymentIdException",
          "exception":true,
          "documentation":"<p>At least one of the deployment IDs was specified in an invalid format.</p>"
        },
        {
          "shape":"InstanceDoesNotExistException",
          "exception":true,
          "documentation":"<p>The specified instance does not exist in the deployment group.</p>"
        }
      ],
      "documentation":"<p>Gets information about an instance as part of a deployment.</p>"
    },
    "GetOnPremisesInstance":{
      "name":"GetOnPremisesInstance",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"GetOnPremisesInstanceInput",
        "documentation":"<p>Represents the input of a get on-premises instance operation.</p>"
      },
      "output":{
        "shape":"GetOnPremisesInstanceOutput",
        "documentation":"<p>Represents the output of a get on-premises instance operation.</p>"
      },
      "errors":[
        {
          "shape":"InstanceNameRequiredException",
          "exception":true,
          "documentation":"<p>An on-premises instance name was not specified.</p>"
        },
        {
          "shape":"InstanceNotRegisteredException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance is not registered.</p>"
        },
        {
          "shape":"InvalidInstanceNameException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance name was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Gets information about an on-premises instance.</p>"
    },
    "ListApplicationRevisions":{
      "name":"ListApplicationRevisions",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListApplicationRevisionsInput",
        "documentation":"<p>Represents the input of a list application revisions operation.</p>"
      },
      "output":{
        "shape":"ListApplicationRevisionsOutput",
        "documentation":"<p>Represents the output of a list application revisions operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidSortByException",
          "exception":true,
          "documentation":"<p>The column name to sort by is either not present or was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidSortOrderException",
          "exception":true,
          "documentation":"<p>The sort order was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidBucketNameFilterException",
          "exception":true,
          "documentation":"<p>The bucket name either doesn't exist or was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidKeyPrefixFilterException",
          "exception":true,
          "documentation":"<p>The specified key prefix filter was specified in an invalid format.</p>"
        },
        {
          "shape":"BucketNameFilterRequiredException",
          "exception":true,
          "documentation":"<p>A bucket name is required but was not provided.</p>"
        },
        {
          "shape":"InvalidDeployedStateFilterException",
          "exception":true,
          "documentation":"<p>The deployed state filter was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidNextTokenException",
          "exception":true,
          "documentation":"<p>The next token was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Lists information about revisions for an application.</p>"
    },
    "ListApplications":{
      "name":"ListApplications",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListApplicationsInput",
        "documentation":"<p>Represents the input of a list applications operation.</p>"
      },
      "output":{
        "shape":"ListApplicationsOutput",
        "documentation":"<p>Represents the output of a list applications operation.</p>"
      },
      "errors":[
        {
          "shape":"InvalidNextTokenException",
          "exception":true,
          "documentation":"<p>The next token was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Lists the applications registered with the applicable IAM user or AWS account.</p>"
    },
    "ListDeploymentConfigs":{
      "name":"ListDeploymentConfigs",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListDeploymentConfigsInput",
        "documentation":"<p>Represents the input of a list deployment configurations operation.</p>"
      },
      "output":{
        "shape":"ListDeploymentConfigsOutput",
        "documentation":"<p>Represents the output of a list deployment configurations operation.</p>"
      },
      "errors":[
        {
          "shape":"InvalidNextTokenException",
          "exception":true,
          "documentation":"<p>The next token was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Lists the deployment configurations with the applicable IAM user or AWS account.</p>"
    },
    "ListDeploymentGroups":{
      "name":"ListDeploymentGroups",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListDeploymentGroupsInput",
        "documentation":"<p>Represents the input of a list deployment groups operation.</p>"
      },
      "output":{
        "shape":"ListDeploymentGroupsOutput",
        "documentation":"<p>Represents the output of a list deployment groups operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InvalidNextTokenException",
          "exception":true,
          "documentation":"<p>The next token was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Lists the deployment groups for an application registered with the applicable IAM user or AWS account.</p>"
    },
    "ListDeploymentInstances":{
      "name":"ListDeploymentInstances",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListDeploymentInstancesInput",
        "documentation":"<p>Represents the input of a list deployment instances operation.</p>"
      },
      "output":{
        "shape":"ListDeploymentInstancesOutput",
        "documentation":"<p>Represents the output of a list deployment instances operation.</p>"
      },
      "errors":[
        {
          "shape":"DeploymentIdRequiredException",
          "exception":true,
          "documentation":"<p>At least one deployment ID must be specified.</p>"
        },
        {
          "shape":"DeploymentDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DeploymentNotStartedException",
          "exception":true,
          "documentation":"<p>The specified deployment has not started.</p>"
        },
        {
          "shape":"InvalidNextTokenException",
          "exception":true,
          "documentation":"<p>The next token was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidDeploymentIdException",
          "exception":true,
          "documentation":"<p>At least one of the deployment IDs was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidInstanceStatusException",
          "exception":true,
          "documentation":"<p>The specified instance status does not exist.</p>"
        }
      ],
      "documentation":"<p>Lists the instances for a deployment associated with the applicable IAM user or AWS account.</p>"
    },
    "ListDeployments":{
      "name":"ListDeployments",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListDeploymentsInput",
        "documentation":"<p>Represents the input of a list deployments operation.</p>"
      },
      "output":{
        "shape":"ListDeploymentsOutput",
        "documentation":"<p>Represents the output of a list deployments operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InvalidDeploymentGroupNameException",
          "exception":true,
          "documentation":"<p>The deployment group name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentGroupDoesNotExistException",
          "exception":true,
          "documentation":"<p>The named deployment group does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DeploymentGroupNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment group name was not specified.</p>"
        },
        {
          "shape":"InvalidTimeRangeException",
          "exception":true,
          "documentation":"<p>The specified time range was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidDeploymentStatusException",
          "exception":true,
          "documentation":"<p>The specified deployment status doesn't exist or cannot be determined.</p>"
        },
        {
          "shape":"InvalidNextTokenException",
          "exception":true,
          "documentation":"<p>The next token was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Lists the deployments within a deployment group for an application registered with the applicable IAM user or AWS account.</p>"
    },
    "ListOnPremisesInstances":{
      "name":"ListOnPremisesInstances",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListOnPremisesInstancesInput",
        "documentation":"<p>Represents the input of a list on-premises instances operation.</p>."
      },
      "output":{
        "shape":"ListOnPremisesInstancesOutput",
        "documentation":"<p>Represents the output of list on-premises instances operation.</p>"
      },
      "errors":[
        {
          "shape":"InvalidRegistrationStatusException",
          "exception":true,
          "documentation":"<p>The registration status was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidTagFilterException",
          "exception":true,
          "documentation":"<p>The specified tag filter was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidNextTokenException",
          "exception":true,
          "documentation":"<p>The next token was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Gets a list of one or more on-premises instance names.</p> <p>Unless otherwise specified, both registered and deregistered on-premises instance names will be listed. To list only registered or deregistered on-premises instance names, use the registration status parameter.</p>"
    },
    "RegisterApplicationRevision":{
      "name":"RegisterApplicationRevision",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"RegisterApplicationRevisionInput",
        "documentation":"<p>Represents the input of a register application revision operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"DescriptionTooLongException",
          "exception":true,
          "documentation":"<p>The description that was provided is too long.</p>"
        },
        {
          "shape":"RevisionRequiredException",
          "exception":true,
          "documentation":"<p>The revision ID was not specified.</p>"
        },
        {
          "shape":"InvalidRevisionException",
          "exception":true,
          "documentation":"<p>The revision was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Registers with AWS CodeDeploy a revision for the specified application.</p>"
    },
    "RegisterOnPremisesInstance":{
      "name":"RegisterOnPremisesInstance",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"RegisterOnPremisesInstanceInput",
        "documentation":"<p>Represents the input of register on-premises instance operation.</p>"
      },
      "errors":[
        {
          "shape":"InstanceNameAlreadyRegisteredException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance name is already registered.</p>"
        },
        {
          "shape":"IamUserArnAlreadyRegisteredException",
          "exception":true,
          "documentation":"<p>The specified IAM user ARN is already registered with an on-premises instance.</p>"
        },
        {
          "shape":"InstanceNameRequiredException",
          "exception":true,
          "documentation":"<p>An on-premises instance name was not specified.</p>"
        },
        {
          "shape":"IamUserArnRequiredException",
          "exception":true,
          "documentation":"<p>An IAM user ARN was not specified.</p>"
        },
        {
          "shape":"InvalidInstanceNameException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance name was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidIamUserArnException",
          "exception":true,
          "documentation":"<p>The IAM user ARN was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Registers an on-premises instance.</p>"
    },
    "RemoveTagsFromOnPremisesInstances":{
      "name":"RemoveTagsFromOnPremisesInstances",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"RemoveTagsFromOnPremisesInstancesInput",
        "documentation":"<p>Represents the input of a remove tags from on-premises instances operation.</p>"
      },
      "errors":[
        {
          "shape":"InstanceNameRequiredException",
          "exception":true,
          "documentation":"<p>An on-premises instance name was not specified.</p>"
        },
        {
          "shape":"TagRequiredException",
          "exception":true,
          "documentation":"<p>A tag was not specified.</p>"
        },
        {
          "shape":"InvalidTagException",
          "exception":true,
          "documentation":"<p>The specified tag was specified in an invalid format.</p>"
        },
        {
          "shape":"TagLimitExceededException",
          "exception":true,
          "documentation":"<p>The maximum allowed number of tags was exceeded.</p>"
        },
        {
          "shape":"InstanceLimitExceededException",
          "exception":true,
          "documentation":"<p>The maximum number of allowed on-premises instances in a single call was exceeded.</p>"
        },
        {
          "shape":"InstanceNotRegisteredException",
          "exception":true,
          "documentation":"<p>The specified on-premises instance is not registered.</p>"
        }
      ],
      "documentation":"<p>Removes one or more tags from one or more on-premises instances.</p>"
    },
    "StopDeployment":{
      "name":"StopDeployment",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"StopDeploymentInput",
        "documentation":"<p>Represents the input of a stop deployment operation.</p>"
      },
      "output":{
        "shape":"StopDeploymentOutput",
        "documentation":"<p>Represents the output of a stop deployment operation.</p>"
      },
      "errors":[
        {
          "shape":"DeploymentIdRequiredException",
          "exception":true,
          "documentation":"<p>At least one deployment ID must be specified.</p>"
        },
        {
          "shape":"DeploymentDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DeploymentAlreadyCompletedException",
          "exception":true,
          "documentation":"<p>The deployment is already completed.</p>"
        },
        {
          "shape":"InvalidDeploymentIdException",
          "exception":true,
          "documentation":"<p>At least one of the deployment IDs was specified in an invalid format.</p>"
        }
      ],
      "documentation":"<p>Attempts to stop an ongoing deployment.</p>"
    },
    "UpdateApplication":{
      "name":"UpdateApplication",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"UpdateApplicationInput",
        "documentation":"<p>Represents the input of an update application operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationAlreadyExistsException",
          "exception":true,
          "documentation":"<p>An application with the specified name already exists with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        }
      ],
      "documentation":"<p>Changes an existing application's name.</p>"
    },
    "UpdateDeploymentGroup":{
      "name":"UpdateDeploymentGroup",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"UpdateDeploymentGroupInput",
        "documentation":"<p>Represents the input of an update deployment group operation.</p>"
      },
      "output":{
        "shape":"UpdateDeploymentGroupOutput",
        "documentation":"<p>Represents the output of an update deployment group operation.</p>"
      },
      "errors":[
        {
          "shape":"ApplicationNameRequiredException",
          "exception":true,
          "documentation":"<p>The minimum number of required application names was not specified.</p>"
        },
        {
          "shape":"InvalidApplicationNameException",
          "exception":true,
          "documentation":"<p>The application name was specified in an invalid format.</p>"
        },
        {
          "shape":"ApplicationDoesNotExistException",
          "exception":true,
          "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InvalidDeploymentGroupNameException",
          "exception":true,
          "documentation":"<p>The deployment group name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentGroupAlreadyExistsException",
          "exception":true,
          "documentation":"<p>A deployment group with the specified name already exists with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"DeploymentGroupNameRequiredException",
          "exception":true,
          "documentation":"<p>The deployment group name was not specified.</p>"
        },
        {
          "shape":"DeploymentGroupDoesNotExistException",
          "exception":true,
          "documentation":"<p>The named deployment group does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InvalidEC2TagException",
          "exception":true,
          "documentation":"<p>The tag was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidTagException",
          "exception":true,
          "documentation":"<p>The specified tag was specified in an invalid format.</p>"
        },
        {
          "shape":"InvalidAutoScalingGroupException",
          "exception":true,
          "documentation":"<p>The Auto Scaling group was specified in an invalid format or does not exist.</p>"
        },
        {
          "shape":"InvalidDeploymentConfigNameException",
          "exception":true,
          "documentation":"<p>The deployment configuration name was specified in an invalid format.</p>"
        },
        {
          "shape":"DeploymentConfigDoesNotExistException",
          "exception":true,
          "documentation":"<p>The deployment configuration does not exist with the applicable IAM user or AWS account.</p>"
        },
        {
          "shape":"InvalidRoleException",
          "exception":true,
          "documentation":"<p>The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.</p>"
        }
      ],
      "documentation":"<p>Changes information about an existing deployment group.</p>"
    }
  },
  "shapes":{
    "AddTagsToOnPremisesInstancesInput":{
      "type":"structure",
      "required":[
        "tags",
        "instanceNames"
      ],
      "members":{
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tag key-value pairs to add to the on-premises instances.</p> <p>Keys and values are both required. Keys cannot be nulls or empty strings. Value-only tags are not allowed.</p>"
        },
        "instanceNames":{
          "shape":"InstanceNameList",
          "documentation":"<p>The names of the on-premises instances to add tags to.</p>"
        }
      },
      "documentation":"<p>Represents the input of an adds tags to on-premises instance operation.</p>"
    },
    "ApplicationAlreadyExistsException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>An application with the specified name already exists with the applicable IAM user or AWS account.</p>"
    },
    "ApplicationDoesNotExistException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The application does not exist with the applicable IAM user or AWS account.</p>"
    },
    "ApplicationId":{"type":"string"},
    "ApplicationInfo":{
      "type":"structure",
      "members":{
        "applicationId":{
          "shape":"ApplicationId",
          "documentation":"<p>The application ID.</p>"
        },
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The application name.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the application was created.</p>"
        },
        "linkedToGitHub":{
          "shape":"Boolean",
          "documentation":"<p>True if the user has authenticated with GitHub for the specified application; otherwise, false.</p>"
        }
      },
      "documentation":"<p>Information about an application.</p>"
    },
    "ApplicationLimitExceededException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>More applications were attempted to be created than were allowed.</p>"
    },
    "ApplicationName":{
      "type":"string",
      "min":1,
      "max":100
    },
    "ApplicationNameRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The minimum number of required application names was not specified.</p>"
    },
    "ApplicationRevisionSortBy":{
      "type":"string",
      "enum":[
        "registerTime",
        "firstUsedTime",
        "lastUsedTime"
      ]
    },
    "ApplicationsInfoList":{
      "type":"list",
      "member":{"shape":"ApplicationInfo"}
    },
    "ApplicationsList":{
      "type":"list",
      "member":{"shape":"ApplicationName"}
    },
    "AutoScalingGroup":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AutoScalingGroupName",
          "documentation":"<p>The Auto Scaling group name.</p>"
        },
        "hook":{
          "shape":"AutoScalingGroupHook",
          "documentation":"<p>An Auto Scaling lifecycle event hook name.</p>"
        }
      },
      "documentation":"<p>Information about an Auto Scaling group.</p>"
    },
    "AutoScalingGroupHook":{"type":"string"},
    "AutoScalingGroupList":{
      "type":"list",
      "member":{"shape":"AutoScalingGroup"}
    },
    "AutoScalingGroupName":{"type":"string"},
    "AutoScalingGroupNameList":{
      "type":"list",
      "member":{"shape":"AutoScalingGroupName"}
    },
    "BatchGetApplicationsInput":{
      "type":"structure",
      "members":{
        "applicationNames":{
          "shape":"ApplicationsList",
          "documentation":"<p>A list of application names, with multiple application names separated by spaces.</p>"
        }
      },
      "documentation":"<p>Represents the input of a batch get applications operation.</p>"
    },
    "BatchGetApplicationsOutput":{
      "type":"structure",
      "members":{
        "applicationsInfo":{
          "shape":"ApplicationsInfoList",
          "documentation":"<p>Information about the applications.</p>"
        }
      },
      "documentation":"<p>Represents the output of a batch get applications operation.</p>"
    },
    "BatchGetDeploymentsInput":{
      "type":"structure",
      "members":{
        "deploymentIds":{
          "shape":"DeploymentsList",
          "documentation":"<p>A list of deployment IDs, with multiple deployment IDs separated by spaces.</p>"
        }
      },
      "documentation":"<p>Represents the input of a batch get deployments operation.</p>"
    },
    "BatchGetDeploymentsOutput":{
      "type":"structure",
      "members":{
        "deploymentsInfo":{
          "shape":"DeploymentsInfoList",
          "documentation":"<p>Information about the deployments.</p>"
        }
      },
      "documentation":"<p>Represents the output of a batch get deployments operation.</p>"
    },
    "BatchGetOnPremisesInstancesInput":{
      "type":"structure",
      "members":{
        "instanceNames":{
          "shape":"InstanceNameList",
          "documentation":"<p>The names of the on-premises instances to get information about.</p>"
        }
      },
      "documentation":"<p>Represents the input of a batch get on-premises instances operation.</p>"
    },
    "BatchGetOnPremisesInstancesOutput":{
      "type":"structure",
      "members":{
        "instanceInfos":{
          "shape":"InstanceInfoList",
          "documentation":"<p>Information about the on-premises instances.</p>"
        }
      },
      "documentation":"<p>Represents the output of a batch get on-premises instances operation.</p>"
    },
    "Boolean":{"type":"boolean"},
    "BucketNameFilterRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>A bucket name is required but was not provided.</p>"
    },
    "BundleType":{
      "type":"string",
      "enum":[
        "tar",
        "tgz",
        "zip"
      ]
    },
    "CommitId":{"type":"string"},
    "CreateApplicationInput":{
      "type":"structure",
      "required":["applicationName"],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of the application. This name must be unique with the applicable IAM user or AWS account.</p>"
        }
      },
      "documentation":"<p>Represents the input of a create application operation.</p>"
    },
    "CreateApplicationOutput":{
      "type":"structure",
      "members":{
        "applicationId":{
          "shape":"ApplicationId",
          "documentation":"<p>A unique application ID.</p>"
        }
      },
      "documentation":"<p>Represents the output of a create application operation.</p>"
    },
    "CreateDeploymentConfigInput":{
      "type":"structure",
      "required":["deploymentConfigName"],
      "members":{
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The name of the deployment configuration to create.</p>"
        },
        "minimumHealthyHosts":{
          "shape":"MinimumHealthyHosts",
          "documentation":"<p>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.</p> <p>The type parameter takes either of the following values:</p> <ul> <li>HOST_COUNT: The value parameter represents the minimum number of healthy instances, as an absolute value.</li> <li>FLEET_PERCENT: The value parameter represents the minimum number of healthy instances, as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, then at the start of the deployment AWS CodeDeploy converts the percentage to the equivalent number of instances and rounds fractional instances up.</li> </ul> <p>The value parameter takes an integer.</p> <p>For example, to set a minimum of 95% healthy instances, specify a type of FLEET_PERCENT and a value of 95.</p>"
        }
      },
      "documentation":"<p>Represents the input of a create deployment configuration operation.</p>"
    },
    "CreateDeploymentConfigOutput":{
      "type":"structure",
      "members":{
        "deploymentConfigId":{
          "shape":"DeploymentConfigId",
          "documentation":"<p>A unique deployment configuration ID.</p>"
        }
      },
      "documentation":"<p>Represents the output of a create deployment configuration operation.</p>"
    },
    "CreateDeploymentGroupInput":{
      "type":"structure",
      "required":[
        "applicationName",
        "deploymentGroupName",
        "serviceRoleArn"
      ],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "deploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The name of an existing deployment group for the specified application.</p>"
        },
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>If specified, the deployment configuration name must be one of the predefined values, or it can be a custom deployment configuration:</p> <ul> <li>CodeDeployDefault.AllAtOnce deploys an application revision to up to all of the instances at once. The overall deployment succeeds if the application revision deploys to at least one of the instances. The overall deployment fails after the application revision fails to deploy to all of the instances. For example, for 9 instances, deploy to up to all 9 instances at once. The overall deployment succeeds if any of the 9 instances is successfully deployed to, and it fails if all 9 instances fail to be deployed to.</li> <li>CodeDeployDefault.HalfAtATime deploys to up to half of the instances at a time (with fractions rounded down). The overall deployment succeeds if the application revision deploys to at least half of the instances (with fractions rounded up); otherwise, the deployment fails. For example, for 9 instances, deploy to up to 4 instances at a time. The overall deployment succeeds if 5 or more instances are successfully deployed to; otherwise, the deployment fails. Note that the deployment may successfully deploy to some instances, even if the overall deployment fails.</li> <li>CodeDeployDefault.OneAtATime deploys the application revision to only one of the instances at a time. The overall deployment succeeds if the application revision deploys to all of the instances. The overall deployment fails after the application revision first fails to deploy to any one instances. For example, for 9 instances, deploy to one instance at a time. The overall deployment succeeds if all 9 instances are successfully deployed to, and it fails if any of one of the 9 instances fail to be deployed to. Note that the deployment may successfully deploy to some instances, even if the overall deployment fails. This is the default deployment configuration if a configuration isn't specified for either the deployment or the deployment group.</li> </ul> <p>To create a custom deployment configuration, call the create deployment configuration operation.</p>"
        },
        "ec2TagFilters":{
          "shape":"EC2TagFilterList",
          "documentation":"<p>The Amazon EC2 tags to filter on.</p>"
        },
        "onPremisesInstanceTagFilters":{
          "shape":"TagFilterList",
          "documentation":"<p>The on-premises instance tags to filter on.</p>"
        },
        "autoScalingGroups":{
          "shape":"AutoScalingGroupNameList",
          "documentation":"<p>A list of associated Auto Scaling groups.</p>"
        },
        "serviceRoleArn":{
          "shape":"Role",
          "documentation":"<p>A service role ARN that allows AWS CodeDeploy to act on the user's behalf when interacting with AWS services.</p>"
        }
      },
      "documentation":"<p>Represents the input of a create deployment group operation.</p>"
    },
    "CreateDeploymentGroupOutput":{
      "type":"structure",
      "members":{
        "deploymentGroupId":{
          "shape":"DeploymentGroupId",
          "documentation":"<p>A unique deployment group ID.</p>"
        }
      },
      "documentation":"<p>Represents the output of a create deployment group operation.</p>"
    },
    "CreateDeploymentInput":{
      "type":"structure",
      "required":["applicationName"],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "deploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The deployment group's name.</p>"
        },
        "revision":{
          "shape":"RevisionLocation",
          "documentation":"<p>The type of revision to deploy, along with information about the revision's location.</p>"
        },
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The name of an existing deployment configuration associated with the applicable IAM user or AWS account.</p> <p>If not specified, the value configured in the deployment group will be used as the default. If the deployment group does not have a deployment configuration associated with it, then CodeDeployDefault.OneAtATime will be used by default.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A comment about the deployment.</p>"
        },
        "ignoreApplicationStopFailures":{
          "shape":"Boolean",
          "documentation":"<p>If set to true, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will not be considered to have failed to that instance at that point and will continue on to the BeforeInstall deployment lifecycle event.</p> <p>If set to false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will stop to that instance, and the deployment to that instance will be considered to have failed.</p>"
        }
      },
      "documentation":"<p>Represents the input of a create deployment operation.</p>"
    },
    "CreateDeploymentOutput":{
      "type":"structure",
      "members":{
        "deploymentId":{
          "shape":"DeploymentId",
          "documentation":"<p>A unique deployment ID.</p>"
        }
      },
      "documentation":"<p>Represents the output of a create deployment operation.</p>"
    },
    "DeleteApplicationInput":{
      "type":"structure",
      "required":["applicationName"],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        }
      },
      "documentation":"<p>Represents the input of a delete application operation.</p>"
    },
    "DeleteDeploymentConfigInput":{
      "type":"structure",
      "required":["deploymentConfigName"],
      "members":{
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The name of an existing deployment configuration associated with the applicable IAM user or AWS account.</p>"
        }
      },
      "documentation":"<p>Represents the input of a delete deployment configuration operation.</p>"
    },
    "DeleteDeploymentGroupInput":{
      "type":"structure",
      "required":[
        "applicationName",
        "deploymentGroupName"
      ],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "deploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The name of an existing deployment group for the specified application.</p>"
        }
      },
      "documentation":"<p>Represents the input of a delete deployment group operation.</p>"
    },
    "DeleteDeploymentGroupOutput":{
      "type":"structure",
      "members":{
        "hooksNotCleanedUp":{
          "shape":"AutoScalingGroupList",
          "documentation":"<p>If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling. If the output does contain data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group.</p>"
        }
      },
      "documentation":"<p>Represents the output of a delete deployment group operation.</p>"
    },
    "DeploymentAlreadyCompletedException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment is already completed.</p>"
    },
    "DeploymentConfigAlreadyExistsException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>A deployment configuration with the specified name already exists with the applicable IAM user or AWS account.</p>"
    },
    "DeploymentConfigDoesNotExistException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment configuration does not exist with the applicable IAM user or AWS account.</p>"
    },
    "DeploymentConfigId":{"type":"string"},
    "DeploymentConfigInUseException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment configuration is still in use.</p>"
    },
    "DeploymentConfigInfo":{
      "type":"structure",
      "members":{
        "deploymentConfigId":{
          "shape":"DeploymentConfigId",
          "documentation":"<p>The deployment configuration ID.</p>"
        },
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The deployment configuration name.</p>"
        },
        "minimumHealthyHosts":{
          "shape":"MinimumHealthyHosts",
          "documentation":"<p>Information about the number or percentage of minimum healthy instances.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the deployment configuration was created.</p>"
        }
      },
      "documentation":"<p>Information about a deployment configuration.</p>"
    },
    "DeploymentConfigLimitExceededException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment configurations limit was exceeded.</p>"
    },
    "DeploymentConfigName":{
      "type":"string",
      "min":1,
      "max":100
    },
    "DeploymentConfigNameRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment configuration name was not specified.</p>"
    },
    "DeploymentConfigsList":{
      "type":"list",
      "member":{"shape":"DeploymentConfigName"}
    },
    "DeploymentCreator":{
      "type":"string",
      "enum":[
        "user",
        "autoscaling"
      ]
    },
    "DeploymentDoesNotExistException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment does not exist with the applicable IAM user or AWS account.</p>"
    },
    "DeploymentGroupAlreadyExistsException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>A deployment group with the specified name already exists with the applicable IAM user or AWS account.</p>"
    },
    "DeploymentGroupDoesNotExistException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The named deployment group does not exist with the applicable IAM user or AWS account.</p>"
    },
    "DeploymentGroupId":{"type":"string"},
    "DeploymentGroupInfo":{
      "type":"structure",
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The application name.</p>"
        },
        "deploymentGroupId":{
          "shape":"DeploymentGroupId",
          "documentation":"<p>The deployment group ID.</p>"
        },
        "deploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The deployment group name.</p>"
        },
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The deployment configuration name.</p>"
        },
        "ec2TagFilters":{
          "shape":"EC2TagFilterList",
          "documentation":"<p>The Amazon EC2 tags to filter on.</p>"
        },
        "onPremisesInstanceTagFilters":{
          "shape":"TagFilterList",
          "documentation":"<p>The on-premises instance tags to filter on.</p>"
        },
        "autoScalingGroups":{
          "shape":"AutoScalingGroupList",
          "documentation":"<p>A list of associated Auto Scaling groups.</p>"
        },
        "serviceRoleArn":{
          "shape":"Role",
          "documentation":"<p>A service role ARN.</p>"
        },
        "targetRevision":{
          "shape":"RevisionLocation",
          "documentation":"<p>Information about the deployment group's target revision, including the revision's type and its location.</p>"
        }
      },
      "documentation":"<p>Information about a deployment group.</p>"
    },
    "DeploymentGroupLimitExceededException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p> The deployment groups limit was exceeded.</p>"
    },
    "DeploymentGroupName":{
      "type":"string",
      "min":1,
      "max":100
    },
    "DeploymentGroupNameRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment group name was not specified.</p>"
    },
    "DeploymentGroupsList":{
      "type":"list",
      "member":{"shape":"DeploymentGroupName"}
    },
    "DeploymentId":{"type":"string"},
    "DeploymentIdRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>At least one deployment ID must be specified.</p>"
    },
    "DeploymentInfo":{
      "type":"structure",
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The application name.</p>"
        },
        "deploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The deployment group name.</p>"
        },
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The deployment configuration name.</p>"
        },
        "deploymentId":{
          "shape":"DeploymentId",
          "documentation":"<p>The deployment ID.</p>"
        },
        "revision":{
          "shape":"RevisionLocation",
          "documentation":"<p>Information about the location of application artifacts that are stored and the service to retrieve them from.</p>"
        },
        "status":{
          "shape":"DeploymentStatus",
          "documentation":"<p>The current state of the deployment as a whole.</p>"
        },
        "errorInformation":{
          "shape":"ErrorInformation",
          "documentation":"<p>Information about any error associated with this deployment.</p>"
        },
        "createTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating when the deployment was created.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating when the deployment began deploying to the deployment group.</p> <p>Note that in some cases, the reported value of the start time may be later than the complete time. This is due to differences in the clock settings of various back-end servers that participate in the overall deployment process.</p>"
        },
        "completeTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating when the deployment was completed.</p>"
        },
        "deploymentOverview":{
          "shape":"DeploymentOverview",
          "documentation":"<p>A summary of the deployment status of the instances in the deployment.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A comment about the deployment.</p>"
        },
        "creator":{
          "shape":"DeploymentCreator",
          "documentation":"<p>How the deployment was created:</p> <ul> <li>user: A user created the deployment.</li> <li>autoscaling: Auto Scaling created the deployment.</li> </ul>"
        },
        "ignoreApplicationStopFailures":{
          "shape":"Boolean",
          "documentation":"<p>If true, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will not be considered to have failed to that instance at that point and will continue on to the BeforeInstall deployment lifecycle event.</p> <p>If false or not specified, then if the deployment causes the ApplicationStop deployment lifecycle event to fail to a specific instance, the deployment will stop to that instance, and the deployment to that instance will be considered to have failed.</p>"
        }
      },
      "documentation":"<p>Information about a deployment.</p>"
    },
    "DeploymentLimitExceededException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The number of allowed deployments was exceeded.</p>"
    },
    "DeploymentNotStartedException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified deployment has not started.</p>"
    },
    "DeploymentOverview":{
      "type":"structure",
      "members":{
        "Pending":{
          "shape":"InstanceCount",
          "documentation":"<p>The number of instances that are pending in the deployment.</p>"
        },
        "InProgress":{
          "shape":"InstanceCount",
          "documentation":"<p>The number of instances that are in progress in the deployment.</p>"
        },
        "Succeeded":{
          "shape":"InstanceCount",
          "documentation":"<p>The number of instances that have succeeded in the deployment.</p>"
        },
        "Failed":{
          "shape":"InstanceCount",
          "documentation":"<p>The number of instances that have failed in the deployment.</p>"
        },
        "Skipped":{
          "shape":"InstanceCount",
          "documentation":"<p>The number of instances that have been skipped in the deployment.</p>"
        }
      },
      "documentation":"<p>Information about the deployment status of the instances in the deployment.</p>"
    },
    "DeploymentStatus":{
      "type":"string",
      "enum":[
        "Created",
        "Queued",
        "InProgress",
        "Succeeded",
        "Failed",
        "Stopped"
      ]
    },
    "DeploymentStatusList":{
      "type":"list",
      "member":{"shape":"DeploymentStatus"}
    },
    "DeploymentsInfoList":{
      "type":"list",
      "member":{"shape":"DeploymentInfo"}
    },
    "DeploymentsList":{
      "type":"list",
      "member":{"shape":"DeploymentId"}
    },
    "DeregisterOnPremisesInstanceInput":{
      "type":"structure",
      "required":["instanceName"],
      "members":{
        "instanceName":{
          "shape":"InstanceName",
          "documentation":"<p>The name of the on-premises instance to deregister.</p>"
        }
      },
      "documentation":"<p>Represents the input of a deregister on-premises instance operation.</p>"
    },
    "Description":{"type":"string"},
    "DescriptionTooLongException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The description that was provided is too long.</p>"
    },
    "Diagnostics":{
      "type":"structure",
      "members":{
        "errorCode":{
          "shape":"LifecycleErrorCode",
          "documentation":"<p>The associated error code:</p> <ul> <li>Success: The specified script ran.</li> <li>ScriptMissing: The specified script was not found in the specified location.</li> <li>ScriptNotExecutable: The specified script is not a recognized executable file type.</li> <li>ScriptTimedOut: The specified script did not finish running in the specified time period.</li> <li>ScriptFailed: The specified script failed to run as expected.</li> <li>UnknownError: The specified script did not run for an unknown reason.</li> </ul>"
        },
        "scriptName":{
          "shape":"ScriptName",
          "documentation":"<p>The name of the script.</p>"
        },
        "message":{
          "shape":"LifecycleMessage",
          "documentation":"<p>The message associated with the error.</p>"
        },
        "logTail":{
          "shape":"LogTail",
          "documentation":"<p>The last portion of the associated diagnostic log.</p>"
        }
      },
      "documentation":"<p>Diagnostic information about executable scripts that are part of a deployment.</p>"
    },
    "EC2TagFilter":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"Key",
          "documentation":"<p>The tag filter key.</p>"
        },
        "Value":{
          "shape":"Value",
          "documentation":"<p>The tag filter value.</p>"
        },
        "Type":{
          "shape":"EC2TagFilterType",
          "documentation":"<p>The tag filter type:</p> <ul> <li>KEY_ONLY: Key only.</li> <li>VALUE_ONLY: Value only.</li> <li>KEY_AND_VALUE: Key and value.</li> </ul>"
        }
      },
      "documentation":"<p>Information about a tag filter.</p>"
    },
    "EC2TagFilterList":{
      "type":"list",
      "member":{"shape":"EC2TagFilter"}
    },
    "EC2TagFilterType":{
      "type":"string",
      "enum":[
        "KEY_ONLY",
        "VALUE_ONLY",
        "KEY_AND_VALUE"
      ]
    },
    "ETag":{"type":"string"},
    "ErrorCode":{
      "type":"string",
      "enum":[
        "DEPLOYMENT_GROUP_MISSING",
        "APPLICATION_MISSING",
        "REVISION_MISSING",
        "IAM_ROLE_MISSING",
        "IAM_ROLE_PERMISSIONS",
        "NO_EC2_SUBSCRIPTION",
        "OVER_MAX_INSTANCES",
        "NO_INSTANCES",
        "TIMEOUT",
        "HEALTH_CONSTRAINTS_INVALID",
        "HEALTH_CONSTRAINTS",
        "INTERNAL_ERROR",
        "THROTTLED"
      ]
    },
    "ErrorInformation":{
      "type":"structure",
      "members":{
        "code":{
          "shape":"ErrorCode",
          "documentation":"<p>The error code:</p> <ul> <li>APPLICATION_MISSING: The application was missing. Note that this error code will most likely be raised if the application is deleted after the deployment is created but before it starts.</li> <li>DEPLOYMENT_GROUP_MISSING: The deployment group was missing. Note that this error code will most likely be raised if the deployment group is deleted after the deployment is created but before it starts.</li> <li>HEALTH_CONSTRAINTS: The deployment failed on too many instances to be able to successfully deploy within the specified instance health constraints.</li> <li>HEALTH_CONSTRAINTS_INVALID: The revision can never successfully deploy within the instance health constraints as specified.</li> <li>IAM_ROLE_MISSING: The service role cannot be accessed.</li> <li>IAM_ROLE_PERMISSIONS: The service role does not have the correct permissions.</li> <li>INTERNAL_ERROR: There was an internal error.</li> <li>NO_EC2_SUBSCRIPTION: The calling account is not subscribed to the Amazon EC2 service.</li> <li>NO_INSTANCES: No instances were specified, or no instances can be found.</li> <li>OVER_MAX_INSTANCES: The maximum number of instances was exceeded.</li> <li>THROTTLED: The operation was throttled because the calling account exceeded the throttling limits of one or more AWS services.</li> <li>TIMEOUT: The deployment has timed out.</li> <li>REVISION_MISSING: The revision ID was missing. Note that this error code will most likely be raised if the revision is deleted after the deployment is created but before it starts.</li> </ul>"
        },
        "message":{
          "shape":"ErrorMessage",
          "documentation":"<p>An accompanying error message.</p>"
        }
      },
      "documentation":"<p>Information about a deployment error.</p>"
    },
    "ErrorMessage":{"type":"string"},
    "GenericRevisionInfo":{
      "type":"structure",
      "members":{
        "description":{
          "shape":"Description",
          "documentation":"<p>A comment about the revision.</p>"
        },
        "deploymentGroups":{
          "shape":"DeploymentGroupsList",
          "documentation":"<p>A list of deployment groups that use this revision.</p>"
        },
        "firstUsedTime":{
          "shape":"Timestamp",
          "documentation":"<p>When the revision was first used by AWS CodeDeploy.</p>"
        },
        "lastUsedTime":{
          "shape":"Timestamp",
          "documentation":"<p>When the revision was last used by AWS CodeDeploy.</p>"
        },
        "registerTime":{
          "shape":"Timestamp",
          "documentation":"<p>When the revision was registered with AWS CodeDeploy.</p>"
        }
      },
      "documentation":"<p>Information about an application revision.</p>"
    },
    "GetApplicationInput":{
      "type":"structure",
      "required":["applicationName"],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        }
      },
      "documentation":"<p>Represents the input of a get application operation.</p>"
    },
    "GetApplicationOutput":{
      "type":"structure",
      "members":{
        "application":{
          "shape":"ApplicationInfo",
          "documentation":"<p>Information about the application.</p>"
        }
      },
      "documentation":"<p>Represents the output of a get application operation.</p>"
    },
    "GetApplicationRevisionInput":{
      "type":"structure",
      "required":[
        "applicationName",
        "revision"
      ],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of the application that corresponds to the revision.</p>"
        },
        "revision":{
          "shape":"RevisionLocation",
          "documentation":"<p>Information about the application revision to get, including the revision's type and its location.</p>"
        }
      },
      "documentation":"<p>Represents the input of a get application revision operation.</p>"
    },
    "GetApplicationRevisionOutput":{
      "type":"structure",
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of the application that corresponds to the revision.</p>"
        },
        "revision":{
          "shape":"RevisionLocation",
          "documentation":"<p>Additional information about the revision, including the revision's type and its location.</p>"
        },
        "revisionInfo":{
          "shape":"GenericRevisionInfo",
          "documentation":"<p>General information about the revision.</p>"
        }
      },
      "documentation":"<p>Represents the output of a get application revision operation.</p>"
    },
    "GetDeploymentConfigInput":{
      "type":"structure",
      "required":["deploymentConfigName"],
      "members":{
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The name of an existing deployment configuration associated with the applicable IAM user or AWS account.</p>"
        }
      },
      "documentation":"<p>Represents the input of a get deployment configuration operation.</p>"
    },
    "GetDeploymentConfigOutput":{
      "type":"structure",
      "members":{
        "deploymentConfigInfo":{
          "shape":"DeploymentConfigInfo",
          "documentation":"<p>Information about the deployment configuration.</p>"
        }
      },
      "documentation":"<p>Represents the output of a get deployment configuration operation.</p>"
    },
    "GetDeploymentGroupInput":{
      "type":"structure",
      "required":[
        "applicationName",
        "deploymentGroupName"
      ],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "deploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The name of an existing deployment group for the specified application.</p>"
        }
      },
      "documentation":"<p>Represents the input of a get deployment group operation.</p>"
    },
    "GetDeploymentGroupOutput":{
      "type":"structure",
      "members":{
        "deploymentGroupInfo":{
          "shape":"DeploymentGroupInfo",
          "documentation":"<p>Information about the deployment group.</p>"
        }
      },
      "documentation":"<p>Represents the output of a get deployment group operation.</p>"
    },
    "GetDeploymentInput":{
      "type":"structure",
      "required":["deploymentId"],
      "members":{
        "deploymentId":{
          "shape":"DeploymentId",
          "documentation":"<p>An existing deployment ID associated with the applicable IAM user or AWS account.</p>"
        }
      },
      "documentation":"<p>Represents the input of a get deployment operation.</p>"
    },
    "GetDeploymentInstanceInput":{
      "type":"structure",
      "required":[
        "deploymentId",
        "instanceId"
      ],
      "members":{
        "deploymentId":{
          "shape":"DeploymentId",
          "documentation":"<p>The unique ID of a deployment.</p>"
        },
        "instanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The unique ID of an instance in the deployment's deployment group.</p>"
        }
      },
      "documentation":"<p>Represents the input of a get deployment instance operation.</p>"
    },
    "GetDeploymentInstanceOutput":{
      "type":"structure",
      "members":{
        "instanceSummary":{
          "shape":"InstanceSummary",
          "documentation":"<p>Information about the instance.</p>"
        }
      },
      "documentation":"<p>Represents the output of a get deployment instance operation.</p>"
    },
    "GetDeploymentOutput":{
      "type":"structure",
      "members":{
        "deploymentInfo":{
          "shape":"DeploymentInfo",
          "documentation":"<p>Information about the deployment.</p>"
        }
      },
      "documentation":"<p>Represents the output of a get deployment operation.</p>"
    },
    "GetOnPremisesInstanceInput":{
      "type":"structure",
      "required":["instanceName"],
      "members":{
        "instanceName":{
          "shape":"InstanceName",
          "documentation":"<p>The name of the on-premises instance to get information about</p>"
        }
      },
      "documentation":"<p>Represents the input of a get on-premises instance operation.</p>"
    },
    "GetOnPremisesInstanceOutput":{
      "type":"structure",
      "members":{
        "instanceInfo":{
          "shape":"InstanceInfo",
          "documentation":"<p>Information about the on-premises instance.</p>"
        }
      },
      "documentation":"<p>Represents the output of a get on-premises instance operation.</p>"
    },
    "GitHubLocation":{
      "type":"structure",
      "members":{
        "repository":{
          "shape":"Repository",
          "documentation":"<p>The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision.</p> <p>Specified as account/repository.</p>"
        },
        "commitId":{
          "shape":"CommitId",
          "documentation":"<p>The SHA1 commit ID of the GitHub commit that references the that represents the bundled artifacts for the application revision.</p>"
        }
      },
      "documentation":"<p>Information about the location of application artifacts that are stored in GitHub.</p>"
    },
    "IamUserArn":{"type":"string"},
    "IamUserArnAlreadyRegisteredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified IAM user ARN is already registered with an on-premises instance.</p>"
    },
    "IamUserArnRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>An IAM user ARN was not specified.</p>"
    },
    "InstanceArn":{"type":"string"},
    "InstanceCount":{"type":"long"},
    "InstanceDoesNotExistException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified instance does not exist in the deployment group.</p>"
    },
    "InstanceId":{"type":"string"},
    "InstanceIdRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The instance ID was not specified.</p>"
    },
    "InstanceInfo":{
      "type":"structure",
      "members":{
        "instanceName":{
          "shape":"InstanceName",
          "documentation":"<p>The name of the on-premises instance.</p>"
        },
        "iamUserArn":{
          "shape":"IamUserArn",
          "documentation":"<p>The IAM user ARN associated with the on-premises instance.</p>"
        },
        "instanceArn":{
          "shape":"InstanceArn",
          "documentation":"<p>The ARN of the on-premises instance.</p>"
        },
        "registerTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time that the on-premises instance was registered.</p>"
        },
        "deregisterTime":{
          "shape":"Timestamp",
          "documentation":"<p>If the on-premises instance was deregistered, the time that the on-premises instance was deregistered.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags that are currently associated with the on-premises instance.</p>"
        }
      },
      "documentation":"<p>Information about an on-premises instance.</p>"
    },
    "InstanceInfoList":{
      "type":"list",
      "member":{"shape":"InstanceInfo"}
    },
    "InstanceLimitExceededException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The maximum number of allowed on-premises instances in a single call was exceeded.</p>"
    },
    "InstanceName":{"type":"string"},
    "InstanceNameAlreadyRegisteredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified on-premises instance name is already registered.</p>"
    },
    "InstanceNameList":{
      "type":"list",
      "member":{"shape":"InstanceName"}
    },
    "InstanceNameRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>An on-premises instance name was not specified.</p>"
    },
    "InstanceNotRegisteredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified on-premises instance is not registered.</p>"
    },
    "InstanceStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "InProgress",
        "Succeeded",
        "Failed",
        "Skipped",
        "Unknown"
      ]
    },
    "InstanceStatusList":{
      "type":"list",
      "member":{"shape":"InstanceStatus"}
    },
    "InstanceSummary":{
      "type":"structure",
      "members":{
        "deploymentId":{
          "shape":"DeploymentId",
          "documentation":"<p>The deployment ID.</p>"
        },
        "instanceId":{
          "shape":"InstanceId",
          "documentation":"<p>The instance ID.</p>"
        },
        "status":{
          "shape":"InstanceStatus",
          "documentation":"<p>The deployment status for this instance:</p> <ul> <li>Pending: The deployment is pending for this instance.</li> <li>In Progress: The deployment is in progress for this instance.</li> <li>Succeeded: The deployment has succeeded for this instance.</li> <li>Failed: The deployment has failed for this instance.</li> <li>Skipped: The deployment has been skipped for this instance.</li> <li>Unknown: The deployment status is unknown for this instance.</li> </ul>"
        },
        "lastUpdatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating when the instance information was last updated.</p>"
        },
        "lifecycleEvents":{
          "shape":"LifecycleEventList",
          "documentation":"<p>A list of lifecycle events for this instance.</p>"
        }
      },
      "documentation":"<p>Information about an instance in a deployment.</p>"
    },
    "InstancesList":{
      "type":"list",
      "member":{"shape":"InstanceId"}
    },
    "InvalidApplicationNameException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The application name was specified in an invalid format.</p>"
    },
    "InvalidAutoScalingGroupException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The Auto Scaling group was specified in an invalid format or does not exist.</p>"
    },
    "InvalidBucketNameFilterException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The bucket name either doesn't exist or was specified in an invalid format.</p>"
    },
    "InvalidDeployedStateFilterException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployed state filter was specified in an invalid format.</p>"
    },
    "InvalidDeploymentConfigNameException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment configuration name was specified in an invalid format.</p>"
    },
    "InvalidDeploymentGroupNameException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The deployment group name was specified in an invalid format.</p>"
    },
    "InvalidDeploymentIdException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>At least one of the deployment IDs was specified in an invalid format.</p>"
    },
    "InvalidDeploymentStatusException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified deployment status doesn't exist or cannot be determined.</p>"
    },
    "InvalidEC2TagException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The tag was specified in an invalid format.</p>"
    },
    "InvalidIamUserArnException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The IAM user ARN was specified in an invalid format.</p>"
    },
    "InvalidInstanceNameException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified on-premises instance name was specified in an invalid format.</p>"
    },
    "InvalidInstanceStatusException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified instance status does not exist.</p>"
    },
    "InvalidKeyPrefixFilterException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified key prefix filter was specified in an invalid format.</p>"
    },
    "InvalidMinimumHealthyHostValueException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The minimum healthy instances value was specified in an invalid format.</p>"
    },
    "InvalidNextTokenException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The next token was specified in an invalid format.</p>"
    },
    "InvalidOperationException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>An invalid operation was detected.</p>"
    },
    "InvalidRegistrationStatusException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The registration status was specified in an invalid format.</p>"
    },
    "InvalidRevisionException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The revision was specified in an invalid format.</p>"
    },
    "InvalidRoleException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The service role ARN was specified in an invalid format. Or, if an Auto Scaling group was specified, the specified service role does not grant the appropriate permissions to Auto Scaling.</p>"
    },
    "InvalidSortByException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The column name to sort by is either not present or was specified in an invalid format.</p>"
    },
    "InvalidSortOrderException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The sort order was specified in an invalid format.</p>"
    },
    "InvalidTagException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified tag was specified in an invalid format.</p>"
    },
    "InvalidTagFilterException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified tag filter was specified in an invalid format.</p>"
    },
    "InvalidTimeRangeException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The specified time range was specified in an invalid format.</p>"
    },
    "Key":{"type":"string"},
    "LifecycleErrorCode":{
      "type":"string",
      "enum":[
        "Success",
        "ScriptMissing",
        "ScriptNotExecutable",
        "ScriptTimedOut",
        "ScriptFailed",
        "UnknownError"
      ]
    },
    "LifecycleEvent":{
      "type":"structure",
      "members":{
        "lifecycleEventName":{
          "shape":"LifecycleEventName",
          "documentation":"<p>The deployment lifecycle event name, such as ApplicationStop, BeforeInstall, AfterInstall, ApplicationStart, or ValidateService.</p>"
        },
        "diagnostics":{
          "shape":"Diagnostics",
          "documentation":"<p>Diagnostic information about the deployment lifecycle event.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating when the deployment lifecycle event started.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating when the deployment lifecycle event ended.</p>"
        },
        "status":{
          "shape":"LifecycleEventStatus",
          "documentation":"<p>The deployment lifecycle event status:</p> <ul> <li>Pending: The deployment lifecycle event is pending.</li> <li>InProgress: The deployment lifecycle event is in progress.</li> <li>Succeeded: The deployment lifecycle event has succeeded.</li> <li>Failed: The deployment lifecycle event has failed.</li> <li>Skipped: The deployment lifecycle event has been skipped.</li> <li>Unknown: The deployment lifecycle event is unknown.</li> </ul>"
        }
      },
      "documentation":"<p>Information about a deployment lifecycle event.</p>"
    },
    "LifecycleEventList":{
      "type":"list",
      "member":{"shape":"LifecycleEvent"}
    },
    "LifecycleEventName":{"type":"string"},
    "LifecycleEventStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "InProgress",
        "Succeeded",
        "Failed",
        "Skipped",
        "Unknown"
      ]
    },
    "LifecycleMessage":{"type":"string"},
    "ListApplicationRevisionsInput":{
      "type":"structure",
      "required":["applicationName"],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "sortBy":{
          "shape":"ApplicationRevisionSortBy",
          "documentation":"<p>The column name to sort the list results by:</p> <ul> <li>registerTime: Sort the list results by when the revisions were registered with AWS CodeDeploy.</li> <li>firstUsedTime: Sort the list results by when the revisions were first used by in a deployment.</li> <li>lastUsedTime: Sort the list results by when the revisions were last used in a deployment.</li> </ul> <p>If not specified or set to null, the results will be returned in an arbitrary order.</p>"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list results by:</p> <ul> <li>ascending: Sort the list of results in ascending order.</li> <li>descending: Sort the list of results in descending order.</li> </ul> <p>If not specified, the results will be sorted in ascending order.</p> <p>If set to null, the results will be sorted in an arbitrary order.</p>"
        },
        "s3Bucket":{
          "shape":"S3Bucket",
          "documentation":"<p>A specific Amazon S3 bucket name to limit the search for revisions.</p> <p>If set to null, then all of the user's buckets will be searched.</p>"
        },
        "s3KeyPrefix":{
          "shape":"S3Key",
          "documentation":"<p>A specific key prefix for the set of Amazon S3 objects to limit the search for revisions.</p>"
        },
        "deployed":{
          "shape":"ListStateFilterAction",
          "documentation":"<p>Whether to list revisions based on whether the revision is the target revision of an deployment group:</p> <ul> <li>include: List revisions that are target revisions of a deployment group.</li> <li>exclude: Do not list revisions that are target revisions of a deployment group.</li> <li>ignore: List all revisions, regardless of whether they are target revisions of a deployment group.</li> </ul>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>An identifier that was returned from the previous list application revisions call, which can be used to return the next set of applications in the list.</p>"
        }
      },
      "documentation":"<p>Represents the input of a list application revisions operation.</p>"
    },
    "ListApplicationRevisionsOutput":{
      "type":"structure",
      "members":{
        "revisions":{
          "shape":"RevisionLocationList",
          "documentation":"<p>A list of revision locations that contain the matching revisions.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list application revisions call to return the next set of application revisions in the list.</p>"
        }
      },
      "documentation":"<p>Represents the output of a list application revisions operation.</p>"
    },
    "ListApplicationsInput":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>An identifier that was returned from the previous list applications call, which can be used to return the next set of applications in the list.</p>"
        }
      },
      "documentation":"<p>Represents the input of a list applications operation.</p>"
    },
    "ListApplicationsOutput":{
      "type":"structure",
      "members":{
        "applications":{
          "shape":"ApplicationsList",
          "documentation":"<p>A list of application names.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list applications call to return the next set of applications in the list.</p>"
        }
      },
      "documentation":"<p>Represents the output of a list applications operation.</p>"
    },
    "ListDeploymentConfigsInput":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>An identifier that was returned from the previous list deployment configurations call, which can be used to return the next set of deployment configurations in the list.</p>"
        }
      },
      "documentation":"<p>Represents the input of a list deployment configurations operation.</p>"
    },
    "ListDeploymentConfigsOutput":{
      "type":"structure",
      "members":{
        "deploymentConfigsList":{
          "shape":"DeploymentConfigsList",
          "documentation":"<p>A list of deployment configurations, including the built-in configurations such as CodeDeployDefault.OneAtATime.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployment configurations call to return the next set of deployment configurations in the list.</p>"
        }
      },
      "documentation":"<p>Represents the output of a list deployment configurations operation.</p>"
    },
    "ListDeploymentGroupsInput":{
      "type":"structure",
      "required":["applicationName"],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>An identifier that was returned from the previous list deployment groups call, which can be used to return the next set of deployment groups in the list.</p>"
        }
      },
      "documentation":"<p>Represents the input of a list deployment groups operation.</p>"
    },
    "ListDeploymentGroupsOutput":{
      "type":"structure",
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The application name.</p>"
        },
        "deploymentGroups":{
          "shape":"DeploymentGroupsList",
          "documentation":"<p>A list of corresponding deployment group names.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployment groups call to return the next set of deployment groups in the list.</p>"
        }
      },
      "documentation":"<p>Represents the output of a list deployment groups operation.</p>"
    },
    "ListDeploymentInstancesInput":{
      "type":"structure",
      "required":["deploymentId"],
      "members":{
        "deploymentId":{
          "shape":"DeploymentId",
          "documentation":"<p>The unique ID of a deployment.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>An identifier that was returned from the previous list deployment instances call, which can be used to return the next set of deployment instances in the list.</p>"
        },
        "instanceStatusFilter":{
          "shape":"InstanceStatusList",
          "documentation":"<p>A subset of instances to list, by status:</p> <ul> <li>Pending: Include in the resulting list those instances with pending deployments.</li> <li>InProgress: Include in the resulting list those instances with in-progress deployments.</li> <li>Succeeded: Include in the resulting list those instances with succeeded deployments.</li> <li>Failed: Include in the resulting list those instances with failed deployments.</li> <li>Skipped: Include in the resulting list those instances with skipped deployments.</li> <li>Unknown: Include in the resulting list those instances with deployments in an unknown state.</li> </ul>"
        }
      },
      "documentation":"<p>Represents the input of a list deployment instances operation.</p>"
    },
    "ListDeploymentInstancesOutput":{
      "type":"structure",
      "members":{
        "instancesList":{
          "shape":"InstancesList",
          "documentation":"<p>A list of instances IDs.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployment instances call to return the next set of deployment instances in the list.</p>"
        }
      },
      "documentation":"<p>Represents the output of a list deployment instances operation.</p>"
    },
    "ListDeploymentsInput":{
      "type":"structure",
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "deploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The name of an existing deployment group for the specified application.</p>"
        },
        "includeOnlyStatuses":{
          "shape":"DeploymentStatusList",
          "documentation":"<p>A subset of deployments to list, by status:</p> <ul> <li>Created: Include in the resulting list created deployments.</li> <li>Queued: Include in the resulting list queued deployments.</li> <li>In Progress: Include in the resulting list in-progress deployments.</li> <li>Succeeded: Include in the resulting list succeeded deployments.</li> <li>Failed: Include in the resulting list failed deployments.</li> <li>Aborted: Include in the resulting list aborted deployments.</li> </ul>"
        },
        "createTimeRange":{
          "shape":"TimeRange",
          "documentation":"<p>A deployment creation start- and end-time range for returning a subset of the list of deployments.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>An identifier that was returned from the previous list deployments call, which can be used to return the next set of deployments in the list.</p>"
        }
      },
      "documentation":"<p>Represents the input of a list deployments operation.</p>"
    },
    "ListDeploymentsOutput":{
      "type":"structure",
      "members":{
        "deployments":{
          "shape":"DeploymentsList",
          "documentation":"<p>A list of deployment IDs.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list deployments call to return the next set of deployments in the list.</p>"
        }
      },
      "documentation":"<p>Represents the output of a list deployments operation.</p>"
    },
    "ListOnPremisesInstancesInput":{
      "type":"structure",
      "members":{
        "registrationStatus":{
          "shape":"RegistrationStatus",
          "documentation":"<p>The on-premises instances registration status:</p> <ul> <li>Deregistered: Include in the resulting list deregistered on-premises instances.</li> <li>Registered: Include in the resulting list registered on-premises instances.</li> </ul>"
        },
        "tagFilters":{
          "shape":"TagFilterList",
          "documentation":"<p>The on-premises instance tags that will be used to restrict the corresponding on-premises instance names that are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>An identifier that was returned from the previous list on-premises instances call, which can be used to return the next set of on-premises instances in the list.</p>"
        }
      },
      "documentation":"<p>Represents the input of a list on-premises instances operation.</p>."
    },
    "ListOnPremisesInstancesOutput":{
      "type":"structure",
      "members":{
        "instanceNames":{
          "shape":"InstanceNameList",
          "documentation":"<p>The list of matching on-premises instance names.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the amount of information that is returned is significantly large, an identifier will also be returned, which can be used in a subsequent list on-premises instances call to return the next set of on-premises instances in the list.</p>"
        }
      },
      "documentation":"<p>Represents the output of list on-premises instances operation.</p>"
    },
    "ListStateFilterAction":{
      "type":"string",
      "enum":[
        "include",
        "exclude",
        "ignore"
      ]
    },
    "LogTail":{"type":"string"},
    "Message":{"type":"string"},
    "MinimumHealthyHosts":{
      "type":"structure",
      "members":{
        "value":{
          "shape":"MinimumHealthyHostsValue",
          "documentation":"<p>The minimum healthy instances value.</p>"
        },
        "type":{
          "shape":"MinimumHealthyHostsType",
          "documentation":"<p>The minimum healthy instances type:</p> <ul> <li>HOST_COUNT: The minimum number of healthy instances, as an absolute value.</li> <li>FLEET_PERCENT: The minimum number of healthy instances, as a percentage of the total number of instances in the deployment.</li> </ul> <p>For example, for 9 instances, if a HOST_COUNT of 6 is specified, deploy to up to 3 instances at a time. The deployment succeeds if 6 or more instances are successfully deployed to; otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to 5 instances at a time. The deployment succeeds if 4 or more instances are successfully deployed to; otherwise, the deployment fails.</p> <note>In a call to the get deployment configuration operation, CodeDeployDefault.OneAtATime will return a minimum healthy instances type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instances at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.)</note>"
        }
      },
      "documentation":"<p>Information about minimum healthy instances.</p>"
    },
    "MinimumHealthyHostsType":{
      "type":"string",
      "enum":[
        "HOST_COUNT",
        "FLEET_PERCENT"
      ]
    },
    "MinimumHealthyHostsValue":{"type":"integer"},
    "NextToken":{"type":"string"},
    "RegisterApplicationRevisionInput":{
      "type":"structure",
      "required":[
        "applicationName",
        "revision"
      ],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The name of an existing AWS CodeDeploy application associated with the applicable IAM user or AWS account.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A comment about the revision.</p>"
        },
        "revision":{
          "shape":"RevisionLocation",
          "documentation":"<p>Information about the application revision to register, including the revision's type and its location.</p>"
        }
      },
      "documentation":"<p>Represents the input of a register application revision operation.</p>"
    },
    "RegisterOnPremisesInstanceInput":{
      "type":"structure",
      "required":[
        "instanceName",
        "iamUserArn"
      ],
      "members":{
        "instanceName":{
          "shape":"InstanceName",
          "documentation":"<p>The name of the on-premises instance to register.</p>"
        },
        "iamUserArn":{
          "shape":"IamUserArn",
          "documentation":"<p>The ARN of the IAM user to associate with the on-premises instance.</p>"
        }
      },
      "documentation":"<p>Represents the input of register on-premises instance operation.</p>"
    },
    "RegistrationStatus":{
      "type":"string",
      "enum":[
        "Registered",
        "Deregistered"
      ]
    },
    "RemoveTagsFromOnPremisesInstancesInput":{
      "type":"structure",
      "required":[
        "tags",
        "instanceNames"
      ],
      "members":{
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tag key-value pairs to remove from the on-premises instances.</p>"
        },
        "instanceNames":{
          "shape":"InstanceNameList",
          "documentation":"<p>The names of the on-premises instances to remove tags from.</p>"
        }
      },
      "documentation":"<p>Represents the input of a remove tags from on-premises instances operation.</p>"
    },
    "Repository":{"type":"string"},
    "RevisionDoesNotExistException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The named revision does not exist with the applicable IAM user or AWS account.</p>"
    },
    "RevisionLocation":{
      "type":"structure",
      "members":{
        "revisionType":{
          "shape":"RevisionLocationType",
          "documentation":"<p>The application revision's type:</p> <ul> <li>S3: An application revision stored in Amazon S3.</li> <li>GitHub: An application revision stored in GitHub.</li> </ul>"
        },
        "s3Location":{"shape":"S3Location"},
        "gitHubLocation":{"shape":"GitHubLocation"}
      },
      "documentation":"<p>Information about an application revision's location.</p>"
    },
    "RevisionLocationList":{
      "type":"list",
      "member":{"shape":"RevisionLocation"}
    },
    "RevisionLocationType":{
      "type":"string",
      "enum":[
        "S3",
        "GitHub"
      ]
    },
    "RevisionRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The revision ID was not specified.</p>"
    },
    "Role":{"type":"string"},
    "RoleRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The role ID was not specified.</p>"
    },
    "S3Bucket":{"type":"string"},
    "S3Key":{"type":"string"},
    "S3Location":{
      "type":"structure",
      "members":{
        "bucket":{
          "shape":"S3Bucket",
          "documentation":"<p>The name of the Amazon S3 bucket where the application revision is stored.</p>"
        },
        "key":{
          "shape":"S3Key",
          "documentation":"<p>The name of the Amazon S3 object that represents the bundled artifacts for the application revision.</p>"
        },
        "bundleType":{
          "shape":"BundleType",
          "documentation":"<p>The file type of the application revision. Must be one of the following:</p> <ul> <li>tar: A tar archive file.</li> <li>tgz: A compressed tar archive file.</li> <li>zip: A zip archive file.</li> </ul>"
        },
        "version":{
          "shape":"VersionId",
          "documentation":"<p>A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision.</p> <p>If the version is not specified, the system will use the most recent version by default.</p>"
        },
        "eTag":{
          "shape":"ETag",
          "documentation":"<p>The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision.</p> <p>If the ETag is not specified as an input parameter, ETag validation of the object will be skipped.</p>"
        }
      },
      "documentation":"<p>Information about the location of application artifacts that are stored in Amazon S3.</p>"
    },
    "ScriptName":{"type":"string"},
    "SortOrder":{
      "type":"string",
      "enum":[
        "ascending",
        "descending"
      ]
    },
    "StopDeploymentInput":{
      "type":"structure",
      "required":["deploymentId"],
      "members":{
        "deploymentId":{
          "shape":"DeploymentId",
          "documentation":"<p>The unique ID of a deployment.</p>"
        }
      },
      "documentation":"<p>Represents the input of a stop deployment operation.</p>"
    },
    "StopDeploymentOutput":{
      "type":"structure",
      "members":{
        "status":{
          "shape":"StopStatus",
          "documentation":"<p>The status of the stop deployment operation:</p> <ul> <li>Pending: The stop operation is pending.</li> <li>Succeeded: The stop operation succeeded.</li> </ul>"
        },
        "statusMessage":{
          "shape":"Message",
          "documentation":"<p>An accompanying status message.</p>"
        }
      },
      "documentation":"<p>Represents the output of a stop deployment operation.</p>"
    },
    "StopStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "Succeeded"
      ]
    },
    "Tag":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"Key",
          "documentation":"<p>The tag's key.</p>"
        },
        "Value":{
          "shape":"Value",
          "documentation":"<p>The tag's value.</p>"
        }
      },
      "documentation":"<p>Information about a tag.</p>"
    },
    "TagFilter":{
      "type":"structure",
      "members":{
        "Key":{
          "shape":"Key",
          "documentation":"<p>The on-premises instance tag filter key.</p>"
        },
        "Value":{
          "shape":"Value",
          "documentation":"<p>The on-premises instance tag filter value.</p>"
        },
        "Type":{
          "shape":"TagFilterType",
          "documentation":"<p>The on-premises instance tag filter type:</p> <ul> <li>KEY_ONLY: Key only.</li> <li>VALUE_ONLY: Value only.</li> <li>KEY_AND_VALUE: Key and value.</li> </ul>"
        }
      },
      "documentation":"<p>Information about an on-premises instance tag filter.</p>"
    },
    "TagFilterList":{
      "type":"list",
      "member":{"shape":"TagFilter"}
    },
    "TagFilterType":{
      "type":"string",
      "enum":[
        "KEY_ONLY",
        "VALUE_ONLY",
        "KEY_AND_VALUE"
      ]
    },
    "TagLimitExceededException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>The maximum allowed number of tags was exceeded.</p>"
    },
    "TagList":{
      "type":"list",
      "member":{"shape":"Tag"}
    },
    "TagRequiredException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>A tag was not specified.</p>"
    },
    "TimeRange":{
      "type":"structure",
      "members":{
        "start":{
          "shape":"Timestamp",
          "documentation":"<p>The time range's start time.</p> <note>Specify null to leave the time range's start time open-ended.</note>"
        },
        "end":{
          "shape":"Timestamp",
          "documentation":"<p>The time range's end time.</p> <note>Specify null to leave the time range's end time open-ended.</note>"
        }
      },
      "documentation":"<p>Information about a time range.</p>"
    },
    "Timestamp":{"type":"timestamp"},
    "UpdateApplicationInput":{
      "type":"structure",
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The current name of the application that you want to change.</p>"
        },
        "newApplicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The new name that you want to change the application to.</p>"
        }
      },
      "documentation":"<p>Represents the input of an update application operation.</p>"
    },
    "UpdateDeploymentGroupInput":{
      "type":"structure",
      "required":[
        "applicationName",
        "currentDeploymentGroupName"
      ],
      "members":{
        "applicationName":{
          "shape":"ApplicationName",
          "documentation":"<p>The application name corresponding to the deployment group to update.</p>"
        },
        "currentDeploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The current name of the existing deployment group.</p>"
        },
        "newDeploymentGroupName":{
          "shape":"DeploymentGroupName",
          "documentation":"<p>The new name of the deployment group, if you want to change it.</p>"
        },
        "deploymentConfigName":{
          "shape":"DeploymentConfigName",
          "documentation":"<p>The replacement deployment configuration name to use, if you want to change it.</p>"
        },
        "ec2TagFilters":{
          "shape":"EC2TagFilterList",
          "documentation":"<p>The replacement set of Amazon EC2 tags to filter on, if you want to change them.</p>"
        },
        "onPremisesInstanceTagFilters":{
          "shape":"TagFilterList",
          "documentation":"<p>The replacement set of on-premises instance tags for filter on, if you want to change them.</p>"
        },
        "autoScalingGroups":{
          "shape":"AutoScalingGroupNameList",
          "documentation":"<p>The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them.</p>"
        },
        "serviceRoleArn":{
          "shape":"Role",
          "documentation":"<p>A replacement service role's ARN, if you want to change it.</p>"
        }
      },
      "documentation":"<p>Represents the input of an update deployment group operation.</p>"
    },
    "UpdateDeploymentGroupOutput":{
      "type":"structure",
      "members":{
        "hooksNotCleanedUp":{
          "shape":"AutoScalingGroupList",
          "documentation":"<p>If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the AWS account. If the output does contain data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the AWS account.</p>"
        }
      },
      "documentation":"<p>Represents the output of an update deployment group operation.</p>"
    },
    "Value":{"type":"string"},
    "VersionId":{"type":"string"}
  }
}
