diff planemo/lib/python3.7/site-packages/boto/codedeploy/layer1.py @ 0:d30785e31577 draft

"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author guerler
date Fri, 31 Jul 2020 00:18:57 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/planemo/lib/python3.7/site-packages/boto/codedeploy/layer1.py	Fri Jul 31 00:18:57 2020 -0400
@@ -0,0 +1,899 @@
+# Copyright (c) 2015 Amazon.com, Inc. or its affiliates.  All Rights Reserved
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish, dis-
+# tribute, sublicense, and/or sell copies of the Software, and to permit
+# persons to whom the Software is furnished to do so, subject to the fol-
+# lowing conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+
+import boto
+from boto.compat import json
+from boto.connection import AWSQueryConnection
+from boto.regioninfo import RegionInfo
+from boto.exception import JSONResponseError
+from boto.codedeploy import exceptions
+
+
+class CodeDeployConnection(AWSQueryConnection):
+    """
+    AWS CodeDeploy **Overview**
+    This is the AWS CodeDeploy API Reference. This guide provides
+    descriptions of the AWS CodeDeploy APIs. For additional
+    information, see the `AWS CodeDeploy User Guide`_.
+    **Using the APIs**
+    You can use the AWS CodeDeploy APIs to work with the following
+    items:
+
+
+    + Applications , which 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. You can work with applications by
+      calling CreateApplication, DeleteApplication, GetApplication,
+      ListApplications, BatchGetApplications, and UpdateApplication to
+      create, delete, and get information about applications, and to
+      change information about an application, respectively.
+    + Deployment configurations , which are sets of deployment rules
+      and deployment success and failure conditions that AWS CodeDeploy
+      uses during deployments. You can work with deployment
+      configurations by calling CreateDeploymentConfig,
+      DeleteDeploymentConfig, GetDeploymentConfig, and
+      ListDeploymentConfigs to create, delete, and get information about
+      deployment configurations, respectively.
+    + Deployment groups , which represent groups of Amazon EC2
+      instances to which application revisions can be deployed. You can
+      work with deployment groups by calling CreateDeploymentGroup,
+      DeleteDeploymentGroup, GetDeploymentGroup, ListDeploymentGroups,
+      and UpdateDeploymentGroup to create, delete, and get information
+      about single and multiple deployment groups, and to change
+      information about a deployment group, respectively.
+    + Deployment instances (also known simply as instances ), which
+      represent Amazon EC2 instances to which application revisions are
+      deployed. Deployment instances are identified by their Amazon EC2
+      tags or Auto Scaling group names. Deployment instances belong to
+      deployment groups. You can work with deployment instances by
+      calling GetDeploymentInstance and ListDeploymentInstances to get
+      information about single and multiple deployment instances,
+      respectively.
+    + Deployments , which represent the process of deploying revisions
+      to deployment groups. You can work with deployments by calling
+      CreateDeployment, GetDeployment, ListDeployments,
+      BatchGetDeployments, and StopDeployment to create and get
+      information about deployments, and to stop a deployment,
+      respectively.
+    + Application revisions (also known simply as revisions ), which
+      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. Application
+      revisions are deployed to deployment groups. You can work with
+      application revisions by calling GetApplicationRevision,
+      ListApplicationRevisions, and RegisterApplicationRevision to get
+      information about application revisions and to inform AWS
+      CodeDeploy about an application revision, respectively.
+    """
+    APIVersion = "2014-10-06"
+    DefaultRegionName = "us-east-1"
+    DefaultRegionEndpoint = "codedeploy.us-east-1.amazonaws.com"
+    ServiceName = "codedeploy"
+    TargetPrefix = "CodeDeploy_20141006"
+    ResponseError = JSONResponseError
+
+    _faults = {
+        "InvalidDeploymentIdException": exceptions.InvalidDeploymentIdException,
+        "InvalidDeploymentGroupNameException": exceptions.InvalidDeploymentGroupNameException,
+        "DeploymentConfigAlreadyExistsException": exceptions.DeploymentConfigAlreadyExistsException,
+        "InvalidRoleException": exceptions.InvalidRoleException,
+        "RoleRequiredException": exceptions.RoleRequiredException,
+        "DeploymentGroupAlreadyExistsException": exceptions.DeploymentGroupAlreadyExistsException,
+        "DeploymentConfigLimitExceededException": exceptions.DeploymentConfigLimitExceededException,
+        "InvalidNextTokenException": exceptions.InvalidNextTokenException,
+        "InvalidDeploymentConfigNameException": exceptions.InvalidDeploymentConfigNameException,
+        "InvalidSortByException": exceptions.InvalidSortByException,
+        "InstanceDoesNotExistException": exceptions.InstanceDoesNotExistException,
+        "InvalidMinimumHealthyHostValueException": exceptions.InvalidMinimumHealthyHostValueException,
+        "ApplicationLimitExceededException": exceptions.ApplicationLimitExceededException,
+        "ApplicationNameRequiredException": exceptions.ApplicationNameRequiredException,
+        "InvalidEC2TagException": exceptions.InvalidEC2TagException,
+        "DeploymentDoesNotExistException": exceptions.DeploymentDoesNotExistException,
+        "DeploymentLimitExceededException": exceptions.DeploymentLimitExceededException,
+        "InvalidInstanceStatusException": exceptions.InvalidInstanceStatusException,
+        "RevisionRequiredException": exceptions.RevisionRequiredException,
+        "InvalidBucketNameFilterException": exceptions.InvalidBucketNameFilterException,
+        "DeploymentGroupLimitExceededException": exceptions.DeploymentGroupLimitExceededException,
+        "DeploymentGroupDoesNotExistException": exceptions.DeploymentGroupDoesNotExistException,
+        "DeploymentConfigNameRequiredException": exceptions.DeploymentConfigNameRequiredException,
+        "DeploymentAlreadyCompletedException": exceptions.DeploymentAlreadyCompletedException,
+        "RevisionDoesNotExistException": exceptions.RevisionDoesNotExistException,
+        "DeploymentGroupNameRequiredException": exceptions.DeploymentGroupNameRequiredException,
+        "DeploymentIdRequiredException": exceptions.DeploymentIdRequiredException,
+        "DeploymentConfigDoesNotExistException": exceptions.DeploymentConfigDoesNotExistException,
+        "BucketNameFilterRequiredException": exceptions.BucketNameFilterRequiredException,
+        "InvalidTimeRangeException": exceptions.InvalidTimeRangeException,
+        "ApplicationDoesNotExistException": exceptions.ApplicationDoesNotExistException,
+        "InvalidRevisionException": exceptions.InvalidRevisionException,
+        "InvalidSortOrderException": exceptions.InvalidSortOrderException,
+        "InvalidOperationException": exceptions.InvalidOperationException,
+        "InvalidAutoScalingGroupException": exceptions.InvalidAutoScalingGroupException,
+        "InvalidApplicationNameException": exceptions.InvalidApplicationNameException,
+        "DescriptionTooLongException": exceptions.DescriptionTooLongException,
+        "ApplicationAlreadyExistsException": exceptions.ApplicationAlreadyExistsException,
+        "InvalidDeployedStateFilterException": exceptions.InvalidDeployedStateFilterException,
+        "DeploymentNotStartedException": exceptions.DeploymentNotStartedException,
+        "DeploymentConfigInUseException": exceptions.DeploymentConfigInUseException,
+        "InstanceIdRequiredException": exceptions.InstanceIdRequiredException,
+        "InvalidKeyPrefixFilterException": exceptions.InvalidKeyPrefixFilterException,
+        "InvalidDeploymentStatusException": exceptions.InvalidDeploymentStatusException,
+    }
+
+
+    def __init__(self, **kwargs):
+        region = kwargs.pop('region', None)
+        if not region:
+            region = RegionInfo(self, self.DefaultRegionName,
+                                self.DefaultRegionEndpoint)
+
+        if 'host' not in kwargs or kwargs['host'] is None:
+            kwargs['host'] = region.endpoint
+
+        super(CodeDeployConnection, self).__init__(**kwargs)
+        self.region = region
+
+    def _required_auth_capability(self):
+        return ['hmac-v4']
+
+    def batch_get_applications(self, application_names=None):
+        """
+        Gets information about one or more applications.
+
+        :type application_names: list
+        :param application_names: A list of application names, with multiple
+            application names separated by spaces.
+
+        """
+        params = {}
+        if application_names is not None:
+            params['applicationNames'] = application_names
+        return self.make_request(action='BatchGetApplications',
+                                 body=json.dumps(params))
+
+    def batch_get_deployments(self, deployment_ids=None):
+        """
+        Gets information about one or more deployments.
+
+        :type deployment_ids: list
+        :param deployment_ids: A list of deployment IDs, with multiple
+            deployment IDs separated by spaces.
+
+        """
+        params = {}
+        if deployment_ids is not None:
+            params['deploymentIds'] = deployment_ids
+        return self.make_request(action='BatchGetDeployments',
+                                 body=json.dumps(params))
+
+    def create_application(self, application_name):
+        """
+        Creates a new application.
+
+        :type application_name: string
+        :param application_name: The name of the application. This name must be
+            unique within the AWS user account.
+
+        """
+        params = {'applicationName': application_name, }
+        return self.make_request(action='CreateApplication',
+                                 body=json.dumps(params))
+
+    def create_deployment(self, application_name, deployment_group_name=None,
+                          revision=None, deployment_config_name=None,
+                          description=None,
+                          ignore_application_stop_failures=None):
+        """
+        Deploys an application revision to the specified deployment
+        group.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type deployment_group_name: string
+        :param deployment_group_name: The deployment group's name.
+
+        :type revision: dict
+        :param revision: The type of revision to deploy, along with information
+            about the revision's location.
+
+        :type deployment_config_name: string
+        :param deployment_config_name: The name of an existing deployment
+            configuration within the AWS user account.
+        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.
+
+        :type description: string
+        :param description: A comment about the deployment.
+
+        :type ignore_application_stop_failures: boolean
+        :param ignore_application_stop_failures: 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.
+        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.
+
+        """
+        params = {'applicationName': application_name, }
+        if deployment_group_name is not None:
+            params['deploymentGroupName'] = deployment_group_name
+        if revision is not None:
+            params['revision'] = revision
+        if deployment_config_name is not None:
+            params['deploymentConfigName'] = deployment_config_name
+        if description is not None:
+            params['description'] = description
+        if ignore_application_stop_failures is not None:
+            params['ignoreApplicationStopFailures'] = ignore_application_stop_failures
+        return self.make_request(action='CreateDeployment',
+                                 body=json.dumps(params))
+
+    def create_deployment_config(self, deployment_config_name,
+                                 minimum_healthy_hosts=None):
+        """
+        Creates a new deployment configuration.
+
+        :type deployment_config_name: string
+        :param deployment_config_name: The name of the deployment configuration
+            to create.
+
+        :type minimum_healthy_hosts: dict
+        :param minimum_healthy_hosts: 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.
+        The type parameter takes either of the following values:
+
+
+        + HOST_COUNT: The value parameter represents the minimum number of
+              healthy instances, as an absolute value.
+        + 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.
+
+
+        The value parameter takes an integer.
+
+        For example, to set a minimum of 95% healthy instances, specify a type
+            of FLEET_PERCENT and a value of 95.
+
+        """
+        params = {'deploymentConfigName': deployment_config_name, }
+        if minimum_healthy_hosts is not None:
+            params['minimumHealthyHosts'] = minimum_healthy_hosts
+        return self.make_request(action='CreateDeploymentConfig',
+                                 body=json.dumps(params))
+
+    def create_deployment_group(self, application_name,
+                                deployment_group_name,
+                                deployment_config_name=None,
+                                ec_2_tag_filters=None,
+                                auto_scaling_groups=None,
+                                service_role_arn=None):
+        """
+        Creates a new deployment group for application revisions to be
+        deployed to.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type deployment_group_name: string
+        :param deployment_group_name: The name of an existing deployment group
+            for the specified application.
+
+        :type deployment_config_name: string
+        :param deployment_config_name: If specified, the deployment
+            configuration name must be one of the predefined values, or it can
+            be a custom deployment configuration:
+
+        + CodeDeployDefault.AllAtOnce deploys an application revision to up to
+              all of the Amazon EC2 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.
+        + 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.
+        + 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 instance. 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.
+
+
+        To create a custom deployment configuration, call the create deployment
+            configuration operation.
+
+        :type ec_2_tag_filters: list
+        :param ec_2_tag_filters: The Amazon EC2 tags to filter on.
+
+        :type auto_scaling_groups: list
+        :param auto_scaling_groups: A list of associated Auto Scaling groups.
+
+        :type service_role_arn: string
+        :param service_role_arn: A service role ARN that allows AWS CodeDeploy
+            to act on the user's behalf when interacting with AWS services.
+
+        """
+        params = {
+            'applicationName': application_name,
+            'deploymentGroupName': deployment_group_name,
+        }
+        if deployment_config_name is not None:
+            params['deploymentConfigName'] = deployment_config_name
+        if ec_2_tag_filters is not None:
+            params['ec2TagFilters'] = ec_2_tag_filters
+        if auto_scaling_groups is not None:
+            params['autoScalingGroups'] = auto_scaling_groups
+        if service_role_arn is not None:
+            params['serviceRoleArn'] = service_role_arn
+        return self.make_request(action='CreateDeploymentGroup',
+                                 body=json.dumps(params))
+
+    def delete_application(self, application_name):
+        """
+        Deletes an application.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        """
+        params = {'applicationName': application_name, }
+        return self.make_request(action='DeleteApplication',
+                                 body=json.dumps(params))
+
+    def delete_deployment_config(self, deployment_config_name):
+        """
+        Deletes a deployment configuration.
+
+        A deployment configuration cannot be deleted if it is
+        currently in use. Also, predefined configurations cannot be
+        deleted.
+
+        :type deployment_config_name: string
+        :param deployment_config_name: The name of an existing deployment
+            configuration within the AWS user account.
+
+        """
+        params = {'deploymentConfigName': deployment_config_name, }
+        return self.make_request(action='DeleteDeploymentConfig',
+                                 body=json.dumps(params))
+
+    def delete_deployment_group(self, application_name,
+                                deployment_group_name):
+        """
+        Deletes a deployment group.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type deployment_group_name: string
+        :param deployment_group_name: The name of an existing deployment group
+            for the specified application.
+
+        """
+        params = {
+            'applicationName': application_name,
+            'deploymentGroupName': deployment_group_name,
+        }
+        return self.make_request(action='DeleteDeploymentGroup',
+                                 body=json.dumps(params))
+
+    def get_application(self, application_name):
+        """
+        Gets information about an application.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        """
+        params = {'applicationName': application_name, }
+        return self.make_request(action='GetApplication',
+                                 body=json.dumps(params))
+
+    def get_application_revision(self, application_name, revision):
+        """
+        Gets information about an application revision.
+
+        :type application_name: string
+        :param application_name: The name of the application that corresponds
+            to the revision.
+
+        :type revision: dict
+        :param revision: Information about the application revision to get,
+            including the revision's type and its location.
+
+        """
+        params = {
+            'applicationName': application_name,
+            'revision': revision,
+        }
+        return self.make_request(action='GetApplicationRevision',
+                                 body=json.dumps(params))
+
+    def get_deployment(self, deployment_id):
+        """
+        Gets information about a deployment.
+
+        :type deployment_id: string
+        :param deployment_id: An existing deployment ID within the AWS user
+            account.
+
+        """
+        params = {'deploymentId': deployment_id, }
+        return self.make_request(action='GetDeployment',
+                                 body=json.dumps(params))
+
+    def get_deployment_config(self, deployment_config_name):
+        """
+        Gets information about a deployment configuration.
+
+        :type deployment_config_name: string
+        :param deployment_config_name: The name of an existing deployment
+            configuration within the AWS user account.
+
+        """
+        params = {'deploymentConfigName': deployment_config_name, }
+        return self.make_request(action='GetDeploymentConfig',
+                                 body=json.dumps(params))
+
+    def get_deployment_group(self, application_name, deployment_group_name):
+        """
+        Gets information about a deployment group.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type deployment_group_name: string
+        :param deployment_group_name: The name of an existing deployment group
+            for the specified application.
+
+        """
+        params = {
+            'applicationName': application_name,
+            'deploymentGroupName': deployment_group_name,
+        }
+        return self.make_request(action='GetDeploymentGroup',
+                                 body=json.dumps(params))
+
+    def get_deployment_instance(self, deployment_id, instance_id):
+        """
+        Gets information about an Amazon EC2 instance as part of a
+        deployment.
+
+        :type deployment_id: string
+        :param deployment_id: The unique ID of a deployment.
+
+        :type instance_id: string
+        :param instance_id: The unique ID of an Amazon EC2 instance in the
+            deployment's deployment group.
+
+        """
+        params = {
+            'deploymentId': deployment_id,
+            'instanceId': instance_id,
+        }
+        return self.make_request(action='GetDeploymentInstance',
+                                 body=json.dumps(params))
+
+    def list_application_revisions(self, application_name, sort_by=None,
+                                   sort_order=None, s_3_bucket=None,
+                                   s_3_key_prefix=None, deployed=None,
+                                   next_token=None):
+        """
+        Lists information about revisions for an application.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type sort_by: string
+        :param sort_by: The column name to sort the list results by:
+
+        + registerTime: Sort the list results by when the revisions were
+              registered with AWS CodeDeploy.
+        + firstUsedTime: Sort the list results by when the revisions were first
+              used by in a deployment.
+        + lastUsedTime: Sort the list results by when the revisions were last
+              used in a deployment.
+
+
+        If not specified or set to null, the results will be returned in an
+            arbitrary order.
+
+        :type sort_order: string
+        :param sort_order: The order to sort the list results by:
+
+        + ascending: Sort the list results in ascending order.
+        + descending: Sort the list results in descending order.
+
+
+        If not specified, the results will be sorted in ascending order.
+
+        If set to null, the results will be sorted in an arbitrary order.
+
+        :type s_3_bucket: string
+        :param s_3_bucket: A specific Amazon S3 bucket name to limit the search
+            for revisions.
+        If set to null, then all of the user's buckets will be searched.
+
+        :type s_3_key_prefix: string
+        :param s_3_key_prefix: A specific key prefix for the set of Amazon S3
+            objects to limit the search for revisions.
+
+        :type deployed: string
+        :param deployed:
+        Whether to list revisions based on whether the revision is the target
+            revision of an deployment group:
+
+
+        + include: List revisions that are target revisions of a deployment
+              group.
+        + exclude: Do not list revisions that are target revisions of a
+              deployment group.
+        + ignore: List all revisions, regardless of whether they are target
+              revisions of a deployment group.
+
+        :type next_token: string
+        :param next_token: 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.
+
+        """
+        params = {'applicationName': application_name, }
+        if sort_by is not None:
+            params['sortBy'] = sort_by
+        if sort_order is not None:
+            params['sortOrder'] = sort_order
+        if s_3_bucket is not None:
+            params['s3Bucket'] = s_3_bucket
+        if s_3_key_prefix is not None:
+            params['s3KeyPrefix'] = s_3_key_prefix
+        if deployed is not None:
+            params['deployed'] = deployed
+        if next_token is not None:
+            params['nextToken'] = next_token
+        return self.make_request(action='ListApplicationRevisions',
+                                 body=json.dumps(params))
+
+    def list_applications(self, next_token=None):
+        """
+        Lists the applications registered within the AWS user account.
+
+        :type next_token: string
+        :param next_token: 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.
+
+        """
+        params = {}
+        if next_token is not None:
+            params['nextToken'] = next_token
+        return self.make_request(action='ListApplications',
+                                 body=json.dumps(params))
+
+    def list_deployment_configs(self, next_token=None):
+        """
+        Lists the deployment configurations within the AWS user
+        account.
+
+        :type next_token: string
+        :param next_token: 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.
+
+        """
+        params = {}
+        if next_token is not None:
+            params['nextToken'] = next_token
+        return self.make_request(action='ListDeploymentConfigs',
+                                 body=json.dumps(params))
+
+    def list_deployment_groups(self, application_name, next_token=None):
+        """
+        Lists the deployment groups for an application registered
+        within the AWS user account.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type next_token: string
+        :param next_token: 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.
+
+        """
+        params = {'applicationName': application_name, }
+        if next_token is not None:
+            params['nextToken'] = next_token
+        return self.make_request(action='ListDeploymentGroups',
+                                 body=json.dumps(params))
+
+    def list_deployment_instances(self, deployment_id, next_token=None,
+                                  instance_status_filter=None):
+        """
+        Lists the Amazon EC2 instances for a deployment within the AWS
+        user account.
+
+        :type deployment_id: string
+        :param deployment_id: The unique ID of a deployment.
+
+        :type next_token: string
+        :param next_token: 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.
+
+        :type instance_status_filter: list
+        :param instance_status_filter:
+        A subset of instances to list, by status:
+
+
+        + Pending: Include in the resulting list those instances with pending
+              deployments.
+        + InProgress: Include in the resulting list those instances with in-
+              progress deployments.
+        + Succeeded: Include in the resulting list those instances with
+              succeeded deployments.
+        + Failed: Include in the resulting list those instances with failed
+              deployments.
+        + Skipped: Include in the resulting list those instances with skipped
+              deployments.
+        + Unknown: Include in the resulting list those instances with
+              deployments in an unknown state.
+
+        """
+        params = {'deploymentId': deployment_id, }
+        if next_token is not None:
+            params['nextToken'] = next_token
+        if instance_status_filter is not None:
+            params['instanceStatusFilter'] = instance_status_filter
+        return self.make_request(action='ListDeploymentInstances',
+                                 body=json.dumps(params))
+
+    def list_deployments(self, application_name=None,
+                         deployment_group_name=None,
+                         include_only_statuses=None, create_time_range=None,
+                         next_token=None):
+        """
+        Lists the deployments under a deployment group for an
+        application registered within the AWS user account.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type deployment_group_name: string
+        :param deployment_group_name: The name of an existing deployment group
+            for the specified application.
+
+        :type include_only_statuses: list
+        :param include_only_statuses: A subset of deployments to list, by
+            status:
+
+        + Created: Include in the resulting list created deployments.
+        + Queued: Include in the resulting list queued deployments.
+        + In Progress: Include in the resulting list in-progress deployments.
+        + Succeeded: Include in the resulting list succeeded deployments.
+        + Failed: Include in the resulting list failed deployments.
+        + Aborted: Include in the resulting list aborted deployments.
+
+        :type create_time_range: dict
+        :param create_time_range: A deployment creation start- and end-time
+            range for returning a subset of the list of deployments.
+
+        :type next_token: string
+        :param next_token: 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.
+
+        """
+        params = {}
+        if application_name is not None:
+            params['applicationName'] = application_name
+        if deployment_group_name is not None:
+            params['deploymentGroupName'] = deployment_group_name
+        if include_only_statuses is not None:
+            params['includeOnlyStatuses'] = include_only_statuses
+        if create_time_range is not None:
+            params['createTimeRange'] = create_time_range
+        if next_token is not None:
+            params['nextToken'] = next_token
+        return self.make_request(action='ListDeployments',
+                                 body=json.dumps(params))
+
+    def register_application_revision(self, application_name, revision,
+                                      description=None):
+        """
+        Registers with AWS CodeDeploy a revision for the specified
+        application.
+
+        :type application_name: string
+        :param application_name: The name of an existing AWS CodeDeploy
+            application within the AWS user account.
+
+        :type description: string
+        :param description: A comment about the revision.
+
+        :type revision: dict
+        :param revision: Information about the application revision to
+            register, including the revision's type and its location.
+
+        """
+        params = {
+            'applicationName': application_name,
+            'revision': revision,
+        }
+        if description is not None:
+            params['description'] = description
+        return self.make_request(action='RegisterApplicationRevision',
+                                 body=json.dumps(params))
+
+    def stop_deployment(self, deployment_id):
+        """
+        Attempts to stop an ongoing deployment.
+
+        :type deployment_id: string
+        :param deployment_id: The unique ID of a deployment.
+
+        """
+        params = {'deploymentId': deployment_id, }
+        return self.make_request(action='StopDeployment',
+                                 body=json.dumps(params))
+
+    def update_application(self, application_name=None,
+                           new_application_name=None):
+        """
+        Changes an existing application's name.
+
+        :type application_name: string
+        :param application_name: The current name of the application that you
+            want to change.
+
+        :type new_application_name: string
+        :param new_application_name: The new name that you want to change the
+            application to.
+
+        """
+        params = {}
+        if application_name is not None:
+            params['applicationName'] = application_name
+        if new_application_name is not None:
+            params['newApplicationName'] = new_application_name
+        return self.make_request(action='UpdateApplication',
+                                 body=json.dumps(params))
+
+    def update_deployment_group(self, application_name,
+                                current_deployment_group_name,
+                                new_deployment_group_name=None,
+                                deployment_config_name=None,
+                                ec_2_tag_filters=None,
+                                auto_scaling_groups=None,
+                                service_role_arn=None):
+        """
+        Changes information about an existing deployment group.
+
+        :type application_name: string
+        :param application_name: The application name corresponding to the
+            deployment group to update.
+
+        :type current_deployment_group_name: string
+        :param current_deployment_group_name: The current name of the existing
+            deployment group.
+
+        :type new_deployment_group_name: string
+        :param new_deployment_group_name: The new name of the deployment group,
+            if you want to change it.
+
+        :type deployment_config_name: string
+        :param deployment_config_name: The replacement deployment configuration
+            name to use, if you want to change it.
+
+        :type ec_2_tag_filters: list
+        :param ec_2_tag_filters: The replacement set of Amazon EC2 tags to
+            filter on, if you want to change them.
+
+        :type auto_scaling_groups: list
+        :param auto_scaling_groups: The replacement list of Auto Scaling groups
+            to be included in the deployment group, if you want to change them.
+
+        :type service_role_arn: string
+        :param service_role_arn: A replacement service role's ARN, if you want
+            to change it.
+
+        """
+        params = {
+            'applicationName': application_name,
+            'currentDeploymentGroupName': current_deployment_group_name,
+        }
+        if new_deployment_group_name is not None:
+            params['newDeploymentGroupName'] = new_deployment_group_name
+        if deployment_config_name is not None:
+            params['deploymentConfigName'] = deployment_config_name
+        if ec_2_tag_filters is not None:
+            params['ec2TagFilters'] = ec_2_tag_filters
+        if auto_scaling_groups is not None:
+            params['autoScalingGroups'] = auto_scaling_groups
+        if service_role_arn is not None:
+            params['serviceRoleArn'] = service_role_arn
+        return self.make_request(action='UpdateDeploymentGroup',
+                                 body=json.dumps(params))
+
+    def make_request(self, action, body):
+        headers = {
+            'X-Amz-Target': '%s.%s' % (self.TargetPrefix, action),
+            'Host': self.region.endpoint,
+            'Content-Type': 'application/x-amz-json-1.1',
+            'Content-Length': str(len(body)),
+        }
+        http_request = self.build_base_http_request(
+            method='POST', path='/', auth_path='/', params={},
+            headers=headers, data=body)
+        response = self._mexe(http_request, sender=None,
+                              override_num_retries=10)
+        response_body = response.read().decode('utf-8')
+        boto.log.debug(response_body)
+        if response.status == 200:
+            if response_body:
+                return json.loads(response_body)
+        else:
+            json_body = json.loads(response_body)
+            fault_name = json_body.get('__type', None)
+            exception_class = self._faults.get(fault_name, self.ResponseError)
+            raise exception_class(response.status, response.reason,
+                                  body=json_body)
+