Index: tools/telemetry/third_party/gsutil/third_party/boto/boto/cloudsearch2/layer1.py |
diff --git a/tools/telemetry/third_party/gsutil/third_party/boto/boto/cloudsearch2/layer1.py b/tools/telemetry/third_party/gsutil/third_party/boto/boto/cloudsearch2/layer1.py |
deleted file mode 100644 |
index a39b08f585d0e56b3f5e2d3658f42abfbff05492..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/gsutil/third_party/boto/boto/cloudsearch2/layer1.py |
+++ /dev/null |
@@ -1,783 +0,0 @@ |
-# Copyright (c) 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved |
-# |
-# Permission is hereby granted, free of charge, to any person obtaining a |
-# copy of this software and associated documentation files (the |
-# "Software"), to deal in the Software without restriction, including |
-# without limitation the rights to use, copy, modify, merge, publish, dis- |
-# tribute, sublicense, and/or sell copies of the Software, and to permit |
-# persons to whom the Software is furnished to do so, subject to the fol- |
-# lowing conditions: |
-# |
-# The above copyright notice and this permission notice shall be included |
-# in all copies or substantial portions of the Software. |
-# |
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- |
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT |
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
-# IN THE SOFTWARE. |
-# |
- |
-import boto |
-from boto.compat import json |
-from boto.connection import AWSQueryConnection |
-from boto.regioninfo import RegionInfo |
-from boto.exception import JSONResponseError |
-from boto.cloudsearch2 import exceptions |
- |
- |
-class CloudSearchConnection(AWSQueryConnection): |
- """ |
- Amazon CloudSearch Configuration Service |
- You use the Amazon CloudSearch configuration service to create, |
- configure, and manage search domains. Configuration service |
- requests are submitted using the AWS Query protocol. AWS Query |
- requests are HTTP or HTTPS requests submitted via HTTP GET or POST |
- with a query parameter named Action. |
- |
- The endpoint for configuration service requests is region- |
- specific: cloudsearch. region .amazonaws.com. For example, |
- cloudsearch.us-east-1.amazonaws.com. For a current list of |
- supported regions and endpoints, see `Regions and Endpoints`_. |
- """ |
- APIVersion = "2013-01-01" |
- DefaultRegionName = "us-east-1" |
- DefaultRegionEndpoint = "cloudsearch.us-east-1.amazonaws.com" |
- ResponseError = JSONResponseError |
- |
- _faults = { |
- "InvalidTypeException": exceptions.InvalidTypeException, |
- "LimitExceededException": exceptions.LimitExceededException, |
- "InternalException": exceptions.InternalException, |
- "DisabledOperationException": exceptions.DisabledOperationException, |
- "ResourceNotFoundException": exceptions.ResourceNotFoundException, |
- "BaseException": exceptions.BaseException, |
- } |
- |
- def __init__(self, **kwargs): |
- region = kwargs.pop('region', None) |
- if not region: |
- region = RegionInfo(self, self.DefaultRegionName, |
- self.DefaultRegionEndpoint) |
- |
- if 'host' not in kwargs or kwargs['host'] is None: |
- kwargs['host'] = region.endpoint |
- |
- sign_request = kwargs.pop('sign_request', False) |
- self.sign_request = sign_request |
- |
- super(CloudSearchConnection, self).__init__(**kwargs) |
- self.region = region |
- |
- def _required_auth_capability(self): |
- return ['hmac-v4'] |
- |
- def build_suggesters(self, domain_name): |
- """ |
- Indexes the search suggestions. |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- """ |
- params = {'DomainName': domain_name, } |
- return self._make_request( |
- action='BuildSuggesters', |
- verb='POST', |
- path='/', params=params) |
- |
- def create_domain(self, domain_name): |
- """ |
- Creates a new search domain. For more information, see |
- `Creating a Search Domain`_ in the Amazon CloudSearch |
- Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A name for the domain you are creating. Allowed |
- characters are a-z (lower-case letters), 0-9, and hyphen (-). |
- Domain names must start with a letter or number and be at least 3 |
- and no more than 28 characters long. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- return self._make_request( |
- action='CreateDomain', |
- verb='POST', |
- path='/', params=params) |
- |
- def define_analysis_scheme(self, domain_name, analysis_scheme): |
- """ |
- Configures an analysis scheme that can be applied to a `text` |
- or `text-array` field to define language-specific text |
- processing options. For more information, see `Configuring |
- Analysis Schemes`_ in the Amazon CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type analysis_scheme: dict |
- :param analysis_scheme: Configuration information for an analysis |
- scheme. Each analysis scheme has a unique name and specifies the |
- language of the text to be processed. The following options can be |
- configured for an analysis scheme: `Synonyms`, `Stopwords`, |
- `StemmingDictionary`, and `AlgorithmicStemming`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- self.build_complex_param(params, 'AnalysisScheme', |
- analysis_scheme) |
- return self._make_request( |
- action='DefineAnalysisScheme', |
- verb='POST', |
- path='/', params=params) |
- |
- def define_expression(self, domain_name, expression): |
- """ |
- Configures an `Expression` for the search domain. Used to |
- create new expressions and modify existing ones. If the |
- expression exists, the new configuration replaces the old one. |
- For more information, see `Configuring Expressions`_ in the |
- Amazon CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type expression: dict |
- :param expression: A named expression that can be evaluated at search |
- time. Can be used to sort the search results, define other |
- expressions, or return computed information in the search results. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- self.build_complex_param(params, 'Expression', |
- expression) |
- return self._make_request( |
- action='DefineExpression', |
- verb='POST', |
- path='/', params=params) |
- |
- def define_index_field(self, domain_name, index_field): |
- """ |
- Configures an `IndexField` for the search domain. Used to |
- create new fields and modify existing ones. You must specify |
- the name of the domain you are configuring and an index field |
- configuration. The index field configuration specifies a |
- unique name, the index field type, and the options you want to |
- configure for the field. The options you can specify depend on |
- the `IndexFieldType`. If the field exists, the new |
- configuration replaces the old one. For more information, see |
- `Configuring Index Fields`_ in the Amazon CloudSearch |
- Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type index_field: dict |
- :param index_field: The index field and field options you want to |
- configure. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- self.build_complex_param(params, 'IndexField', |
- index_field) |
- return self._make_request( |
- action='DefineIndexField', |
- verb='POST', |
- path='/', params=params) |
- |
- def define_suggester(self, domain_name, suggester): |
- """ |
- Configures a suggester for a domain. A suggester enables you |
- to display possible matches before users finish typing their |
- queries. When you configure a suggester, you must specify the |
- name of the text field you want to search for possible matches |
- and a unique name for the suggester. For more information, see |
- `Getting Search Suggestions`_ in the Amazon CloudSearch |
- Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type suggester: dict |
- :param suggester: Configuration information for a search suggester. |
- Each suggester has a unique name and specifies the text field you |
- want to use for suggestions. The following options can be |
- configured for a suggester: `FuzzyMatching`, `SortExpression`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- self.build_complex_param(params, 'Suggester', |
- suggester) |
- return self._make_request( |
- action='DefineSuggester', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_analysis_scheme(self, domain_name, analysis_scheme_name): |
- """ |
- Deletes an analysis scheme. For more information, see |
- `Configuring Analysis Schemes`_ in the Amazon CloudSearch |
- Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type analysis_scheme_name: string |
- :param analysis_scheme_name: The name of the analysis scheme you want |
- to delete. |
- |
- """ |
- params = { |
- 'DomainName': domain_name, |
- 'AnalysisSchemeName': analysis_scheme_name, |
- } |
- return self._make_request( |
- action='DeleteAnalysisScheme', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_domain(self, domain_name): |
- """ |
- Permanently deletes a search domain and all of its data. Once |
- a domain has been deleted, it cannot be recovered. For more |
- information, see `Deleting a Search Domain`_ in the Amazon |
- CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: The name of the domain you want to permanently |
- delete. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- return self._make_request( |
- action='DeleteDomain', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_expression(self, domain_name, expression_name): |
- """ |
- Removes an `Expression` from the search domain. For more |
- information, see `Configuring Expressions`_ in the Amazon |
- CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type expression_name: string |
- :param expression_name: The name of the `Expression` to delete. |
- |
- """ |
- params = { |
- 'DomainName': domain_name, |
- 'ExpressionName': expression_name, |
- } |
- return self._make_request( |
- action='DeleteExpression', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_index_field(self, domain_name, index_field_name): |
- """ |
- Removes an `IndexField` from the search domain. For more |
- information, see `Configuring Index Fields`_ in the Amazon |
- CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type index_field_name: string |
- :param index_field_name: The name of the index field your want to |
- remove from the domain's indexing options. |
- |
- """ |
- params = { |
- 'DomainName': domain_name, |
- 'IndexFieldName': index_field_name, |
- } |
- return self._make_request( |
- action='DeleteIndexField', |
- verb='POST', |
- path='/', params=params) |
- |
- def delete_suggester(self, domain_name, suggester_name): |
- """ |
- Deletes a suggester. For more information, see `Getting Search |
- Suggestions`_ in the Amazon CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type suggester_name: string |
- :param suggester_name: Specifies the name of the suggester you want to |
- delete. |
- |
- """ |
- params = { |
- 'DomainName': domain_name, |
- 'SuggesterName': suggester_name, |
- } |
- return self._make_request( |
- action='DeleteSuggester', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_analysis_schemes(self, domain_name, |
- analysis_scheme_names=None, deployed=None): |
- """ |
- Gets the analysis schemes configured for a domain. An analysis |
- scheme defines language-specific text processing options for a |
- `text` field. Can be limited to specific analysis schemes by |
- name. By default, shows all analysis schemes and includes any |
- pending changes to the configuration. Set the `Deployed` |
- option to `True` to show the active configuration and exclude |
- pending changes. For more information, see `Configuring |
- Analysis Schemes`_ in the Amazon CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: The name of the domain you want to describe. |
- |
- :type analysis_scheme_names: list |
- :param analysis_scheme_names: The analysis schemes you want to |
- describe. |
- |
- :type deployed: boolean |
- :param deployed: Whether to display the deployed configuration ( |
- `True`) or include any pending changes ( `False`). Defaults to |
- `False`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- if analysis_scheme_names is not None: |
- self.build_list_params(params, |
- analysis_scheme_names, |
- 'AnalysisSchemeNames.member') |
- if deployed is not None: |
- params['Deployed'] = str( |
- deployed).lower() |
- return self._make_request( |
- action='DescribeAnalysisSchemes', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_availability_options(self, domain_name, deployed=None): |
- """ |
- Gets the availability options configured for a domain. By |
- default, shows the configuration with any pending changes. Set |
- the `Deployed` option to `True` to show the active |
- configuration and exclude pending changes. For more |
- information, see `Configuring Availability Options`_ in the |
- Amazon CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: The name of the domain you want to describe. |
- |
- :type deployed: boolean |
- :param deployed: Whether to display the deployed configuration ( |
- `True`) or include any pending changes ( `False`). Defaults to |
- `False`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- if deployed is not None: |
- params['Deployed'] = str( |
- deployed).lower() |
- return self._make_request( |
- action='DescribeAvailabilityOptions', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_domains(self, domain_names=None): |
- """ |
- Gets information about the search domains owned by this |
- account. Can be limited to specific domains. Shows all domains |
- by default. To get the number of searchable documents in a |
- domain, use the console or submit a `matchall` request to your |
- domain's search endpoint: |
- `q=matchall&q.parser=structured&size=0`. For more information, |
- see `Getting Information about a Search Domain`_ in the Amazon |
- CloudSearch Developer Guide . |
- |
- :type domain_names: list |
- :param domain_names: The names of the domains you want to include in |
- the response. |
- |
- """ |
- params = {} |
- if domain_names is not None: |
- self.build_list_params(params, |
- domain_names, |
- 'DomainNames.member') |
- return self._make_request( |
- action='DescribeDomains', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_expressions(self, domain_name, expression_names=None, |
- deployed=None): |
- """ |
- Gets the expressions configured for the search domain. Can be |
- limited to specific expressions by name. By default, shows all |
- expressions and includes any pending changes to the |
- configuration. Set the `Deployed` option to `True` to show the |
- active configuration and exclude pending changes. For more |
- information, see `Configuring Expressions`_ in the Amazon |
- CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: The name of the domain you want to describe. |
- |
- :type expression_names: list |
- :param expression_names: Limits the `DescribeExpressions` response to |
- the specified expressions. If not specified, all expressions are |
- shown. |
- |
- :type deployed: boolean |
- :param deployed: Whether to display the deployed configuration ( |
- `True`) or include any pending changes ( `False`). Defaults to |
- `False`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- if expression_names is not None: |
- self.build_list_params(params, |
- expression_names, |
- 'ExpressionNames.member') |
- if deployed is not None: |
- params['Deployed'] = str( |
- deployed).lower() |
- return self._make_request( |
- action='DescribeExpressions', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_index_fields(self, domain_name, field_names=None, |
- deployed=None): |
- """ |
- Gets information about the index fields configured for the |
- search domain. Can be limited to specific fields by name. By |
- default, shows all fields and includes any pending changes to |
- the configuration. Set the `Deployed` option to `True` to show |
- the active configuration and exclude pending changes. For more |
- information, see `Getting Domain Information`_ in the Amazon |
- CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: The name of the domain you want to describe. |
- |
- :type field_names: list |
- :param field_names: A list of the index fields you want to describe. If |
- not specified, information is returned for all configured index |
- fields. |
- |
- :type deployed: boolean |
- :param deployed: Whether to display the deployed configuration ( |
- `True`) or include any pending changes ( `False`). Defaults to |
- `False`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- if field_names is not None: |
- self.build_list_params(params, |
- field_names, |
- 'FieldNames.member') |
- if deployed is not None: |
- params['Deployed'] = str( |
- deployed).lower() |
- return self._make_request( |
- action='DescribeIndexFields', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_scaling_parameters(self, domain_name): |
- """ |
- Gets the scaling parameters configured for a domain. A |
- domain's scaling parameters specify the desired search |
- instance type and replication count. For more information, see |
- `Configuring Scaling Options`_ in the Amazon CloudSearch |
- Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- """ |
- params = {'DomainName': domain_name, } |
- return self._make_request( |
- action='DescribeScalingParameters', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_service_access_policies(self, domain_name, deployed=None): |
- """ |
- Gets information about the access policies that control access |
- to the domain's document and search endpoints. By default, |
- shows the configuration with any pending changes. Set the |
- `Deployed` option to `True` to show the active configuration |
- and exclude pending changes. For more information, see |
- `Configuring Access for a Search Domain`_ in the Amazon |
- CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: The name of the domain you want to describe. |
- |
- :type deployed: boolean |
- :param deployed: Whether to display the deployed configuration ( |
- `True`) or include any pending changes ( `False`). Defaults to |
- `False`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- if deployed is not None: |
- params['Deployed'] = str( |
- deployed).lower() |
- return self._make_request( |
- action='DescribeServiceAccessPolicies', |
- verb='POST', |
- path='/', params=params) |
- |
- def describe_suggesters(self, domain_name, suggester_names=None, |
- deployed=None): |
- """ |
- Gets the suggesters configured for a domain. A suggester |
- enables you to display possible matches before users finish |
- typing their queries. Can be limited to specific suggesters by |
- name. By default, shows all suggesters and includes any |
- pending changes to the configuration. Set the `Deployed` |
- option to `True` to show the active configuration and exclude |
- pending changes. For more information, see `Getting Search |
- Suggestions`_ in the Amazon CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: The name of the domain you want to describe. |
- |
- :type suggester_names: list |
- :param suggester_names: The suggesters you want to describe. |
- |
- :type deployed: boolean |
- :param deployed: Whether to display the deployed configuration ( |
- `True`) or include any pending changes ( `False`). Defaults to |
- `False`. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- if suggester_names is not None: |
- self.build_list_params(params, |
- suggester_names, |
- 'SuggesterNames.member') |
- if deployed is not None: |
- params['Deployed'] = str( |
- deployed).lower() |
- return self._make_request( |
- action='DescribeSuggesters', |
- verb='POST', |
- path='/', params=params) |
- |
- def index_documents(self, domain_name): |
- """ |
- Tells the search domain to start indexing its documents using |
- the latest indexing options. This operation must be invoked to |
- activate options whose OptionStatus is |
- `RequiresIndexDocuments`. |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- """ |
- params = {'DomainName': domain_name, } |
- return self._make_request( |
- action='IndexDocuments', |
- verb='POST', |
- path='/', params=params) |
- |
- def list_domain_names(self): |
- """ |
- Lists all search domains owned by an account. |
- """ |
- params = {} |
- return self._make_request( |
- action='ListDomainNames', |
- verb='POST', |
- path='/', params=params) |
- |
- def update_availability_options(self, domain_name, multi_az): |
- """ |
- Configures the availability options for a domain. Enabling the |
- Multi-AZ option expands an Amazon CloudSearch domain to an |
- additional Availability Zone in the same Region to increase |
- fault tolerance in the event of a service disruption. Changes |
- to the Multi-AZ option can take about half an hour to become |
- active. For more information, see `Configuring Availability |
- Options`_ in the Amazon CloudSearch Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type multi_az: boolean |
- :param multi_az: You expand an existing search domain to a second |
- Availability Zone by setting the Multi-AZ option to true. |
- Similarly, you can turn off the Multi-AZ option to downgrade the |
- domain to a single Availability Zone by setting the Multi-AZ option |
- to `False`. |
- |
- """ |
- params = {'DomainName': domain_name, 'MultiAZ': multi_az, } |
- return self._make_request( |
- action='UpdateAvailabilityOptions', |
- verb='POST', |
- path='/', params=params) |
- |
- def update_scaling_parameters(self, domain_name, scaling_parameters): |
- """ |
- Configures scaling parameters for a domain. A domain's scaling |
- parameters specify the desired search instance type and |
- replication count. Amazon CloudSearch will still automatically |
- scale your domain based on the volume of data and traffic, but |
- not below the desired instance type and replication count. If |
- the Multi-AZ option is enabled, these values control the |
- resources used per Availability Zone. For more information, |
- see `Configuring Scaling Options`_ in the Amazon CloudSearch |
- Developer Guide . |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type scaling_parameters: dict |
- :param scaling_parameters: The desired instance type and desired number |
- of replicas of each index partition. |
- |
- """ |
- params = {'DomainName': domain_name, } |
- self.build_complex_param(params, 'ScalingParameters', |
- scaling_parameters) |
- return self._make_request( |
- action='UpdateScalingParameters', |
- verb='POST', |
- path='/', params=params) |
- |
- def update_service_access_policies(self, domain_name, access_policies): |
- """ |
- Configures the access rules that control access to the |
- domain's document and search endpoints. For more information, |
- see ` Configuring Access for an Amazon CloudSearch Domain`_. |
- |
- :type domain_name: string |
- :param domain_name: A string that represents the name of a domain. |
- Domain names are unique across the domains owned by an account |
- within an AWS region. Domain names start with a letter or number |
- and can contain the following characters: a-z (lowercase), 0-9, and |
- - (hyphen). |
- |
- :type access_policies: string |
- :param access_policies: The access rules you want to configure. These |
- rules replace any existing rules. |
- |
- """ |
- params = { |
- 'DomainName': domain_name, |
- 'AccessPolicies': access_policies, |
- } |
- return self._make_request( |
- action='UpdateServiceAccessPolicies', |
- verb='POST', |
- path='/', params=params) |
- |
- def build_complex_param(self, params, label, value): |
- """Serialize a structure. |
- |
- For example:: |
- |
- param_type = 'structure' |
- label = 'IndexField' |
- value = {'IndexFieldName': 'a', 'IntOptions': {'DefaultValue': 5}} |
- |
- would result in the params dict being updated with these params:: |
- |
- IndexField.IndexFieldName = a |
- IndexField.IntOptions.DefaultValue = 5 |
- |
- :type params: dict |
- :param params: The params dict. The complex list params |
- will be added to this dict. |
- |
- :type label: str |
- :param label: String label for param key |
- |
- :type value: any |
- :param value: The value to serialize |
- """ |
- for k, v in value.items(): |
- if isinstance(v, dict): |
- for k2, v2 in v.items(): |
- self.build_complex_param(params, label + '.' + k, v) |
- elif isinstance(v, bool): |
- params['%s.%s' % (label, k)] = v and 'true' or 'false' |
- else: |
- params['%s.%s' % (label, k)] = v |
- |
- def _make_request(self, action, verb, path, params): |
- params['ContentType'] = 'JSON' |
- response = self.make_request(action=action, verb='POST', |
- path='/', params=params) |
- body = response.read().decode('utf-8') |
- boto.log.debug(body) |
- if response.status == 200: |
- return json.loads(body) |
- else: |
- json_body = json.loads(body) |
- fault_name = json_body.get('Error', {}).get('Code', None) |
- exception_class = self._faults.get(fault_name, self.ResponseError) |
- raise exception_class(response.status, response.reason, |
- body=json_body) |