| Index: third_party/gsutil/boto/boto/beanstalk/layer1.py
|
| diff --git a/third_party/gsutil/boto/boto/beanstalk/layer1.py b/third_party/gsutil/boto/boto/beanstalk/layer1.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7ae180f3818460895f0b83fb37109ff3c4b422f9
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/boto/beanstalk/layer1.py
|
| @@ -0,0 +1,1153 @@
|
| +# 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 json
|
| +
|
| +import boto
|
| +import boto.jsonresponse
|
| +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):
|
| + if not region:
|
| + region = RegionInfo(self, self.DefaultRegionName,
|
| + self.DefaultRegionEndpoint)
|
| + self.region = region
|
| + AWSQueryConnection.__init__(self, 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)
|
| +
|
| + def _required_auth_capability(self):
|
| + return ['sign-v2']
|
| +
|
| + 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()
|
| + 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):
|
| + """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 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 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 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.
|
| +
|
| + :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')
|
| + 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: 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):
|
| + """
|
| + 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.
|
| +
|
| + :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')
|
| + 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
|
|
|