diff env/lib/python3.7/site-packages/boto/beanstalk/layer1.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/beanstalk/layer1.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1202 +0,0 @@
-# Copyright (c) 2012 Mitch Garnaat http://garnaat.org/
-# Copyright (c) 2012 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
-import boto.jsonresponse
-from boto.compat import json
-from boto.regioninfo import RegionInfo
-from boto.connection import AWSQueryConnection
-
-
-class Layer1(AWSQueryConnection):
-
-    APIVersion = '2010-12-01'
-    DefaultRegionName = 'us-east-1'
-    DefaultRegionEndpoint = 'elasticbeanstalk.us-east-1.amazonaws.com'
-
-    def __init__(self, aws_access_key_id=None, aws_secret_access_key=None,
-                 is_secure=True, port=None,
-                 proxy=None, proxy_port=None,
-                 proxy_user=None, proxy_pass=None, debug=0,
-                 https_connection_factory=None, region=None, path='/',
-                 api_version=None, security_token=None, profile_name=None):
-        if not region:
-            region = RegionInfo(self, self.DefaultRegionName,
-                                self.DefaultRegionEndpoint)
-        self.region = region
-        super(Layer1, self).__init__(aws_access_key_id,
-                                    aws_secret_access_key,
-                                    is_secure, port, proxy, proxy_port,
-                                    proxy_user, proxy_pass,
-                                    self.region.endpoint, debug,
-                                    https_connection_factory, path,
-                                    security_token, profile_name=profile_name)
-
-    def _required_auth_capability(self):
-        return ['hmac-v4']
-
-    def _encode_bool(self, v):
-        v = bool(v)
-        return {True: "true", False: "false"}[v]
-
-    def _get_response(self, action, params, path='/', verb='GET'):
-        params['ContentType'] = 'JSON'
-        response = self.make_request(action, params, path, verb)
-        body = response.read().decode('utf-8')
-        boto.log.debug(body)
-        if response.status == 200:
-            return json.loads(body)
-        else:
-            raise self.ResponseError(response.status, response.reason, body)
-
-    def check_dns_availability(self, cname_prefix):
-        """Checks if the specified CNAME is available.
-
-        :type cname_prefix: string
-        :param cname_prefix: The prefix used when this CNAME is
-            reserved.
-        """
-        params = {'CNAMEPrefix': cname_prefix}
-        return self._get_response('CheckDNSAvailability', params)
-
-    def create_application(self, application_name, description=None):
-        """
-        Creates an application that has one configuration template
-        named default and no application versions.
-
-        :type application_name: string
-        :param application_name: The name of the application.
-            Constraint: This name must be unique within your account. If the
-            specified name already exists, the action returns an
-            InvalidParameterValue error.
-
-        :type description: string
-        :param description: Describes the application.
-
-        :raises: TooManyApplicationsException
-        """
-        params = {'ApplicationName': application_name}
-        if description:
-            params['Description'] = description
-        return self._get_response('CreateApplication', params)
-
-    def create_application_version(self, application_name, version_label,
-                                   description=None, s3_bucket=None,
-                                   s3_key=None, auto_create_application=None):
-        """Creates an application version for the specified application.
-
-        :type application_name: string
-        :param application_name: The name of the application. If no
-            application is found with this name, and AutoCreateApplication is
-            false, returns an InvalidParameterValue error.
-
-        :type version_label: string
-        :param version_label: A label identifying this version. Constraint:
-            Must be unique per application. If an application version already
-            exists with this label for the specified application, AWS Elastic
-            Beanstalk returns an InvalidParameterValue error.
-
-        :type description: string
-        :param description: Describes this version.
-
-        :type s3_bucket: string
-        :param s3_bucket: The Amazon S3 bucket where the data is located.
-
-        :type s3_key: string
-        :param s3_key: The Amazon S3 key where the data is located.  Both
-            s3_bucket and s3_key must be specified in order to use a specific
-            source bundle.  If both of these values are not specified the
-            sample application will be used.
-
-        :type auto_create_application: boolean
-        :param auto_create_application: Determines how the system behaves if
-            the specified application for this version does not already exist:
-            true: Automatically creates the specified application for this
-            version if it does not already exist.  false: Returns an
-            InvalidParameterValue if the specified application for this version
-            does not already exist.  Default: false  Valid Values: true | false
-
-        :raises: TooManyApplicationsException,
-                 TooManyApplicationVersionsException,
-                 InsufficientPrivilegesException,
-                 S3LocationNotInServiceRegionException
-
-        """
-        params = {'ApplicationName': application_name,
-                  'VersionLabel': version_label}
-        if description:
-            params['Description'] = description
-        if s3_bucket and s3_key:
-            params['SourceBundle.S3Bucket'] = s3_bucket
-            params['SourceBundle.S3Key'] = s3_key
-        if auto_create_application:
-            params['AutoCreateApplication'] = self._encode_bool(
-                auto_create_application)
-        return self._get_response('CreateApplicationVersion', params)
-
-    def create_configuration_template(self, application_name, template_name,
-                                      solution_stack_name=None,
-                                      source_configuration_application_name=None,
-                                      source_configuration_template_name=None,
-                                      environment_id=None, description=None,
-                                      option_settings=None):
-        """Creates a configuration template.
-
-        Templates are associated with a specific application and are used to
-        deploy different versions of the application with the same
-        configuration settings.
-
-        :type application_name: string
-        :param application_name: The name of the application to associate with
-            this configuration template. If no application is found with this
-            name, AWS Elastic Beanstalk returns an InvalidParameterValue error.
-
-        :type template_name: string
-        :param template_name: The name of the configuration template.
-            Constraint: This name must be unique per application.  Default: If
-            a configuration template already exists with this name, AWS Elastic
-            Beanstalk returns an InvalidParameterValue error.
-
-        :type solution_stack_name: string
-        :param solution_stack_name: The name of the solution stack used by this
-            configuration. The solution stack specifies the operating system,
-            architecture, and application server for a configuration template.
-            It determines the set of configuration options as well as the
-            possible and default values.  Use ListAvailableSolutionStacks to
-            obtain a list of available solution stacks.  Default: If the
-            SolutionStackName is not specified and the source configuration
-            parameter is blank, AWS Elastic Beanstalk uses the default solution
-            stack. If not specified and the source configuration parameter is
-            specified, AWS Elastic Beanstalk uses the same solution stack as
-            the source configuration template.
-
-        :type source_configuration_application_name: string
-        :param source_configuration_application_name: The name of the
-            application associated with the configuration.
-
-        :type source_configuration_template_name: string
-        :param source_configuration_template_name: The name of the
-            configuration template.
-
-        :type environment_id: string
-        :param environment_id: The ID of the environment used with this
-            configuration template.
-
-        :type description: string
-        :param description: Describes this configuration.
-
-        :type option_settings: list
-        :param option_settings: If specified, AWS Elastic Beanstalk sets the
-            specified configuration option to the requested value. The new
-            value overrides the value obtained from the solution stack or the
-            source configuration template.
-
-        :raises: InsufficientPrivilegesException,
-                 TooManyConfigurationTemplatesException
-        """
-        params = {'ApplicationName': application_name,
-                  'TemplateName': template_name}
-        if solution_stack_name:
-            params['SolutionStackName'] = solution_stack_name
-        if source_configuration_application_name:
-            params['SourceConfiguration.ApplicationName'] = source_configuration_application_name
-        if source_configuration_template_name:
-            params['SourceConfiguration.TemplateName'] = source_configuration_template_name
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if description:
-            params['Description'] = description
-        if option_settings:
-            self._build_list_params(params, option_settings,
-                                   'OptionSettings.member',
-                                   ('Namespace', 'OptionName', 'Value'))
-        return self._get_response('CreateConfigurationTemplate', params)
-
-    def create_environment(self, application_name, environment_name,
-                           version_label=None, template_name=None,
-                           solution_stack_name=None, cname_prefix=None,
-                           description=None, option_settings=None,
-                           options_to_remove=None, tier_name=None,
-                           tier_type=None, tier_version='1.0'):
-        """Launches an environment for the application using a configuration.
-
-        :type application_name: string
-        :param application_name: The name of the application that contains the
-            version to be deployed.  If no application is found with this name,
-            CreateEnvironment returns an InvalidParameterValue error.
-
-        :type environment_name: string
-        :param environment_name: A unique name for the deployment environment.
-            Used in the application URL. Constraint: Must be from 4 to 23
-            characters in length. The name can contain only letters, numbers,
-            and hyphens. It cannot start or end with a hyphen. This name must
-            be unique in your account. If the specified name already exists,
-            AWS Elastic Beanstalk returns an InvalidParameterValue error.
-            Default: If the CNAME parameter is not specified, the environment
-            name becomes part of the CNAME, and therefore part of the visible
-            URL for your application.
-
-        :type version_label: string
-        :param version_label: The name of the application version to deploy. If
-            the specified application has no associated application versions,
-            AWS Elastic Beanstalk UpdateEnvironment returns an
-            InvalidParameterValue error.  Default: If not specified, AWS
-            Elastic Beanstalk attempts to launch the most recently created
-            application version.
-
-        :type template_name: string
-        :param template_name: The name of the configuration template to
-            use in deployment. If no configuration template is found with this
-            name, AWS Elastic Beanstalk returns an InvalidParameterValue error.
-            Condition: You must specify either this parameter or a
-            SolutionStackName, but not both. If you specify both, AWS Elastic
-            Beanstalk returns an InvalidParameterCombination error. If you do
-            not specify either, AWS Elastic Beanstalk returns a
-            MissingRequiredParameter error.
-
-        :type solution_stack_name: string
-        :param solution_stack_name: This is an alternative to specifying a
-            configuration name. If specified, AWS Elastic Beanstalk sets the
-            configuration values to the default values associated with the
-            specified solution stack.  Condition: You must specify either this
-            or a TemplateName, but not both. If you specify both, AWS Elastic
-            Beanstalk returns an InvalidParameterCombination error. If you do
-            not specify either, AWS Elastic Beanstalk returns a
-            MissingRequiredParameter error.
-
-        :type cname_prefix: string
-        :param cname_prefix: If specified, the environment attempts to use this
-            value as the prefix for the CNAME. If not specified, the
-            environment uses the environment name.
-
-        :type description: string
-        :param description: Describes this environment.
-
-        :type option_settings: list
-        :param option_settings: If specified, AWS Elastic Beanstalk sets the
-            specified configuration options to the requested value in the
-            configuration set for the new environment. These override the
-            values obtained from the solution stack or the configuration
-            template.  Each element in the list is a tuple of (Namespace,
-            OptionName, Value), for example::
-
-                [('aws:autoscaling:launchconfiguration',
-                    'Ec2KeyName', 'mykeypair')]
-
-        :type options_to_remove: list
-        :param options_to_remove: A list of custom user-defined configuration
-            options to remove from the configuration set for this new
-            environment.
-
-        :type tier_name: string
-        :param tier_name: The name of the tier.  Valid values are
-            "WebServer" and "Worker". Defaults to "WebServer".
-            The ``tier_name`` and a ``tier_type`` parameters are
-            related and the values provided must be valid.
-            The possible combinations are:
-
-              * "WebServer" and "Standard" (the default)
-              * "Worker" and "SQS/HTTP"
-
-        :type tier_type: string
-        :param tier_type: The type of the tier.  Valid values are
-            "Standard" if ``tier_name`` is "WebServer" and "SQS/HTTP"
-            if ``tier_name`` is "Worker". Defaults to "Standard".
-
-        :type tier_version: string
-        :type tier_version: The version of the tier.  Valid values
-            currently are "1.0". Defaults to "1.0".
-
-        :raises: TooManyEnvironmentsException, InsufficientPrivilegesException
-
-        """
-        params = {'ApplicationName': application_name,
-                  'EnvironmentName': environment_name}
-        if version_label:
-            params['VersionLabel'] = version_label
-        if template_name:
-            params['TemplateName'] = template_name
-        if solution_stack_name:
-            params['SolutionStackName'] = solution_stack_name
-        if cname_prefix:
-            params['CNAMEPrefix'] = cname_prefix
-        if description:
-            params['Description'] = description
-        if option_settings:
-            self._build_list_params(params, option_settings,
-                                   'OptionSettings.member',
-                                   ('Namespace', 'OptionName', 'Value'))
-        if options_to_remove:
-            self.build_list_params(params, options_to_remove,
-                                   'OptionsToRemove.member')
-        if tier_name and tier_type and tier_version:
-            params['Tier.Name'] = tier_name
-            params['Tier.Type'] = tier_type
-            params['Tier.Version'] = tier_version
-        return self._get_response('CreateEnvironment', params)
-
-    def create_storage_location(self):
-        """
-        Creates the Amazon S3 storage location for the account.  This
-        location is used to store user log files.
-
-        :raises: TooManyBucketsException,
-                 S3SubscriptionRequiredException,
-                 InsufficientPrivilegesException
-
-        """
-        return self._get_response('CreateStorageLocation', params={})
-
-    def delete_application(self, application_name,
-                           terminate_env_by_force=None):
-        """
-        Deletes the specified application along with all associated
-        versions and configurations. The application versions will not
-        be deleted from your Amazon S3 bucket.
-
-        :type application_name: string
-        :param application_name: The name of the application to delete.
-
-        :type terminate_env_by_force: boolean
-        :param terminate_env_by_force: When set to true, running
-            environments will be terminated before deleting the application.
-
-        :raises: OperationInProgressException
-
-        """
-        params = {'ApplicationName': application_name}
-        if terminate_env_by_force:
-            params['TerminateEnvByForce'] = self._encode_bool(
-                terminate_env_by_force)
-        return self._get_response('DeleteApplication', params)
-
-    def delete_application_version(self, application_name, version_label,
-                                   delete_source_bundle=None):
-        """Deletes the specified version from the specified application.
-
-        :type application_name: string
-        :param application_name: The name of the application to delete
-            releases from.
-
-        :type version_label: string
-        :param version_label: The label of the version to delete.
-
-        :type delete_source_bundle: boolean
-        :param delete_source_bundle: Indicates whether to delete the
-            associated source bundle from Amazon S3.  Valid Values: true |
-            false
-
-        :raises: SourceBundleDeletionException,
-                 InsufficientPrivilegesException,
-                 OperationInProgressException,
-                 S3LocationNotInServiceRegionException
-        """
-        params = {'ApplicationName': application_name,
-                  'VersionLabel': version_label}
-        if delete_source_bundle:
-            params['DeleteSourceBundle'] = self._encode_bool(
-                delete_source_bundle)
-        return self._get_response('DeleteApplicationVersion', params)
-
-    def delete_configuration_template(self, application_name, template_name):
-        """Deletes the specified configuration template.
-
-        :type application_name: string
-        :param application_name: The name of the application to delete
-            the configuration template from.
-
-        :type template_name: string
-        :param template_name: The name of the configuration template to
-            delete.
-
-        :raises: OperationInProgressException
-
-        """
-        params = {'ApplicationName': application_name,
-                  'TemplateName': template_name}
-        return self._get_response('DeleteConfigurationTemplate', params)
-
-    def delete_environment_configuration(self, application_name,
-                                         environment_name):
-        """
-        Deletes the draft configuration associated with the running
-        environment.  Updating a running environment with any
-        configuration changes creates a draft configuration set. You can
-        get the draft configuration using DescribeConfigurationSettings
-        while the update is in progress or if the update fails. The
-        DeploymentStatus for the draft configuration indicates whether
-        the deployment is in process or has failed. The draft
-        configuration remains in existence until it is deleted with this
-        action.
-
-        :type application_name: string
-        :param application_name: The name of the application the
-            environment is associated with.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to delete
-            the draft configuration from.
-
-        """
-        params = {'ApplicationName': application_name,
-                  'EnvironmentName': environment_name}
-        return self._get_response('DeleteEnvironmentConfiguration', params)
-
-    def describe_application_versions(self, application_name=None,
-                                      version_labels=None):
-        """Returns descriptions for existing application versions.
-
-        :type application_name: string
-        :param application_name: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to only include ones that are associated
-            with the specified application.
-
-        :type version_labels: list
-        :param version_labels: If specified, restricts the returned
-            descriptions to only include ones that have the specified version
-            labels.
-
-        """
-        params = {}
-        if application_name:
-            params['ApplicationName'] = application_name
-        if version_labels:
-            self.build_list_params(params, version_labels,
-                                   'VersionLabels.member')
-        return self._get_response('DescribeApplicationVersions', params)
-
-    def describe_applications(self, application_names=None):
-        """Returns the descriptions of existing applications.
-
-        :type application_names: list
-        :param application_names: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to only include those with the specified
-            names.
-
-        """
-        params = {}
-        if application_names:
-            self.build_list_params(params, application_names,
-                                   'ApplicationNames.member')
-        return self._get_response('DescribeApplications', params)
-
-    def describe_configuration_options(self, application_name=None,
-                                       template_name=None,
-                                       environment_name=None,
-                                       solution_stack_name=None, options=None):
-        """Describes configuration options used in a template or environment.
-
-        Describes the configuration options that are used in a
-        particular configuration template or environment, or that a
-        specified solution stack defines. The description includes the
-        values the options, their default values, and an indication of
-        the required action on a running environment if an option value
-        is changed.
-
-        :type application_name: string
-        :param application_name: The name of the application associated with
-            the configuration template or environment. Only needed if you want
-            to describe the configuration options associated with either the
-            configuration template or environment.
-
-        :type template_name: string
-        :param template_name: The name of the configuration template whose
-            configuration options you want to describe.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment whose
-            configuration options you want to describe.
-
-        :type solution_stack_name: string
-        :param solution_stack_name: The name of the solution stack whose
-            configuration options you want to describe.
-
-        :type options: list
-        :param options: If specified, restricts the descriptions to only
-            the specified options.
-        """
-        params = {}
-        if application_name:
-            params['ApplicationName'] = application_name
-        if template_name:
-            params['TemplateName'] = template_name
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        if solution_stack_name:
-            params['SolutionStackName'] = solution_stack_name
-        if options:
-            self.build_list_params(params, options, 'Options.member')
-        return self._get_response('DescribeConfigurationOptions', params)
-
-    def describe_configuration_settings(self, application_name,
-                                        template_name=None,
-                                        environment_name=None):
-        """
-        Returns a description of the settings for the specified
-        configuration set, that is, either a configuration template or
-        the configuration set associated with a running environment.
-        When describing the settings for the configuration set
-        associated with a running environment, it is possible to receive
-        two sets of setting descriptions. One is the deployed
-        configuration set, and the other is a draft configuration of an
-        environment that is either in the process of deployment or that
-        failed to deploy.
-
-        :type application_name: string
-        :param application_name: The application for the environment or
-            configuration template.
-
-        :type template_name: string
-        :param template_name: The name of the configuration template to
-            describe.  Conditional: You must specify either this parameter or
-            an EnvironmentName, but not both. If you specify both, AWS Elastic
-            Beanstalk returns an InvalidParameterCombination error.  If you do
-            not specify either, AWS Elastic Beanstalk returns a
-            MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to describe.
-            Condition: You must specify either this or a TemplateName, but not
-            both. If you specify both, AWS Elastic Beanstalk returns an
-            InvalidParameterCombination error. If you do not specify either,
-            AWS Elastic Beanstalk returns MissingRequiredParameter error.
-        """
-        params = {'ApplicationName': application_name}
-        if template_name:
-            params['TemplateName'] = template_name
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        return self._get_response('DescribeConfigurationSettings', params)
-
-    def describe_environment_resources(self, environment_id=None,
-                                       environment_name=None):
-        """Returns AWS resources for this environment.
-
-        :type environment_id: string
-        :param environment_id: The ID of the environment to retrieve AWS
-            resource usage data.  Condition: You must specify either this or an
-            EnvironmentName, or both. If you do not specify either, AWS Elastic
-            Beanstalk returns MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to retrieve
-            AWS resource usage data.  Condition: You must specify either this
-            or an EnvironmentId, or both. If you do not specify either, AWS
-            Elastic Beanstalk returns MissingRequiredParameter error.
-
-        :raises: InsufficientPrivilegesException
-        """
-        params = {}
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        return self._get_response('DescribeEnvironmentResources', params)
-
-    def describe_environments(self, application_name=None, version_label=None,
-                              environment_ids=None, environment_names=None,
-                              include_deleted=None,
-                              included_deleted_back_to=None):
-        """Returns descriptions for existing environments.
-
-        :type application_name: string
-        :param application_name: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to include only those that are associated
-            with this application.
-
-        :type version_label: string
-        :param version_label: If specified, AWS Elastic Beanstalk restricts the
-            returned descriptions to include only those that are associated
-            with this application version.
-
-        :type environment_ids: list
-        :param environment_ids: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to include only those that have the
-            specified IDs.
-
-        :type environment_names: list
-        :param environment_names: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to include only those that have the
-            specified names.
-
-        :type include_deleted: boolean
-        :param include_deleted: Indicates whether to include deleted
-            environments:  true: Environments that have been deleted after
-            IncludedDeletedBackTo are displayed.  false: Do not include deleted
-            environments.
-
-        :type included_deleted_back_to: timestamp
-        :param included_deleted_back_to: If specified when IncludeDeleted is
-            set to true, then environments deleted after this date are
-            displayed.
-        """
-        params = {}
-        if application_name:
-            params['ApplicationName'] = application_name
-        if version_label:
-            params['VersionLabel'] = version_label
-        if environment_ids:
-            self.build_list_params(params, environment_ids,
-                                   'EnvironmentIds.member')
-        if environment_names:
-            self.build_list_params(params, environment_names,
-                                   'EnvironmentNames.member')
-        if include_deleted:
-            params['IncludeDeleted'] = self._encode_bool(include_deleted)
-        if included_deleted_back_to:
-            params['IncludedDeletedBackTo'] = included_deleted_back_to
-        return self._get_response('DescribeEnvironments', params)
-
-    def describe_events(self, application_name=None, version_label=None,
-                        template_name=None, environment_id=None,
-                        environment_name=None, request_id=None, severity=None,
-                        start_time=None, end_time=None, max_records=None,
-                        next_token=None):
-        """Returns event descriptions matching criteria up to the last 6 weeks.
-
-        :type application_name: string
-        :param application_name: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to include only those associated with
-            this application.
-
-        :type version_label: string
-        :param version_label: If specified, AWS Elastic Beanstalk restricts the
-            returned descriptions to those associated with this application
-            version.
-
-        :type template_name: string
-        :param template_name: If specified, AWS Elastic Beanstalk restricts the
-            returned descriptions to those that are associated with this
-            environment configuration.
-
-        :type environment_id: string
-        :param environment_id: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to those associated with this
-            environment.
-
-        :type environment_name: string
-        :param environment_name: If specified, AWS Elastic Beanstalk restricts
-            the returned descriptions to those associated with this
-            environment.
-
-        :type request_id: string
-        :param request_id: If specified, AWS Elastic Beanstalk restricts the
-            described events to include only those associated with this request
-            ID.
-
-        :type severity: string
-        :param severity: If specified, limits the events returned from this
-            call to include only those with the specified severity or higher.
-
-        :type start_time: timestamp
-        :param start_time: If specified, AWS Elastic Beanstalk restricts the
-            returned descriptions to those that occur on or after this time.
-
-        :type end_time: timestamp
-        :param end_time: If specified, AWS Elastic Beanstalk restricts the
-            returned descriptions to those that occur up to, but not including,
-            the EndTime.
-
-        :type max_records: integer
-        :param max_records: Specifies the maximum number of events that can be
-            returned, beginning with the most recent event.
-
-        :type next_token: string
-        :param next_token: Pagination token. If specified, the events return
-            the next batch of results.
-        """
-        params = {}
-        if application_name:
-            params['ApplicationName'] = application_name
-        if version_label:
-            params['VersionLabel'] = version_label
-        if template_name:
-            params['TemplateName'] = template_name
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        if request_id:
-            params['RequestId'] = request_id
-        if severity:
-            params['Severity'] = severity
-        if start_time:
-            params['StartTime'] = start_time
-        if end_time:
-            params['EndTime'] = end_time
-        if max_records:
-            params['MaxRecords'] = max_records
-        if next_token:
-            params['NextToken'] = next_token
-        return self._get_response('DescribeEvents', params)
-
-    def list_available_solution_stacks(self):
-        """Returns a list of the available solution stack names."""
-        return self._get_response('ListAvailableSolutionStacks', params={})
-
-    def rebuild_environment(self, environment_id=None, environment_name=None):
-        """
-        Deletes and recreates all of the AWS resources (for example:
-        the Auto Scaling group, load balancer, etc.) for a specified
-        environment and forces a restart.
-
-        :type environment_id: string
-        :param environment_id: The ID of the environment to rebuild.
-            Condition: You must specify either this or an EnvironmentName, or
-            both.  If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to rebuild.
-            Condition: You must specify either this or an EnvironmentId, or
-            both.  If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-
-        :raises InvalidParameterValue: If environment_name doesn't refer to a currently active environment
-        :raises: InsufficientPrivilegesException
-        """
-        params = {}
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        return self._get_response('RebuildEnvironment', params)
-
-    def request_environment_info(self, info_type='tail', environment_id=None,
-                                 environment_name=None):
-        """
-        Initiates a request to compile the specified type of
-        information of the deployed environment.  Setting the InfoType
-        to tail compiles the last lines from the application server log
-        files of every Amazon EC2 instance in your environment. Use
-        RetrieveEnvironmentInfo to access the compiled information.
-
-        :type info_type: string
-        :param info_type: The type of information to request.
-
-        :type environment_id: string
-        :param environment_id: The ID of the environment of the
-            requested data. If no such environment is found,
-            RequestEnvironmentInfo returns an InvalidParameterValue error.
-            Condition: You must specify either this or an EnvironmentName, or
-            both. If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment of the
-            requested data. If no such environment is found,
-            RequestEnvironmentInfo returns an InvalidParameterValue error.
-            Condition: You must specify either this or an EnvironmentId, or
-            both. If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-        """
-        params = {'InfoType': info_type}
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        return self._get_response('RequestEnvironmentInfo', params)
-
-    def restart_app_server(self, environment_id=None, environment_name=None):
-        """
-        Causes the environment to restart the application container
-        server running on each Amazon EC2 instance.
-
-        :type environment_id: string
-        :param environment_id: The ID of the environment to restart the server
-            for.  Condition: You must specify either this or an
-            EnvironmentName, or both. If you do not specify either, AWS Elastic
-            Beanstalk returns MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to restart the
-            server for.  Condition: You must specify either this or an
-            EnvironmentId, or both. If you do not specify either, AWS Elastic
-            Beanstalk returns MissingRequiredParameter error.
-        """
-        params = {}
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        return self._get_response('RestartAppServer', params)
-
-    def retrieve_environment_info(self, info_type='tail', environment_id=None,
-                                  environment_name=None):
-        """
-        Retrieves the compiled information from a RequestEnvironmentInfo
-        request.
-
-        :type info_type: string
-        :param info_type: The type of information to retrieve.
-
-        :type environment_id: string
-        :param environment_id: The ID of the data's environment. If no such
-            environment is found, returns an InvalidParameterValue error.
-            Condition: You must specify either this or an EnvironmentName, or
-            both.  If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the data's environment. If no such
-            environment is found, returns an InvalidParameterValue error.
-            Condition: You must specify either this or an EnvironmentId, or
-            both.  If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-        """
-        params = {'InfoType': info_type}
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        return self._get_response('RetrieveEnvironmentInfo', params)
-
-    def swap_environment_cnames(self, source_environment_id=None,
-                                source_environment_name=None,
-                                destination_environment_id=None,
-                                destination_environment_name=None):
-        """Swaps the CNAMEs of two environments.
-
-        :type source_environment_id: string
-        :param source_environment_id: The ID of the source environment.
-            Condition: You must specify at least the SourceEnvironmentID or the
-            SourceEnvironmentName. You may also specify both. If you specify
-            the SourceEnvironmentId, you must specify the
-            DestinationEnvironmentId.
-
-        :type source_environment_name: string
-        :param source_environment_name: The name of the source environment.
-            Condition: You must specify at least the SourceEnvironmentID or the
-            SourceEnvironmentName. You may also specify both. If you specify
-            the SourceEnvironmentName, you must specify the
-            DestinationEnvironmentName.
-
-        :type destination_environment_id: string
-        :param destination_environment_id: The ID of the destination
-            environment.  Condition: You must specify at least the
-            DestinationEnvironmentID or the DestinationEnvironmentName. You may
-            also specify both. You must specify the SourceEnvironmentId with
-            the DestinationEnvironmentId.
-
-        :type destination_environment_name: string
-        :param destination_environment_name: The name of the destination
-            environment.  Condition: You must specify at least the
-            DestinationEnvironmentID or the DestinationEnvironmentName. You may
-            also specify both. You must specify the SourceEnvironmentName with
-            the DestinationEnvironmentName.
-        """
-        params = {}
-        if source_environment_id:
-            params['SourceEnvironmentId'] = source_environment_id
-        if source_environment_name:
-            params['SourceEnvironmentName'] = source_environment_name
-        if destination_environment_id:
-            params['DestinationEnvironmentId'] = destination_environment_id
-        if destination_environment_name:
-            params['DestinationEnvironmentName'] = destination_environment_name
-        return self._get_response('SwapEnvironmentCNAMEs', params)
-
-    def terminate_environment(self, environment_id=None, environment_name=None,
-                              terminate_resources=None):
-        """Terminates the specified environment.
-
-        :type environment_id: string
-        :param environment_id: The ID of the environment to terminate.
-            Condition: You must specify either this or an EnvironmentName, or
-            both.  If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to terminate.
-            Condition: You must specify either this or an EnvironmentId, or
-            both.  If you do not specify either, AWS Elastic Beanstalk returns
-            MissingRequiredParameter error.
-
-        :type terminate_resources: boolean
-        :param terminate_resources: Indicates whether the associated AWS
-            resources should shut down when the environment is terminated:
-            true: (default) The user AWS resources (for example, the Auto
-            Scaling group, LoadBalancer, etc.) are terminated along with the
-            environment.  false: The environment is removed from the AWS
-            Elastic Beanstalk but the AWS resources continue to operate.  For
-            more information, see the  AWS Elastic Beanstalk User Guide.
-            Default: true  Valid Values: true | false
-
-        :raises: InsufficientPrivilegesException
-        """
-        params = {}
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        if terminate_resources:
-            params['TerminateResources'] = self._encode_bool(
-                terminate_resources)
-        return self._get_response('TerminateEnvironment', params)
-
-    def update_application(self, application_name, description=None):
-        """
-        Updates the specified application to have the specified
-        properties.
-
-        :type application_name: string
-        :param application_name: The name of the application to update.
-            If no such application is found, UpdateApplication returns an
-            InvalidParameterValue error.
-
-        :type description: string
-        :param description: A new description for the application.  Default: If
-            not specified, AWS Elastic Beanstalk does not update the
-            description.
-        """
-        params = {'ApplicationName': application_name}
-        if description:
-            params['Description'] = description
-        return self._get_response('UpdateApplication', params)
-
-    def update_application_version(self, application_name, version_label,
-                                   description=None):
-        """Updates the application version to have the properties.
-
-        :type application_name: string
-        :param application_name: The name of the application associated with
-            this version.  If no application is found with this name,
-            UpdateApplication returns an InvalidParameterValue error.
-
-        :type version_label: string
-        :param version_label: The name of the version to update. If no
-            application version is found with this label, UpdateApplication
-            returns an InvalidParameterValue error.
-
-        :type description: string
-        :param description: A new description for this release.
-        """
-        params = {'ApplicationName': application_name,
-                  'VersionLabel': version_label}
-        if description:
-            params['Description'] = description
-        return self._get_response('UpdateApplicationVersion', params)
-
-    def update_configuration_template(self, application_name, template_name,
-                                      description=None, option_settings=None,
-                                      options_to_remove=None):
-        """
-        Updates the specified configuration template to have the
-        specified properties or configuration option values.
-
-        :type application_name: string
-        :param application_name: The name of the application associated with
-            the configuration template to update. If no application is found
-            with this name, UpdateConfigurationTemplate returns an
-            InvalidParameterValue error.
-
-        :type template_name: string
-        :param template_name: The name of the configuration template to update.
-            If no configuration template is found with this name,
-            UpdateConfigurationTemplate returns an InvalidParameterValue error.
-
-        :type description: string
-        :param description: A new description for the configuration.
-
-        :type option_settings: list
-        :param option_settings: A list of configuration option settings to
-            update with the new specified option value.
-
-        :type options_to_remove: list
-        :param options_to_remove: A list of configuration options to remove
-            from the configuration set.  Constraint: You can remove only
-            UserDefined configuration options.
-
-        :raises: InsufficientPrivilegesException
-        """
-        params = {'ApplicationName': application_name,
-                  'TemplateName': template_name}
-        if description:
-            params['Description'] = description
-        if option_settings:
-            self._build_list_params(params, option_settings,
-                                   'OptionSettings.member',
-                                   ('Namespace', 'OptionName', 'Value'))
-        if options_to_remove:
-            self.build_list_params(params, options_to_remove,
-                                   'OptionsToRemove.member')
-        return self._get_response('UpdateConfigurationTemplate', params)
-
-    def update_environment(self, environment_id=None, environment_name=None,
-                           version_label=None, template_name=None,
-                           description=None, option_settings=None,
-                           options_to_remove=None, tier_name=None,
-                           tier_type=None, tier_version='1.0'):
-        """
-        Updates the environment description, deploys a new application
-        version, updates the configuration settings to an entirely new
-        configuration template, or updates select configuration option
-        values in the running environment.  Attempting to update both
-        the release and configuration is not allowed and AWS Elastic
-        Beanstalk returns an InvalidParameterCombination error.  When
-        updating the configuration settings to a new template or
-        individual settings, a draft configuration is created and
-        DescribeConfigurationSettings for this environment returns two
-        setting descriptions with different DeploymentStatus values.
-
-        :type environment_id: string
-        :param environment_id: The ID of the environment to update. If no
-            environment with this ID exists, AWS Elastic Beanstalk returns an
-            InvalidParameterValue error.  Condition: You must specify either
-            this or an EnvironmentName, or both. If you do not specify either,
-            AWS Elastic Beanstalk returns MissingRequiredParameter error.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to update.  If no
-            environment with this name exists, AWS Elastic Beanstalk returns an
-            InvalidParameterValue error.  Condition: You must specify either
-            this or an EnvironmentId, or both. If you do not specify either,
-            AWS Elastic Beanstalk returns MissingRequiredParameter error.
-
-        :type version_label: string
-        :param version_label: If this parameter is specified, AWS Elastic
-            Beanstalk deploys the named application version to the environment.
-            If no such application version is found, returns an
-            InvalidParameterValue error.
-
-        :type template_name: string
-        :param template_name: If this parameter is specified, AWS Elastic
-            Beanstalk deploys this configuration template to the environment.
-            If no such configuration template is found, AWS Elastic Beanstalk
-            returns an InvalidParameterValue error.
-
-        :type description: string
-        :param description: If this parameter is specified, AWS Elastic
-            Beanstalk updates the description of this environment.
-
-        :type option_settings: list
-        :param option_settings: If specified, AWS Elastic Beanstalk updates the
-            configuration set associated with the running environment and sets
-            the specified configuration options to the requested value.
-
-        :type options_to_remove: list
-        :param options_to_remove: A list of custom user-defined configuration
-            options to remove from the configuration set for this environment.
-
-        :type tier_name: string
-        :param tier_name: The name of the tier.  Valid values are
-            "WebServer" and "Worker". Defaults to "WebServer".
-            The ``tier_name`` and a ``tier_type`` parameters are
-            related and the values provided must be valid.
-            The possible combinations are:
-
-              * "WebServer" and "Standard" (the default)
-              * "Worker" and "SQS/HTTP"
-
-        :type tier_type: string
-        :param tier_type: The type of the tier.  Valid values are
-            "Standard" if ``tier_name`` is "WebServer" and "SQS/HTTP"
-            if ``tier_name`` is "Worker". Defaults to "Standard".
-
-        :type tier_version: string
-        :type tier_version: The version of the tier.  Valid values
-            currently are "1.0". Defaults to "1.0".
-
-        :raises: InsufficientPrivilegesException
-        """
-        params = {}
-        if environment_id:
-            params['EnvironmentId'] = environment_id
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        if version_label:
-            params['VersionLabel'] = version_label
-        if template_name:
-            params['TemplateName'] = template_name
-        if description:
-            params['Description'] = description
-        if option_settings:
-            self._build_list_params(params, option_settings,
-                                   'OptionSettings.member',
-                                   ('Namespace', 'OptionName', 'Value'))
-        if options_to_remove:
-            self.build_list_params(params, options_to_remove,
-                                   'OptionsToRemove.member')
-        if tier_name and tier_type and tier_version:
-            params['Tier.Name'] = tier_name
-            params['Tier.Type'] = tier_type
-            params['Tier.Version'] = tier_version
-        return self._get_response('UpdateEnvironment', params)
-
-    def validate_configuration_settings(self, application_name,
-                                        option_settings, template_name=None,
-                                        environment_name=None):
-        """
-        Takes a set of configuration settings and either a
-        configuration template or environment, and determines whether
-        those values are valid.  This action returns a list of messages
-        indicating any errors or warnings associated with the selection
-        of option values.
-
-        :type application_name: string
-        :param application_name: The name of the application that the
-            configuration template or environment belongs to.
-
-        :type template_name: string
-        :param template_name: The name of the configuration template to
-            validate the settings against.  Condition: You cannot specify both
-            this and an environment name.
-
-        :type environment_name: string
-        :param environment_name: The name of the environment to validate the
-            settings against.  Condition: You cannot specify both this and a
-            configuration template name.
-
-        :type option_settings: list
-        :param option_settings: A list of the options and desired values to
-            evaluate.
-
-        :raises: InsufficientPrivilegesException
-        """
-        params = {'ApplicationName': application_name}
-        self._build_list_params(params, option_settings,
-                               'OptionSettings.member',
-                               ('Namespace', 'OptionName', 'Value'))
-        if template_name:
-            params['TemplateName'] = template_name
-        if environment_name:
-            params['EnvironmentName'] = environment_name
-        return self._get_response('ValidateConfigurationSettings', params)
-
-    def _build_list_params(self, params, user_values, prefix, tuple_names):
-        # For params such as the ConfigurationOptionSettings,
-        # they can specify a list of tuples where each tuple maps to a specific
-        # arg.  For example:
-        # user_values = [('foo', 'bar', 'baz']
-        # prefix=MyOption.member
-        # tuple_names=('One', 'Two', 'Three')
-        # would result in:
-        # MyOption.member.1.One = foo
-        # MyOption.member.1.Two = bar
-        # MyOption.member.1.Three = baz
-        for i, user_value in enumerate(user_values, 1):
-            current_prefix = '%s.%s' % (prefix, i)
-            for key, value in zip(tuple_names, user_value):
-                full_key = '%s.%s' % (current_prefix, key)
-                params[full_key] = value