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 |