diff --git a/PKG-INFO b/PKG-INFO index dfc8b841..0fe5b674 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: botocore -Version: 1.14.14 +Version: 1.15.26 Summary: Low-level, data-driven core of boto 3. Home-page: https://github.com/boto/botocore Author: Amazon Web Services diff --git a/botocore.egg-info/PKG-INFO b/botocore.egg-info/PKG-INFO index dfc8b841..0fe5b674 100644 --- a/botocore.egg-info/PKG-INFO +++ b/botocore.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: botocore -Version: 1.14.14 +Version: 1.15.26 Summary: Low-level, data-driven core of boto 3. Home-page: https://github.com/boto/botocore Author: Amazon Web Services diff --git a/botocore.egg-info/SOURCES.txt b/botocore.egg-info/SOURCES.txt index 9d80c0d9..eab9847d 100644 --- a/botocore.egg-info/SOURCES.txt +++ b/botocore.egg-info/SOURCES.txt @@ -709,6 +709,14 @@ botocore/docs/bcdoc/docstringparser.py botocore/docs/bcdoc/restdoc.py botocore/docs/bcdoc/style.py botocore/docs/bcdoc/textwriter.py +botocore/retries/__init__.py +botocore/retries/adaptive.py +botocore/retries/base.py +botocore/retries/bucket.py +botocore/retries/quota.py +botocore/retries/special.py +botocore/retries/standard.py +botocore/retries/throttling.py botocore/vendored/__init__.py botocore/vendored/six.py botocore/vendored/requests/__init__.py @@ -856,6 +864,9 @@ tests/functional/models/custom-acm/2015-12-08/examples-1.json tests/functional/models/custom-acm/2015-12-08/paginators-1.json tests/functional/models/custom-acm/2015-12-08/service-2.json tests/functional/models/custom-acm/2015-12-08/waiters-2.json +tests/functional/retries/__init__.py +tests/functional/retries/test_bucket.py +tests/functional/retries/test_quota.py tests/functional/utils/__init__.py tests/functional/utils/credentialprocess.py tests/integration/__init__.py @@ -1601,4 +1612,11 @@ tests/unit/response_parsing/xml/responses/sqs-send-message-batch.xml tests/unit/response_parsing/xml/responses/sqs-send-message.json tests/unit/response_parsing/xml/responses/sqs-send-message.xml tests/unit/response_parsing/xml/responses/sts-get-session-token.json -tests/unit/response_parsing/xml/responses/sts-get-session-token.xml \ No newline at end of file +tests/unit/response_parsing/xml/responses/sts-get-session-token.xml +tests/unit/retries/__init__.py +tests/unit/retries/test_adaptive.py +tests/unit/retries/test_bucket.py +tests/unit/retries/test_quota.py +tests/unit/retries/test_special.py +tests/unit/retries/test_standard.py +tests/unit/retries/test_throttling.py \ No newline at end of file diff --git a/botocore/__init__.py b/botocore/__init__.py index b2f3b9a0..88ae6c5e 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re import logging -__version__ = '1.14.14' +__version__ = '1.15.26' class NullHandler(logging.Handler): diff --git a/botocore/args.py b/botocore/args.py index bbf236ea..50247156 100644 --- a/botocore/args.py +++ b/botocore/args.py @@ -169,6 +169,7 @@ class ClientArgsCreator(object): client_cert=client_config.client_cert, inject_host_prefix=client_config.inject_host_prefix, ) + self._compute_retry_config(config_kwargs) s3_config = self.compute_s3_config(client_config) return { 'service_name': service_name, @@ -310,6 +311,56 @@ class ClientArgsCreator(object): (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)) return socket_options + def _compute_retry_config(self, config_kwargs): + self._compute_retry_max_attempts(config_kwargs) + self._compute_retry_mode(config_kwargs) + + def _compute_retry_max_attempts(self, config_kwargs): + # There's a pre-existing max_attempts client config value that actually + # means max *retry* attempts. There's also a `max_attempts` we pull + # from the config store that means *total attempts*, which includes the + # intitial request. We can't change what `max_attempts` means in + # client config so we try to normalize everything to a new + # "total_max_attempts" variable. We ensure that after this, the only + # configuration for "max attempts" is the 'total_max_attempts' key. + # An explicitly provided max_attempts in the client config + # overrides everything. + retries = config_kwargs.get('retries') + if retries is not None: + if 'total_max_attempts' in retries: + retries.pop('max_attempts', None) + return + if 'max_attempts' in retries: + value = retries.pop('max_attempts') + # client config max_attempts means total retries so we + # have to add one for 'total_max_attempts' to account + # for the initial request. + retries['total_max_attempts'] = value + 1 + return + # Otherwise we'll check the config store which checks env vars, + # config files, etc. There is no default value for max_attempts + # so if this returns None and we don't set a default value here. + max_attempts = self._config_store.get_config_variable('max_attempts') + if max_attempts is not None: + if retries is None: + retries = {} + config_kwargs['retries'] = retries + retries['total_max_attempts'] = max_attempts + + def _compute_retry_mode(self, config_kwargs): + retries = config_kwargs.get('retries') + if retries is None: + retries = {} + config_kwargs['retries'] = retries + elif 'mode' in retries: + # If there's a retry mode explicitly set in the client config + # that overrides everything. + return + retry_mode = self._config_store.get_config_variable('retry_mode') + if retry_mode is None: + retry_mode = 'legacy' + retries['mode'] = retry_mode + def _ensure_boolean(self, val): if isinstance(val, bool): return val diff --git a/botocore/client.py b/botocore/client.py index a10fbcb6..fcd2cc7d 100644 --- a/botocore/client.py +++ b/botocore/client.py @@ -39,6 +39,8 @@ from botocore.discovery import ( EndpointDiscoveryHandler, EndpointDiscoveryManager, block_endpoint_discovery_required_operations ) +from botocore.retries import standard +from botocore.retries import adaptive logger = logging.getLogger(__name__) @@ -116,6 +118,26 @@ class ClientCreator(object): return service_model def _register_retries(self, client): + retry_mode = client.meta.config.retries['mode'] + if retry_mode == 'standard': + self._register_v2_standard_retries(client) + elif retry_mode == 'adaptive': + self._register_v2_standard_retries(client) + self._register_v2_adaptive_retries(client) + elif retry_mode == 'legacy': + self._register_legacy_retries(client) + + def _register_v2_standard_retries(self, client): + max_attempts = client.meta.config.retries.get('total_max_attempts') + kwargs = {'client': client} + if max_attempts is not None: + kwargs['max_attempts'] = max_attempts + standard.register_retry_handler(**kwargs) + + def _register_v2_adaptive_retries(self, client): + adaptive.register_retry_handler(client) + + def _register_legacy_retries(self, client): endpoint_prefix = client.meta.service_model.endpoint_prefix service_id = client.meta.service_model.service_id service_event_name = service_id.hyphenize() @@ -126,10 +148,11 @@ class ClientCreator(object): if not original_config: return + retries = self._transform_legacy_retries(client.meta.config.retries) retry_config = self._retry_config_translator.build_retry_config( endpoint_prefix, original_config.get('retry', {}), original_config.get('definitions', {}), - client.meta.config.retries + retries ) logger.debug("Registering retry handlers for service: %s", @@ -142,6 +165,23 @@ class ClientCreator(object): unique_id=unique_id ) + def _transform_legacy_retries(self, retries): + if retries is None: + return + copied_args = retries.copy() + if 'total_max_attempts' in retries: + copied_args = retries.copy() + copied_args['max_attempts'] = ( + copied_args.pop('total_max_attempts') - 1) + return copied_args + + def _get_retry_mode(self, client, config_store): + client_retries = client.meta.config.retries + if client_retries is not None and \ + client_retries.get('mode') is not None: + return client_retries['mode'] + return config_store.get_config_variable('retry_mode') or 'legacy' + def _register_endpoint_discovery(self, client, endpoint_url, config): if endpoint_url is not None: # Don't register any handlers in the case of a custom endpoint url diff --git a/botocore/compat.py b/botocore/compat.py index 4c8424cb..02d18069 100644 --- a/botocore/compat.py +++ b/botocore/compat.py @@ -23,6 +23,7 @@ from math import floor from botocore.vendored import six from botocore.exceptions import MD5UnavailableError +from dateutil.tz import tzlocal from urllib3 import exceptions logger = logging.getLogger(__name__) @@ -329,6 +330,17 @@ def _windows_shell_split(s): return components +def get_tzinfo_options(): + # Due to dateutil/dateutil#197, Windows may fail to parse times in the past + # with the system clock. We can alternatively fallback to tzwininfo when + # this happens, which will get time info from the Windows registry. + if sys.platform == 'win32': + from dateutil.tz import tzwinlocal + return (tzlocal, tzwinlocal) + else: + return (tzlocal,) + + try: from collections.abc import MutableMapping except ImportError: diff --git a/botocore/config.py b/botocore/config.py index e80da122..d86a2a34 100644 --- a/botocore/config.py +++ b/botocore/config.py @@ -17,6 +17,7 @@ from botocore.endpoint import DEFAULT_TIMEOUT, MAX_POOL_CONNECTIONS from botocore.exceptions import InvalidS3AddressingStyleError from botocore.exceptions import InvalidRetryConfigurationError from botocore.exceptions import InvalidMaxRetryAttemptsError +from botocore.exceptions import InvalidRetryModeError class Config(object): @@ -107,6 +108,14 @@ class Config(object): :param retries: A dictionary for retry specific configurations. Valid keys are: + * 'total_max_attempts' -- An integer representing the maximum number of + total attempts that will be made on a single request. This includes + the initial request, so a value of 1 indicates that no requests + will be retried. If ``total_max_attempts`` and ``max_attempts`` + are both provided, ``total_max_attempts`` takes precedence. + ``total_max_attempts`` is preferred over ``max_attempts`` because + it maps to the ``AWS_MAX_ATTEMPTS`` environment variable and + the ``max_attempts`` config file value. * 'max_attempts' -- An integer representing the maximum number of retry attempts that will be made on a single request. For example, setting this value to 2 will result in the request @@ -114,6 +123,12 @@ class Config(object): this value to 0 will result in no retries ever being attempted on the initial request. If not provided, the number of retries will default to whatever is modeled, which is typically four retries. + * 'mode' -- A string representing the type of retry mode botocore + should use. Valid values are: + * ``legacy`` - The pre-existing retry behavior. + * ``standard`` - The standardized set of retry rules. This + will also default to 3 max attempts unless overridden. + * ``adaptive`` - Retries with additional client side throttling. :type client_cert: str, (str, str) :param client_cert: The path to a certificate for TLS client authentication. @@ -211,13 +226,24 @@ class Config(object): def _validate_retry_configuration(self, retries): if retries is not None: - for key in retries: - if key not in ['max_attempts']: + for key, value in retries.items(): + if key not in ['max_attempts', 'mode', 'total_max_attempts']: raise InvalidRetryConfigurationError( retry_config_option=key) - if key == 'max_attempts' and retries[key] < 0: + if key == 'max_attempts' and value < 0: raise InvalidMaxRetryAttemptsError( - provided_max_attempts=retries[key] + provided_max_attempts=value, + min_value=0, + ) + if key == 'total_max_attempts' and value < 1: + raise InvalidMaxRetryAttemptsError( + provided_max_attempts=value, + min_value=1, + ) + if key == 'mode' and value not in ['legacy', 'standard', + 'adaptive']: + raise InvalidRetryModeError( + provided_retry_mode=value ) def merge(self, other_config): diff --git a/botocore/configprovider.py b/botocore/configprovider.py index bde7b8d6..79ba6504 100644 --- a/botocore/configprovider.py +++ b/botocore/configprovider.py @@ -88,7 +88,10 @@ BOTOCORE_DEFAUT_SESSION_VARIABLES = { 'sts_regional_endpoints', 'AWS_STS_REGIONAL_ENDPOINTS', 'legacy', None ), - + 'retry_mode': ('retry_mode', 'AWS_RETRY_MODE', 'legacy', None), + # We can't have a default here for v1 because we need to defer to + # whatever the defaults are in _retry.json. + 'max_attempts': ('max_attempts', 'AWS_MAX_ATTEMPTS', None, int), } # A mapping for the s3 specific configuration vars. These are the configuration # vars that typically go in the s3 section of the config file. This mapping diff --git a/botocore/data/_retry.json b/botocore/data/_retry.json index 3d745cc9..bfdd2641 100644 --- a/botocore/data/_retry.json +++ b/botocore/data/_retry.json @@ -162,6 +162,14 @@ "http_status_code": 503 } } + }, + "ec2_throttled_exception": { + "applies_when": { + "response": { + "service_error_code": "EC2ThrottledException", + "http_status_code": 503 + } + } } } } diff --git a/botocore/data/accessanalyzer/2019-11-01/paginators-1.json b/botocore/data/accessanalyzer/2019-11-01/paginators-1.json index ea142457..64553f7b 100644 --- a/botocore/data/accessanalyzer/2019-11-01/paginators-1.json +++ b/botocore/data/accessanalyzer/2019-11-01/paginators-1.json @@ -1,3 +1,28 @@ { - "pagination": {} + "pagination": { + "ListAnalyzedResources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "analyzedResources" + }, + "ListAnalyzers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "analyzers" + }, + "ListArchiveRules": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "archiveRules" + }, + "ListFindings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findings" + } + } } diff --git a/botocore/data/acm/2015-12-08/service-2.json b/botocore/data/acm/2015-12-08/service-2.json index a748c481..103600b7 100644 --- a/botocore/data/acm/2015-12-08/service-2.json +++ b/botocore/data/acm/2015-12-08/service-2.json @@ -86,7 +86,7 @@ {"shape":"RequestInProgressException"}, {"shape":"InvalidArnException"} ], - "documentation":"

Retrieves a certificate specified by an ARN and its certificate chain . The chain is an ordered list of certificates that contains the end entity certificate, intermediate certificates of subordinate CAs, and the root certificate in that order. The certificate and certificate chain are base64 encoded. If you want to decode the certificate to see the individual fields, you can use OpenSSL.

" + "documentation":"

Retrieves an Amazon-issued certificate and its certificate chain. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs. All of the certificates are base64 encoded. You can use OpenSSL to decode the certificates and inspect individual fields.

" }, "ImportCertificate":{ "name":"ImportCertificate", @@ -498,7 +498,7 @@ }, "ResourceRecord":{ "shape":"ResourceRecord", - "documentation":"

Contains the CNAME record that you add to your DNS database for domain validation. For more information, see Use DNS to Validate Domain Ownership.

" + "documentation":"

Contains the CNAME record that you add to your DNS database for domain validation. For more information, see Use DNS to Validate Domain Ownership.

Note: The CNAME information that you need does not include the name of your domain. If you include
 your domain name in the DNS database CNAME record, validation fails.
 For example, if the name is \"_a79865eb4cd1a6ab990a45779b4e0b96.yourdomain.com\", only \"_a79865eb4cd1a6ab990a45779b4e0b96\" must be used.

" }, "ValidationMethod":{ "shape":"ValidationMethod", @@ -664,11 +664,11 @@ "members":{ "Certificate":{ "shape":"CertificateBody", - "documentation":"

String that contains the ACM certificate represented by the ARN specified at input.

" + "documentation":"

The ACM-issued certificate corresponding to the ARN specified as input.

" }, "CertificateChain":{ "shape":"CertificateChain", - "documentation":"

The certificate chain that contains the root certificate issued by the certificate authority (CA).

" + "documentation":"

Certificates forming the requested certificate's chain of trust. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs.

" } } }, @@ -822,7 +822,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

An ACM limit has been exceeded.

", + "documentation":"

An ACM quota has been exceeded.

", "exception":true }, "ListCertificatesRequest":{ @@ -885,7 +885,7 @@ }, "NextToken":{ "type":"string", - "max":320, + "max":10000, "min":1, "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*" }, @@ -904,7 +904,7 @@ }, "PrivateKeyBlob":{ "type":"blob", - "max":524288, + "max":5120, "min":1, "sensitive":true }, @@ -996,7 +996,7 @@ }, "SubjectAlternativeNames":{ "shape":"DomainList", - "documentation":"

Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial limit is 10 domain names. If you need more than 10 names, you must request a limit increase. For more information, see Limits.

The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:

" + "documentation":"

Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see Quotas.

The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:

" }, "IdempotencyToken":{ "shape":"IdempotencyToken", diff --git a/botocore/data/apigatewayv2/2018-11-29/service-2.json b/botocore/data/apigatewayv2/2018-11-29/service-2.json index ee1271e1..d6fef428 100644 --- a/botocore/data/apigatewayv2/2018-11-29/service-2.json +++ b/botocore/data/apigatewayv2/2018-11-29/service-2.json @@ -154,7 +154,8 @@ "shape" : "ConflictException", "documentation" : "

The resource already exists.

" }, { - "shape" : "AccessDeniedException" + "shape" : "AccessDeniedException", + "documentation" : "

403 response

" } ], "documentation" : "

Creates a domain name.

" }, @@ -170,7 +171,7 @@ }, "output" : { "shape" : "CreateIntegrationResult", - "documentation" : "\n

The request has succeeded and has resulted in the creation of a resource.

\n " + "documentation" : "

The request has succeeded and has resulted in the creation of a resource.

" }, "errors" : [ { "shape" : "NotFoundException", @@ -257,7 +258,7 @@ }, "output" : { "shape" : "CreateRouteResult", - "documentation" : "\n

The request has succeeded and has resulted in the creation of a resource.

\n " + "documentation" : "

The request has succeeded and has resulted in the creation of a resource.

" }, "errors" : [ { "shape" : "NotFoundException", @@ -332,6 +333,48 @@ } ], "documentation" : "

Creates a Stage for an API.

" }, + "CreateVpcLink" : { + "name" : "CreateVpcLink", + "http" : { + "method" : "POST", + "requestUri" : "/v2/vpclinks", + "responseCode" : 201 + }, + "input" : { + "shape" : "CreateVpcLinkRequest" + }, + "output" : { + "shape" : "CreateVpcLinkResponse", + "documentation" : "

The request has succeeded and has resulted in the creation of a resource.

" + }, + "errors" : [ { + "shape" : "BadRequestException", + "documentation" : "

One of the parameters in the request is invalid.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + } ], + "documentation" : "

Creates a VPC link.

" + }, + "DeleteAccessLogSettings" : { + "name" : "DeleteAccessLogSettings", + "http" : { + "method" : "DELETE", + "requestUri" : "/v2/apis/{apiId}/stages/{stageName}/accesslogsettings", + "responseCode" : 204 + }, + "input" : { + "shape" : "DeleteAccessLogSettingsRequest" + }, + "errors" : [ { + "shape" : "NotFoundException", + "documentation" : "

The resource specified in the request was not found.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + } ], + "documentation" : "

Deletes the AccessLogSettings for a Stage. To disable access logging for a Stage, delete its AccessLogSettings.

" + }, "DeleteApi" : { "name" : "DeleteApi", "http" : { @@ -525,6 +568,25 @@ } ], "documentation" : "

Deletes a Route.

" }, + "DeleteRouteRequestParameter" : { + "name" : "DeleteRouteRequestParameter", + "http" : { + "method" : "DELETE", + "requestUri" : "/v2/apis/{apiId}/routes/{routeId}/requestparameters/{requestParameterKey}", + "responseCode" : 204 + }, + "input" : { + "shape" : "DeleteRouteRequestParameterRequest" + }, + "errors" : [ { + "shape" : "NotFoundException", + "documentation" : "

The resource specified in the request was not found.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + } ], + "documentation" : "

Deletes a route request parameter.

" + }, "DeleteRouteResponse" : { "name" : "DeleteRouteResponse", "http" : { @@ -582,6 +644,29 @@ } ], "documentation" : "

Deletes a Stage.

" }, + "DeleteVpcLink" : { + "name" : "DeleteVpcLink", + "http" : { + "method" : "DELETE", + "requestUri" : "/v2/vpclinks/{vpcLinkId}", + "responseCode" : 202 + }, + "input" : { + "shape" : "DeleteVpcLinkRequest" + }, + "output" : { + "shape" : "DeleteVpcLinkResponse", + "documentation" : "

202 response

" + }, + "errors" : [ { + "shape" : "NotFoundException", + "documentation" : "

The resource specified in the request was not found.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + } ], + "documentation" : "

Deletes a VPC link.

" + }, "GetApi" : { "name" : "GetApi", "http" : { @@ -842,7 +927,7 @@ }, "output" : { "shape" : "GetIntegrationResult", - "documentation" : "\n

Success

\n " + "documentation" : "

Success

" }, "errors" : [ { "shape" : "NotFoundException", @@ -1012,7 +1097,7 @@ }, "output" : { "shape" : "GetRouteResult", - "documentation" : "\n

Success

\n " + "documentation" : "

Success

" }, "errors" : [ { "shape" : "NotFoundException", @@ -1176,6 +1261,52 @@ } ], "documentation" : "

Gets a collection of Tag resources.

" }, + "GetVpcLink" : { + "name" : "GetVpcLink", + "http" : { + "method" : "GET", + "requestUri" : "/v2/vpclinks/{vpcLinkId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetVpcLinkRequest" + }, + "output" : { + "shape" : "GetVpcLinkResponse", + "documentation" : "

Success

" + }, + "errors" : [ { + "shape" : "NotFoundException", + "documentation" : "

The resource specified in the request was not found.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + } ], + "documentation" : "

Gets a VPC link.

" + }, + "GetVpcLinks" : { + "name" : "GetVpcLinks", + "http" : { + "method" : "GET", + "requestUri" : "/v2/vpclinks", + "responseCode" : 200 + }, + "input" : { + "shape" : "GetVpcLinksRequest" + }, + "output" : { + "shape" : "GetVpcLinksResponse", + "documentation" : "

Success

" + }, + "errors" : [ { + "shape" : "BadRequestException", + "documentation" : "

One of the parameters in the request is invalid.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + } ], + "documentation" : "

Gets a collection of VPC links.

" + }, "ImportApi" : { "name" : "ImportApi", "http" : { @@ -1445,7 +1576,7 @@ }, "output" : { "shape" : "UpdateIntegrationResult", - "documentation" : "\n

Success

\n " + "documentation" : "

Success

" }, "errors" : [ { "shape" : "NotFoundException", @@ -1532,7 +1663,7 @@ }, "output" : { "shape" : "UpdateRouteResult", - "documentation" : "\n

Success

\n " + "documentation" : "

Success

" }, "errors" : [ { "shape" : "NotFoundException", @@ -1606,6 +1737,32 @@ "documentation" : "

The resource already exists.

" } ], "documentation" : "

Updates a Stage.

" + }, + "UpdateVpcLink" : { + "name" : "UpdateVpcLink", + "http" : { + "method" : "PATCH", + "requestUri" : "/v2/vpclinks/{vpcLinkId}", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateVpcLinkRequest" + }, + "output" : { + "shape" : "UpdateVpcLinkResponse", + "documentation" : "

200 response

" + }, + "errors" : [ { + "shape" : "NotFoundException", + "documentation" : "

The resource specified in the request was not found.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + }, { + "shape" : "BadRequestException", + "documentation" : "

One of the parameters in the request is invalid.

" + } ], + "documentation" : "

Updates a VPC link.

" } }, "shapes" : { @@ -2543,12 +2700,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -2573,12 +2730,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -2588,7 +2745,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -2609,6 +2766,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfigInput", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } }, "documentation" : "

Represents the input parameters for a CreateIntegration request.

", @@ -2626,12 +2788,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -2656,12 +2818,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -2671,7 +2833,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -2692,6 +2854,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfigInput", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } }, "documentation" : "

Creates a new Integration resource to represent an integration.

", @@ -2708,12 +2875,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -2748,12 +2915,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -2763,7 +2930,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -2784,6 +2951,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfig", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } } }, @@ -3330,7 +3502,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" }, "Tags" : { "shape" : "Tags", @@ -3393,7 +3565,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" }, "Tags" : { "shape" : "Tags", @@ -3470,7 +3642,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" }, "Tags" : { "shape" : "Tags", @@ -3479,6 +3651,128 @@ } } }, + "CreateVpcLinkInput" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + }, + "SecurityGroupIds" : { + "shape" : "SecurityGroupIdList", + "locationName" : "securityGroupIds", + "documentation" : "

A list of security group IDs for the VPC link.

" + }, + "SubnetIds" : { + "shape" : "SubnetIdList", + "locationName" : "subnetIds", + "documentation" : "

A list of subnet IDs to include in the VPC link.

" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags", + "documentation" : "

A list of tags.

" + } + }, + "documentation" : "

Represents the input parameters for a CreateVpcLink request.

", + "required" : [ "SubnetIds", "Name" ] + }, + "CreateVpcLinkRequest" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + }, + "SecurityGroupIds" : { + "shape" : "SecurityGroupIdList", + "locationName" : "securityGroupIds", + "documentation" : "

A list of security group IDs for the VPC link.

" + }, + "SubnetIds" : { + "shape" : "SubnetIdList", + "locationName" : "subnetIds", + "documentation" : "

A list of subnet IDs to include in the VPC link.

" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags", + "documentation" : "

A list of tags.

" + } + }, + "documentation" : "

Creates a VPC link

", + "required" : [ "SubnetIds", "Name" ] + }, + "CreateVpcLinkResponse" : { + "type" : "structure", + "members" : { + "CreatedDate" : { + "shape" : "__timestampIso8601", + "locationName" : "createdDate", + "documentation" : "

The timestamp when the VPC link was created.

" + }, + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + }, + "SecurityGroupIds" : { + "shape" : "SecurityGroupIdList", + "locationName" : "securityGroupIds", + "documentation" : "

A list of security group IDs for the VPC link.

" + }, + "SubnetIds" : { + "shape" : "SubnetIdList", + "locationName" : "subnetIds", + "documentation" : "

A list of subnet IDs to include in the VPC link.

" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags", + "documentation" : "

Tags for the VPC link.

" + }, + "VpcLinkId" : { + "shape" : "Id", + "locationName" : "vpcLinkId", + "documentation" : "

The ID of the VPC link.

" + }, + "VpcLinkStatus" : { + "shape" : "VpcLinkStatus", + "locationName" : "vpcLinkStatus", + "documentation" : "

The status of the VPC link.

" + }, + "VpcLinkStatusMessage" : { + "shape" : "StringWithLengthBetween0And1024", + "locationName" : "vpcLinkStatusMessage", + "documentation" : "

A message summarizing the cause of the status of the VPC link.

" + }, + "VpcLinkVersion" : { + "shape" : "VpcLinkVersion", + "locationName" : "vpcLinkVersion", + "documentation" : "

The version of the VPC link.

" + } + } + }, + "DeleteAccessLogSettingsRequest" : { + "type" : "structure", + "members" : { + "ApiId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "apiId", + "documentation" : "

The API identifier.

" + }, + "StageName" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "stageName", + "documentation" : "

The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.

" + } + }, + "required" : [ "StageName", "ApiId" ] + }, "DeleteApiMappingRequest" : { "type" : "structure", "members" : { @@ -3647,6 +3941,30 @@ }, "required" : [ "ApiId", "RouteId" ] }, + "DeleteRouteRequestParameterRequest" : { + "type" : "structure", + "members" : { + "ApiId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "apiId", + "documentation" : "

The API identifier.

" + }, + "RequestParameterKey" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "requestParameterKey", + "documentation" : "

The route request parameter key.

" + }, + "RouteId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "routeId", + "documentation" : "

The route ID.

" + } + }, + "required" : [ "RequestParameterKey", "ApiId", "RouteId" ] + }, "DeleteRouteResponseRequest" : { "type" : "structure", "members" : { @@ -3713,6 +4031,22 @@ }, "required" : [ "StageName", "ApiId" ] }, + "DeleteVpcLinkRequest" : { + "type" : "structure", + "members" : { + "VpcLinkId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "vpcLinkId", + "documentation" : "

The ID of the VPC link.

" + } + }, + "required" : [ "VpcLinkId" ] + }, + "DeleteVpcLinkResponse" : { + "type" : "structure", + "members" : { } + }, "Deployment" : { "type" : "structure", "members" : { @@ -4379,12 +4713,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -4419,12 +4753,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -4434,7 +4768,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -4455,6 +4789,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfig", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } } }, @@ -5026,7 +5365,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" }, "Tags" : { "shape" : "Tags", @@ -5093,8 +5432,101 @@ "shape" : "Tags", "locationName": "tags" } + } + }, + "GetVpcLinkRequest" : { + "type" : "structure", + "members" : { + "VpcLinkId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "vpcLinkId", + "documentation" : "

The ID of the VPC link.

" + } }, - "required" : [ "Tags" ] + "required" : [ "VpcLinkId" ] + }, + "GetVpcLinkResponse" : { + "type" : "structure", + "members" : { + "CreatedDate" : { + "shape" : "__timestampIso8601", + "locationName" : "createdDate", + "documentation" : "

The timestamp when the VPC link was created.

" + }, + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + }, + "SecurityGroupIds" : { + "shape" : "SecurityGroupIdList", + "locationName" : "securityGroupIds", + "documentation" : "

A list of security group IDs for the VPC link.

" + }, + "SubnetIds" : { + "shape" : "SubnetIdList", + "locationName" : "subnetIds", + "documentation" : "

A list of subnet IDs to include in the VPC link.

" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags", + "documentation" : "

Tags for the VPC link.

" + }, + "VpcLinkId" : { + "shape" : "Id", + "locationName" : "vpcLinkId", + "documentation" : "

The ID of the VPC link.

" + }, + "VpcLinkStatus" : { + "shape" : "VpcLinkStatus", + "locationName" : "vpcLinkStatus", + "documentation" : "

The status of the VPC link.

" + }, + "VpcLinkStatusMessage" : { + "shape" : "StringWithLengthBetween0And1024", + "locationName" : "vpcLinkStatusMessage", + "documentation" : "

A message summarizing the cause of the status of the VPC link.

" + }, + "VpcLinkVersion" : { + "shape" : "VpcLinkVersion", + "locationName" : "vpcLinkVersion", + "documentation" : "

The version of the VPC link.

" + } + } + }, + "GetVpcLinksRequest" : { + "type" : "structure", + "members" : { + "MaxResults" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "maxResults", + "documentation" : "

The maximum number of elements to be returned for this resource.

" + }, + "NextToken" : { + "shape" : "__string", + "location" : "querystring", + "locationName" : "nextToken", + "documentation" : "

The next page of elements from this collection. Not valid for the last element of the collection.

" + } + } + }, + "GetVpcLinksResponse" : { + "type" : "structure", + "members" : { + "Items" : { + "shape" : "__listOfVpcLink", + "locationName" : "items", + "documentation" : "

A collection of VPC links.

" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken", + "documentation" : "

The next page of elements from this collection. Not valid for the last element of the collection.

" + } + } }, "Id" : { "type" : "string", @@ -5126,7 +5558,7 @@ "shape" : "__string", "location" : "querystring", "locationName" : "basepath", - "documentation" : "

Represents the base path of the imported API. Supported only for HTTP APIs.

" + "documentation" : "

Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see Set the OpenAPI basePath Property. Supported only for HTTP APIs.

" }, "Body" : { "shape" : "__string", @@ -5220,19 +5652,19 @@ }, "IntegerWithLengthBetween0And3600" : { "type" : "integer", - "documentation" : "\n

An integer with a value between [0-3600].

\n ", + "documentation" : "

An integer with a value between [0-3600].

", "min" : 0, "max" : 3600 }, "IntegerWithLengthBetween50And29000" : { "type" : "integer", - "documentation" : "\n

An integer with a value between [50-29000].

\n ", + "documentation" : "

An integer with a value between [50-29000].

", "min" : 50, "max" : 29000 }, "IntegerWithLengthBetweenMinus1And86400" : { "type" : "integer", - "documentation" : "\n

An integer with a value between [-1-86400].

\n ", + "documentation" : "

An integer with a value between -1 and 86400. Supported only for HTTP APIs.

", "min" : -1, "max" : 86400 }, @@ -5247,12 +5679,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -5287,12 +5719,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -5302,7 +5734,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -5323,6 +5755,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfig", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } }, "documentation" : "

Represents an integration.

" @@ -5446,7 +5883,7 @@ "LoggingLevel" : { "type" : "string", "documentation" : "

The logging level.

", - "enum" : [ "ERROR", "INFO", "false" ] + "enum" : [ "ERROR", "INFO", "OFF" ] }, "Model" : { "type" : "structure", @@ -5566,7 +6003,7 @@ "shape" : "__string", "location" : "querystring", "locationName" : "basepath", - "documentation" : "

Represents the base path of the imported API. Supported only for HTTP APIs.

" + "documentation" : "

Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see Set the OpenAPI basePath Property. Supported only for HTTP APIs.

" }, "Body" : { "shape" : "__string", @@ -5819,12 +6256,12 @@ "ThrottlingBurstLimit" : { "shape" : "__integer", "locationName" : "throttlingBurstLimit", - "documentation" : "

Specifies the throttling burst limit. Supported only for WebSocket APIs.

" + "documentation" : "

Specifies the throttling burst limit.

" }, "ThrottlingRateLimit" : { "shape" : "__double", "locationName" : "throttlingRateLimit", - "documentation" : "

Specifies the throttling rate limit. Supported only for WebSocket APIs.

" + "documentation" : "

Specifies the throttling rate limit.

" } }, "documentation" : "

Represents a collection of route settings.

" @@ -5855,6 +6292,13 @@ }, "documentation" : "

Represents a collection of routes.

" }, + "SecurityGroupIdList" : { + "type" : "list", + "documentation" : "

A list of security group IDs for the VPC link.

", + "member" : { + "shape" : "__string" + } + }, "SecurityPolicy" : { "type" : "string", "documentation" : "

The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are TLS_1_0 and TLS_1_2.

", @@ -5934,7 +6378,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" }, "Tags" : { "shape" : "Tags", @@ -6007,6 +6451,13 @@ "type" : "string", "documentation" : "

A string with a length between [1-64].

" }, + "SubnetIdList" : { + "type" : "list", + "documentation" : "

A list of subnet IDs to include in the VPC link.

", + "member" : { + "shape" : "__string" + } + }, "TagResourceInput" : { "type" : "structure", "members" : { @@ -6071,6 +6522,28 @@ "shape" : "StringWithLengthBetween0And32K" } }, + "TlsConfig" : { + "type" : "structure", + "members" : { + "ServerNameToVerify" : { + "shape" : "StringWithLengthBetween1And512", + "locationName" : "serverNameToVerify", + "documentation" : "

If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.

" + } + }, + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" + }, + "TlsConfigInput" : { + "type" : "structure", + "members" : { + "ServerNameToVerify" : { + "shape" : "StringWithLengthBetween1And512", + "locationName" : "serverNameToVerify", + "documentation" : "

If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting.

" + } + }, + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" + }, "TooManyRequestsException" : { "type" : "structure", "members" : { @@ -6104,7 +6577,7 @@ "shape" : "__listOf__string", "location" : "querystring", "locationName" : "tagKeys", - "documentation" : "\n

The Tag keys to delete.

\n " + "documentation" : "

The Tag keys to delete

" } }, "required" : [ "ResourceArn", "TagKeys" ] @@ -6668,12 +7141,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -6698,12 +7171,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -6713,7 +7186,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -6734,6 +7207,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfigInput", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } }, "documentation" : "

Represents the input parameters for an UpdateIntegration request.

" @@ -6750,12 +7228,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -6786,12 +7264,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -6801,7 +7279,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -6822,6 +7300,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfigInput", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } }, "documentation" : "

Updates an Integration.

", @@ -6838,12 +7321,12 @@ "ConnectionId" : { "shape" : "StringWithLengthBetween1And1024", "locationName" : "connectionId", - "documentation" : "

The connection ID.

" + "documentation" : "

The ID of the VPC link for a private integration. Supported only for HTTP APIs.

" }, "ConnectionType" : { "shape" : "ConnectionType", "locationName" : "connectionType", - "documentation" : "

The type of the network connection to the integration endpoint. Currently the only valid value is INTERNET, for connections through the public routable internet.

" + "documentation" : "

The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.

" }, "ContentHandlingStrategy" : { "shape" : "ContentHandlingStrategy", @@ -6878,12 +7361,12 @@ "IntegrationType" : { "shape" : "IntegrationType", "locationName" : "integrationType", - "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" + "documentation" : "

The integration type of an integration. One of the following:

AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs.

AWS_PROXY: for integrating the route or method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as Lambda proxy integration.

HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs.

HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration.

MOCK: for integrating the route or method request with API Gateway as a \"loopback\" endpoint without invoking any backend. Supported only for WebSocket APIs.

" }, "IntegrationUri" : { "shape" : "UriWithLengthBetween1And2048", "locationName" : "integrationUri", - "documentation" : "

For a Lambda proxy integration, this is the URI of the Lambda function.

" + "documentation" : "

For a Lambda integration, specify the URI of a Lambda function.

For an HTTP integration, specify a fully-qualified URL.

For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account.

" }, "PassthroughBehavior" : { "shape" : "PassthroughBehavior", @@ -6893,7 +7376,7 @@ "PayloadFormatVersion" : { "shape" : "StringWithLengthBetween1And64", "locationName" : "payloadFormatVersion", - "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs. Currently, the only supported value is 1.0.

" + "documentation" : "

Specifies the format of the payload sent to an integration. Required for HTTP APIs.

" }, "RequestParameters" : { "shape" : "IntegrationParameters", @@ -6914,6 +7397,11 @@ "shape" : "IntegerWithLengthBetween50And29000", "locationName" : "timeoutInMillis", "documentation" : "

Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds for WebSocket APIs. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs.

" + }, + "TlsConfig" : { + "shape" : "TlsConfig", + "locationName" : "tlsConfig", + "documentation" : "

The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.

" } } }, @@ -7475,7 +7963,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" } }, "documentation" : "

Represents the input parameters for an UpdateStage request.

" @@ -7533,7 +8021,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" } }, "documentation" : "

Updates a Stage.

", @@ -7605,7 +8093,7 @@ "StageVariables" : { "shape" : "StageVariablesMap", "locationName" : "stageVariables", - "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. Supported only for WebSocket APIs.

" + "documentation" : "

A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+.

" }, "Tags" : { "shape" : "Tags", @@ -7614,10 +8102,167 @@ } } }, + "UpdateVpcLinkInput" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + } + }, + "documentation" : "

Represents the input parameters for an UpdateVpcLink request.

" + }, + "UpdateVpcLinkRequest" : { + "type" : "structure", + "members" : { + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + }, + "VpcLinkId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "vpcLinkId", + "documentation" : "

The ID of the VPC link.

" + } + }, + "documentation" : "

Updates a VPC link.

", + "required" : [ "VpcLinkId" ] + }, + "UpdateVpcLinkResponse" : { + "type" : "structure", + "members" : { + "CreatedDate" : { + "shape" : "__timestampIso8601", + "locationName" : "createdDate", + "documentation" : "

The timestamp when the VPC link was created.

" + }, + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + }, + "SecurityGroupIds" : { + "shape" : "SecurityGroupIdList", + "locationName" : "securityGroupIds", + "documentation" : "

A list of security group IDs for the VPC link.

" + }, + "SubnetIds" : { + "shape" : "SubnetIdList", + "locationName" : "subnetIds", + "documentation" : "

A list of subnet IDs to include in the VPC link.

" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags", + "documentation" : "

Tags for the VPC link.

" + }, + "VpcLinkId" : { + "shape" : "Id", + "locationName" : "vpcLinkId", + "documentation" : "

The ID of the VPC link.

" + }, + "VpcLinkStatus" : { + "shape" : "VpcLinkStatus", + "locationName" : "vpcLinkStatus", + "documentation" : "

The status of the VPC link.

" + }, + "VpcLinkStatusMessage" : { + "shape" : "StringWithLengthBetween0And1024", + "locationName" : "vpcLinkStatusMessage", + "documentation" : "

A message summarizing the cause of the status of the VPC link.

" + }, + "VpcLinkVersion" : { + "shape" : "VpcLinkVersion", + "locationName" : "vpcLinkVersion", + "documentation" : "

The version of the VPC link.

" + } + } + }, "UriWithLengthBetween1And2048" : { "type" : "string", "documentation" : "

A string representation of a URI with a length between [1-2048].

" }, + "VpcLink" : { + "type" : "structure", + "members" : { + "CreatedDate" : { + "shape" : "__timestampIso8601", + "locationName" : "createdDate", + "documentation" : "

The timestamp when the VPC link was created.

" + }, + "Name" : { + "shape" : "StringWithLengthBetween1And128", + "locationName" : "name", + "documentation" : "

The name of the VPC link.

" + }, + "SecurityGroupIds" : { + "shape" : "SecurityGroupIdList", + "locationName" : "securityGroupIds", + "documentation" : "

A list of security group IDs for the VPC link.

" + }, + "SubnetIds" : { + "shape" : "SubnetIdList", + "locationName" : "subnetIds", + "documentation" : "

A list of subnet IDs to include in the VPC link.

" + }, + "Tags" : { + "shape" : "Tags", + "locationName" : "tags", + "documentation" : "

Tags for the VPC link.

" + }, + "VpcLinkId" : { + "shape" : "Id", + "locationName" : "vpcLinkId", + "documentation" : "

The ID of the VPC link.

" + }, + "VpcLinkStatus" : { + "shape" : "VpcLinkStatus", + "locationName" : "vpcLinkStatus", + "documentation" : "

The status of the VPC link.

" + }, + "VpcLinkStatusMessage" : { + "shape" : "StringWithLengthBetween0And1024", + "locationName" : "vpcLinkStatusMessage", + "documentation" : "

A message summarizing the cause of the status of the VPC link.

" + }, + "VpcLinkVersion" : { + "shape" : "VpcLinkVersion", + "locationName" : "vpcLinkVersion", + "documentation" : "

The version of the VPC link.

" + } + }, + "documentation" : "

Represents a VPC link.

", + "required" : [ "VpcLinkId", "SecurityGroupIds", "SubnetIds", "Name" ] + }, + "VpcLinkStatus" : { + "type" : "string", + "documentation" : "

The status of the VPC link.

", + "enum" : [ "PENDING", "AVAILABLE", "DELETING", "FAILED", "INACTIVE" ] + }, + "VpcLinkVersion" : { + "type" : "string", + "documentation" : "

The version of the VPC link.

", + "enum" : [ "V2" ] + }, + "VpcLinks" : { + "type" : "structure", + "members" : { + "Items" : { + "shape" : "__listOfVpcLink", + "locationName" : "items", + "documentation" : "

A collection of VPC links.

" + }, + "NextToken" : { + "shape" : "NextToken", + "locationName" : "nextToken", + "documentation" : "

The next page of elements from this collection. Not valid for the last element of the collection.

" + } + }, + "documentation" : "

Represents a collection of VPCLinks.

" + }, "__boolean" : { "type" : "boolean" }, @@ -7693,6 +8338,12 @@ "shape" : "Stage" } }, + "__listOfVpcLink" : { + "type" : "list", + "member" : { + "shape" : "VpcLink" + } + }, "__listOf__string" : { "type" : "list", "member" : { @@ -7714,15 +8365,5 @@ "timestampFormat" : "unixTimestamp" } }, - "authorizers" : { - "authorization_strategy" : { - "name" : "authorization_strategy", - "type" : "provided", - "placement" : { - "location" : "header", - "name" : "Authorization" - } - } - }, "documentation" : "

Amazon API Gateway V2

" } diff --git a/botocore/data/appconfig/2019-10-09/service-2.json b/botocore/data/appconfig/2019-10-09/service-2.json index 36801b01..c11ba4b0 100644 --- a/botocore/data/appconfig/2019-10-09/service-2.json +++ b/botocore/data/appconfig/2019-10-09/service-2.json @@ -42,7 +42,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Information that enables AppConfig to access the configuration source. Valid configuration sources include Systems Manager (SSM) documents and SSM Parameter Store parameters. A configuration profile includes the following information.

" + "documentation":"

Information that enables AppConfig to access the configuration source. Valid configuration sources include Systems Manager (SSM) documents, SSM Parameter Store parameters, and Amazon S3 objects. A configuration profile includes the following information.

For more information, see Create a Configuration and a Configuration Profile in the AWS AppConfig User Guide.

" }, "CreateDeploymentStrategy":{ "name":"CreateDeploymentStrategy", @@ -672,7 +672,7 @@ }, "LocationUri":{ "shape":"Uri", - "documentation":"

A URI to locate the configuration. You can specify either a Systems Manager (SSM) document or an SSM Parameter Store parameter. For an SSM document, specify either the document name in the format ssm-document://<Document name> or the Amazon Resource Name (ARN). For a parameter, specify either the parameter name in the format ssm-parameter://<Parameter name> or the ARN.

" + "documentation":"

A URI to locate the configuration. You can specify a Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. For an SSM document, specify either the document name in the format ssm-document://<Document_name> or the Amazon Resource Name (ARN). For a parameter, specify either the parameter name in the format ssm-parameter://<Parameter_name> or the ARN. For an Amazon S3 object, specify the URI in the following format: s3://<bucket>/<objectKey> . Here is an example: s3://my-bucket/my-app/us-east-1/my-config.json

" }, "RetrievalRoleArn":{ "shape":"Arn", @@ -721,7 +721,7 @@ }, "GrowthType":{ "shape":"GrowthType", - "documentation":"

The algorithm used to define how percentage grows over time.

" + "documentation":"

The algorithm used to define how percentage grows over time. AWS AppConfig supports the following growth types:

Linear: For this type, AppConfig processes the deployment by dividing the total number of targets by the value specified for Step percentage. For example, a linear deployment that uses a Step percentage of 10 deploys the configuration to 10 percent of the hosts. After those deployments are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the targets have successfully received the configuration.

Exponential: For this type, AppConfig processes the deployment exponentially using the following formula: G*(2^N). In this formula, G is the growth factor specified by the user and N is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows:

2*(2^0)

2*(2^1)

2*(2^2)

Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets.

" }, "ReplicateTo":{ "shape":"ReplicateTo", @@ -1143,19 +1143,19 @@ "members":{ "Application":{ "shape":"StringWithLengthBetween1And64", - "documentation":"

The application to get.

", + "documentation":"

The application to get. Specify either the application name or the application ID.

", "location":"uri", "locationName":"Application" }, "Environment":{ "shape":"StringWithLengthBetween1And64", - "documentation":"

The environment to get.

", + "documentation":"

The environment to get. Specify either the environment name or the environment ID.

", "location":"uri", "locationName":"Environment" }, "Configuration":{ "shape":"StringWithLengthBetween1And64", - "documentation":"

The configuration to get.

", + "documentation":"

The configuration to get. Specify either the configuration name or the configuration ID.

", "location":"uri", "locationName":"Configuration" }, @@ -1242,7 +1242,10 @@ }, "GrowthType":{ "type":"string", - "enum":["LINEAR"] + "enum":[ + "LINEAR", + "EXPONENTIAL" + ] }, "Id":{ "type":"string", @@ -1700,7 +1703,7 @@ }, "GrowthType":{ "shape":"GrowthType", - "documentation":"

The algorithm used to define how percentage grows over time.

" + "documentation":"

The algorithm used to define how percentage grows over time. AWS AppConfig supports the following growth types:

Linear: For this type, AppConfig processes the deployment by increments of the growth factor evenly distributed over the deployment time. For example, a linear deployment that uses a growth factor of 20 initially makes the configuration available to 20 percent of the targets. After 1/5th of the deployment time has passed, the system updates the percentage to 40 percent. This continues until 100% of the targets are set to receive the deployed configuration.

Exponential: For this type, AppConfig processes the deployment exponentially using the following formula: G*(2^N). In this formula, G is the growth factor specified by the user and N is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows:

2*(2^0)

2*(2^1)

2*(2^2)

Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets.

" } } }, @@ -1783,7 +1786,7 @@ }, "Content":{ "shape":"StringWithLengthBetween0And32768", - "documentation":"

Either the JSON Schema content or an AWS Lambda function name.

" + "documentation":"

Either the JSON Schema content or the Amazon Resource Name (ARN) of an AWS Lambda function.

" } }, "documentation":"

A validator provides a syntactic or semantic check to ensure the configuration you want to deploy functions as intended. To validate your application configuration data, you provide a schema or a Lambda function that runs against the configuration. The configuration deployment or update can only proceed when the configuration data is valid.

" diff --git a/botocore/data/appmesh/2019-01-25/service-2.json b/botocore/data/appmesh/2019-01-25/service-2.json index b2cf20c4..dbef33f4 100644 --- a/botocore/data/appmesh/2019-01-25/service-2.json +++ b/botocore/data/appmesh/2019-01-25/service-2.json @@ -94,7 +94,7 @@ "shape": "TooManyRequestsException" } ], - "documentation": "

Creates a route that is associated with a virtual router.

\n

You can use the prefix parameter in your route specification for path-based\n routing of requests. For example, if your virtual service name is\n my-service.local and you want the route to match requests to\n my-service.local/metrics, your prefix should be\n /metrics.

\n

If your route matches a request, you can distribute traffic to one or more target\n virtual nodes with relative weighting.

", + "documentation": "

Creates a route that is associated with a virtual router.

\n

You can use the prefix parameter in your route specification for path-based\n routing of requests. For example, if your virtual service name is\n my-service.local and you want the route to match requests to\n my-service.local/metrics, your prefix should be\n /metrics.

\n

If your route matches a request, you can distribute traffic to one or more target\n virtual nodes with relative weighting.

\n

For more information about routes, see Routes.

", "idempotent": true }, "CreateVirtualNode": { @@ -136,7 +136,7 @@ "shape": "TooManyRequestsException" } ], - "documentation": "

Creates a virtual node within a service mesh.

\n

A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS\n service or a Kubernetes deployment. When you create a virtual node, you can specify the\n service discovery information for your task group.

\n

Any inbound traffic that your virtual node expects should be specified as a\n listener. Any outbound traffic that your virtual node expects to reach\n should be specified as a backend.

\n

The response metadata for your new virtual node contains the arn that is\n associated with the virtual node. Set this value (either the full ARN or the truncated\n resource name: for example, mesh/default/virtualNode/simpleapp) as the\n APPMESH_VIRTUAL_NODE_NAME environment variable for your task group's Envoy\n proxy container in your task definition or pod spec. This is then mapped to the\n node.id and node.cluster Envoy parameters.

\n \n

If you require your Envoy stats or tracing to use a different name, you can override\n the node.cluster value that is set by\n APPMESH_VIRTUAL_NODE_NAME with the\n APPMESH_VIRTUAL_NODE_CLUSTER environment variable.

\n
", + "documentation": "

Creates a virtual node within a service mesh.

\n

A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS\n service or a Kubernetes deployment. When you create a virtual node, you can specify the\n service discovery information for your task group.

\n

Any inbound traffic that your virtual node expects should be specified as a\n listener. Any outbound traffic that your virtual node expects to reach\n should be specified as a backend.

\n

The response metadata for your new virtual node contains the arn that is\n associated with the virtual node. Set this value (either the full ARN or the truncated\n resource name: for example, mesh/default/virtualNode/simpleapp) as the\n APPMESH_VIRTUAL_NODE_NAME environment variable for your task group's Envoy\n proxy container in your task definition or pod spec. This is then mapped to the\n node.id and node.cluster Envoy parameters.

\n \n

If you require your Envoy stats or tracing to use a different name, you can override\n the node.cluster value that is set by\n APPMESH_VIRTUAL_NODE_NAME with the\n APPMESH_VIRTUAL_NODE_CLUSTER environment variable.

\n
\n

For more information about virtual nodes, see Virtual Nodes.

", "idempotent": true }, "CreateVirtualRouter": { @@ -178,7 +178,7 @@ "shape": "TooManyRequestsException" } ], - "documentation": "

Creates a virtual router within a service mesh.

\n

Any inbound traffic that your virtual router expects should be specified as a\n listener.

\n

Virtual routers handle traffic for one or more virtual services within your mesh. After\n you create your virtual router, create and associate routes for your virtual router that\n direct incoming requests to different virtual nodes.

", + "documentation": "

Creates a virtual router within a service mesh.

\n

Any inbound traffic that your virtual router expects should be specified as a\n listener.

\n

Virtual routers handle traffic for one or more virtual services within your mesh. After\n you create your virtual router, create and associate routes for your virtual router that\n direct incoming requests to different virtual nodes.

\n

For more information about virtual routers, see Virtual Routers.

", "idempotent": true }, "CreateVirtualService": { @@ -220,7 +220,7 @@ "shape": "TooManyRequestsException" } ], - "documentation": "

Creates a virtual service within a service mesh.

\n

A virtual service is an abstraction of a real service that is provided by a virtual node\n directly or indirectly by means of a virtual router. Dependent services call your virtual\n service by its virtualServiceName, and those requests are routed to the\n virtual node or virtual router that is specified as the provider for the virtual\n service.

", + "documentation": "

Creates a virtual service within a service mesh.

\n

A virtual service is an abstraction of a real service that is provided by a virtual node\n directly or indirectly by means of a virtual router. Dependent services call your virtual\n service by its virtualServiceName, and those requests are routed to the\n virtual node or virtual router that is specified as the provider for the virtual\n service.

\n

For more information about virtual services, see Virtual Services.

", "idempotent": true }, "DeleteMesh": { @@ -1096,95 +1096,6 @@ }, "documentation": "

An object that represents a virtual router listener.

" }, - "UpdateVirtualNodeInput": { - "type": "structure", - "required": [ - "meshName", - "spec", - "virtualNodeName" - ], - "members": { - "clientToken": { - "shape": "String", - "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", - "idempotencyToken": true - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual node resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "spec": { - "shape": "VirtualNodeSpec", - "documentation": "

The new virtual node specification to apply. This overwrites the existing data.

" - }, - "virtualNodeName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual node to update.

", - "location": "uri", - "locationName": "virtualNodeName" - } - }, - "documentation": "" - }, - "DeleteMeshInput": { - "type": "structure", - "required": [ - "meshName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to delete.

", - "location": "uri", - "locationName": "meshName" - } - }, - "documentation": "" - }, - "TcpRetryPolicyEvents": { - "type": "list", - "member": { - "shape": "TcpRetryPolicyEvent" - }, - "min": 1, - "max": 1 - }, - "CreateVirtualServiceInput": { - "type": "structure", - "required": [ - "meshName", - "spec", - "virtualServiceName" - ], - "members": { - "clientToken": { - "shape": "String", - "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", - "idempotencyToken": true - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to create the virtual service in.

", - "location": "uri", - "locationName": "meshName" - }, - "spec": { - "shape": "VirtualServiceSpec", - "documentation": "

The virtual service specification to apply.

" - }, - "tags": { - "shape": "TagList", - "documentation": "

Optional metadata that you can apply to the virtual service to assist with\n categorization and organization. Each tag consists of a key and an optional value, both of\n which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" - }, - "virtualServiceName": { - "shape": "ServiceName", - "documentation": "

The name to use for the virtual service.

" - } - }, - "documentation": "" - }, "VirtualRouterStatusCode": { "type": "string", "enum": [ @@ -1193,38 +1104,6 @@ "INACTIVE" ] }, - "UpdateVirtualRouterInput": { - "type": "structure", - "required": [ - "meshName", - "spec", - "virtualRouterName" - ], - "members": { - "clientToken": { - "shape": "String", - "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", - "idempotencyToken": true - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual router resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "spec": { - "shape": "VirtualRouterSpec", - "documentation": "

The new virtual router specification to apply. This overwrites the existing data.

" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router to update.

", - "location": "uri", - "locationName": "virtualRouterName" - } - }, - "documentation": "" - }, "TagKeyList": { "type": "list", "member": { @@ -1263,33 +1142,6 @@ }, "documentation": "

An object that represents a retry policy. Specify at least one value for at least one of the types of RetryEvents, a value for maxRetries, and a value for perRetryTimeout.

" }, - "ListTagsForResourceInput": { - "type": "structure", - "required": [ - "resourceArn" - ], - "members": { - "limit": { - "shape": "TagsLimit", - "documentation": "

The maximum number of tag results returned by ListTagsForResource in\n paginated output. When this parameter is used, ListTagsForResource returns\n only limit results in a single page along with a nextToken\n response element. You can see the remaining results of the initial request by sending\n another ListTagsForResource request with the returned nextToken\n value. This value can be between 1 and 100. If you don't use\n this parameter, ListTagsForResource returns up to 100\n results and a nextToken value if applicable.

", - "location": "querystring", - "locationName": "limit" - }, - "nextToken": { - "shape": "String", - "documentation": "

The nextToken value returned from a previous paginated\n ListTagsForResource request where limit was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value.

", - "location": "querystring", - "locationName": "nextToken" - }, - "resourceArn": { - "shape": "Arn", - "documentation": "

The Amazon Resource Name (ARN) that identifies the resource to list the tags for.

", - "location": "querystring", - "locationName": "resourceArn" - } - }, - "documentation": "" - }, "CreateVirtualNodeOutput": { "type": "structure", "required": [ @@ -1314,29 +1166,6 @@ }, "documentation": "

An object that represents the logging information for a virtual node.

" }, - "GrpcRetryPolicyEvents": { - "type": "list", - "member": { - "shape": "GrpcRetryPolicyEvent" - }, - "min": 1, - "max": 5 - }, - "ServiceUnavailableException": { - "type": "structure", - "members": { - "message": { - "shape": "String" - } - }, - "documentation": "

The request has failed due to a temporary failure of the service.

", - "exception": true, - "error": { - "code": "ServiceUnavailableException", - "httpStatusCode": 503, - "fault": true - } - }, "Long": { "type": "long", "box": true @@ -1355,42 +1184,6 @@ "documentation": "", "payload": "virtualRouter" }, - "DescribeMeshOutput": { - "type": "structure", - "required": [ - "mesh" - ], - "members": { - "mesh": { - "shape": "MeshData", - "documentation": "

The full description of your service mesh.

" - } - }, - "documentation": "", - "payload": "mesh" - }, - "DeleteVirtualRouterInput": { - "type": "structure", - "required": [ - "meshName", - "virtualRouterName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to delete the virtual router in.

", - "location": "uri", - "locationName": "meshName" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router to delete.

", - "location": "uri", - "locationName": "virtualRouterName" - } - }, - "documentation": "" - }, "ListVirtualRoutersOutput": { "type": "structure", "required": [ @@ -1408,55 +1201,14 @@ }, "documentation": "" }, - "DescribeRouteInput": { - "type": "structure", - "required": [ - "meshName", - "routeName", - "virtualRouterName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the route resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "routeName": { - "shape": "ResourceName", - "documentation": "

The name of the route to describe.

", - "location": "uri", - "locationName": "routeName" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router that the route is associated with.

", - "location": "uri", - "locationName": "virtualRouterName" - } - }, - "documentation": "" - }, - "DeleteRouteOutput": { - "type": "structure", - "required": [ - "route" - ], - "members": { - "route": { - "shape": "RouteData", - "documentation": "

The route that was deleted.

" - } - }, - "documentation": "", - "payload": "route" - }, "ResourceMetadata": { "type": "structure", "required": [ "arn", "createdAt", "lastUpdatedAt", + "meshOwner", + "resourceOwner", "uid", "version" ], @@ -1473,6 +1225,14 @@ "shape": "Timestamp", "documentation": "

The Unix epoch timestamp in seconds for when the resource was last updated.

" }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "resourceOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's\n the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.

" + }, "uid": { "shape": "String", "documentation": "

The unique identifier for the resource.

" @@ -1484,22 +1244,6 @@ }, "documentation": "

An object that represents metadata for a resource.

" }, - "Listeners": { - "type": "list", - "member": { - "shape": "Listener" - }, - "min": 0, - "max": 1 - }, - "Backends": { - "type": "list", - "member": { - "shape": "Backend" - }, - "min": 0, - "max": 25 - }, "ResourceInUseException": { "type": "structure", "members": { @@ -1515,15 +1259,6 @@ "senderFault": true } }, - "PortProtocol": { - "type": "string", - "enum": [ - "grpc", - "http", - "http2", - "tcp" - ] - }, "UpdateVirtualNodeOutput": { "type": "structure", "required": [ @@ -1561,6 +1296,10 @@ "virtualServiceName" ], "members": { + "clientPolicy": { + "shape": "ClientPolicy", + "documentation": "

A reference to an object that represents the client policy for a backend.

" + }, "virtualServiceName": { "shape": "ServiceName", "documentation": "

The name of the virtual service that is acting as a virtual node backend.

" @@ -1568,17 +1307,6 @@ }, "documentation": "

An object that represents a virtual service backend for a virtual node.

" }, - "VirtualNodeStatusCode": { - "type": "string", - "enum": [ - "ACTIVE", - "DELETED", - "INACTIVE" - ] - }, - "ServiceName": { - "type": "string" - }, "BadRequestException": { "type": "structure", "members": { @@ -1594,62 +1322,6 @@ "senderFault": true } }, - "UpdateVirtualServiceInput": { - "type": "structure", - "required": [ - "meshName", - "spec", - "virtualServiceName" - ], - "members": { - "clientToken": { - "shape": "String", - "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", - "idempotencyToken": true - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual service resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "spec": { - "shape": "VirtualServiceSpec", - "documentation": "

The new virtual service specification to apply. This overwrites the existing\n data.

" - }, - "virtualServiceName": { - "shape": "ServiceName", - "documentation": "

The name of the virtual service to update.

", - "location": "uri", - "locationName": "virtualServiceName" - } - }, - "documentation": "" - }, - "HealthCheckThreshold": { - "type": "integer", - "min": 2, - "max": 10 - }, - "UpdateRouteOutput": { - "type": "structure", - "required": [ - "route" - ], - "members": { - "route": { - "shape": "RouteData", - "documentation": "

A full description of the route that was updated.

" - } - }, - "documentation": "", - "payload": "route" - }, - "PercentInt": { - "type": "integer", - "min": 0, - "max": 100 - }, "GrpcRouteMetadataList": { "type": "list", "member": { @@ -1658,62 +1330,13 @@ "min": 1, "max": 10 }, - "MethodName": { + "ListenerTlsMode": { "type": "string", - "min": 1, - "max": 50 - }, - "TagValue": { - "type": "string", - "min": 0, - "max": 256 - }, - "HttpRouteAction": { - "type": "structure", - "required": [ - "weightedTargets" - ], - "members": { - "weightedTargets": { - "shape": "WeightedTargets", - "documentation": "

An object that represents the targets that traffic is routed to when a request matches the route.

" - } - }, - "documentation": "

An object that represents the action to take if a match is determined.

" - }, - "ListRoutesInput": { - "type": "structure", - "required": [ - "meshName", - "virtualRouterName" - ], - "members": { - "limit": { - "shape": "ListRoutesLimit", - "documentation": "

The maximum number of results returned by ListRoutes in paginated output.\n When you use this parameter, ListRoutes returns only limit\n results in a single page along with a nextToken response element. You can see\n the remaining results of the initial request by sending another ListRoutes\n request with the returned nextToken value. This value can be between\n 1 and 100. If you don't use this parameter,\n ListRoutes returns up to 100 results and a\n nextToken value if applicable.

", - "location": "querystring", - "locationName": "limit" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to list routes in.

", - "location": "uri", - "locationName": "meshName" - }, - "nextToken": { - "shape": "String", - "documentation": "

The nextToken value returned from a previous paginated\n ListRoutes request where limit was used and the results\n exceeded the value of that parameter. Pagination continues from the end of the previous\n results that returned the nextToken value.

", - "location": "querystring", - "locationName": "nextToken" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router to list routes in.

", - "location": "uri", - "locationName": "virtualRouterName" - } - }, - "documentation": "" + "enum": [ + "DISABLED", + "PERMISSIVE", + "STRICT" + ] }, "HealthCheckPolicy": { "type": "structure", @@ -1735,7 +1358,7 @@ }, "path": { "shape": "String", - "documentation": "

The destination path for the health check request. This is required only if the\n specified protocol is HTTP. If the protocol is TCP, this parameter is ignored.

" + "documentation": "

The destination path for the health check request. This value is only used if the specified \n protocol is HTTP or HTTP/2. For any other protocol, this value is ignored.

" }, "port": { "shape": "PortNumber", @@ -1743,7 +1366,7 @@ }, "protocol": { "shape": "PortProtocol", - "documentation": "

The protocol for the health check request.

" + "documentation": "

The protocol for the health check request. If you specify grpc, then your service must conform to the GRPC Health Checking Protocol.

" }, "timeoutMillis": { "shape": "HealthCheckTimeoutMillis", @@ -1756,29 +1379,6 @@ }, "documentation": "

An object that represents the health check policy for a virtual node's listener.

" }, - "VirtualServiceRef": { - "type": "structure", - "required": [ - "arn", - "meshName", - "virtualServiceName" - ], - "members": { - "arn": { - "shape": "Arn", - "documentation": "

The full Amazon Resource Name (ARN) for the virtual service.

" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual service resides in.

" - }, - "virtualServiceName": { - "shape": "ServiceName", - "documentation": "

The name of the virtual service.

" - } - }, - "documentation": "

An object that represents a virtual service returned by a list operation.

" - }, "EgressFilter": { "type": "structure", "required": [ @@ -1798,99 +1398,20 @@ "shape": "VirtualServiceRef" } }, - "VirtualNodeStatus": { + "ClientPolicy": { "type": "structure", - "required": [ - "status" - ], "members": { - "status": { - "shape": "VirtualNodeStatusCode", - "documentation": "

The current status of the virtual node.

" + "tls": { + "shape": "ClientPolicyTls", + "documentation": "

A reference to an object that represents a Transport Layer Security (TLS) client policy.

" } }, - "documentation": "

An object that represents the current status of the virtual node.

" - }, - "VirtualRouterRef": { - "type": "structure", - "required": [ - "arn", - "meshName", - "virtualRouterName" - ], - "members": { - "arn": { - "shape": "Arn", - "documentation": "

The full Amazon Resource Name (ARN) for the virtual router.

" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual router resides in.

" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router.

" - } - }, - "documentation": "

An object that represents a virtual router returned by a list operation.

" - }, - "VirtualServiceData": { - "type": "structure", - "required": [ - "meshName", - "metadata", - "spec", - "status", - "virtualServiceName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual service resides in.

" - }, - "metadata": { - "shape": "ResourceMetadata" - }, - "spec": { - "shape": "VirtualServiceSpec", - "documentation": "

The specifications of the virtual service.

" - }, - "status": { - "shape": "VirtualServiceStatus", - "documentation": "

The current status of the virtual service.

" - }, - "virtualServiceName": { - "shape": "ServiceName", - "documentation": "

The name of the virtual service.

" - } - }, - "documentation": "

An object that represents a virtual service returned by a describe operation.

" + "documentation": "

An object that represents a client policy.

" }, "Boolean": { "type": "boolean", "box": true }, - "HttpRouteHeader": { - "type": "structure", - "required": [ - "name" - ], - "members": { - "invert": { - "shape": "Boolean", - "documentation": "

Specify True to match anything except the match criteria. The default value is False.

" - }, - "match": { - "shape": "HeaderMatchMethod", - "documentation": "

The HeaderMatchMethod object.

" - }, - "name": { - "shape": "HeaderName", - "documentation": "

A name for the HTTP header in the client request that will be matched on.

" - } - }, - "documentation": "

An object that represents the HTTP header in the request.

" - }, "HttpRetryPolicyEvent": { "type": "string", "min": 1, @@ -1910,78 +1431,13 @@ "documentation": "", "payload": "virtualService" }, - "FilePath": { - "type": "string", - "min": 1, - "max": 255 - }, - "AwsCloudMapInstanceAttributes": { + "CertificateAuthorityArns": { "type": "list", "member": { - "shape": "AwsCloudMapInstanceAttribute" - } - }, - "VirtualNodeRef": { - "type": "structure", - "required": [ - "arn", - "meshName", - "virtualNodeName" - ], - "members": { - "arn": { - "shape": "Arn", - "documentation": "

The full Amazon Resource Name (ARN) for the virtual node.

" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual node resides in.

" - }, - "virtualNodeName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual node.

" - } + "shape": "Arn" }, - "documentation": "

An object that represents a virtual node returned by a list operation.

" - }, - "CreateMeshInput": { - "type": "structure", - "required": [ - "meshName" - ], - "members": { - "clientToken": { - "shape": "String", - "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", - "idempotencyToken": true - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name to use for the service mesh.

" - }, - "spec": { - "shape": "MeshSpec", - "documentation": "

The service mesh specification to apply.

" - }, - "tags": { - "shape": "TagList", - "documentation": "

Optional metadata that you can apply to the service mesh to assist with categorization\n and organization. Each tag consists of a key and an optional value, both of which you\n define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" - } - }, - "documentation": "" - }, - "GrpcRouteAction": { - "type": "structure", - "required": [ - "weightedTargets" - ], - "members": { - "weightedTargets": { - "shape": "WeightedTargets", - "documentation": "

An object that represents the targets that traffic is routed to when a request matches the route.

" - } - }, - "documentation": "

An object that represents the action to take if a match is determined.

" + "min": 1, + "max": 3 }, "DescribeVirtualNodeOutput": { "type": "structure", @@ -2003,34 +1459,6 @@ "max": 1024, "pattern": "((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^.$)" }, - "LimitExceededException": { - "type": "structure", - "members": { - "message": { - "shape": "String" - } - }, - "documentation": "

You have exceeded a service limit for your account. For more information, see Service\n Limits in the AWS App Mesh User Guide.

", - "exception": true, - "error": { - "code": "LimitExceededException", - "httpStatusCode": 400, - "senderFault": true - } - }, - "UpdateMeshOutput": { - "type": "structure", - "required": [ - "mesh" - ], - "members": { - "mesh": { - "shape": "MeshData" - } - }, - "documentation": "", - "payload": "mesh" - }, "CreateRouteOutput": { "type": "structure", "required": [ @@ -2045,32 +1473,6 @@ "documentation": "", "payload": "route" }, - "GrpcRouteMetadataMatchMethod": { - "type": "structure", - "members": { - "exact": { - "shape": "HeaderMatch", - "documentation": "

The value sent by the client must match the specified value exactly.

" - }, - "prefix": { - "shape": "HeaderMatch", - "documentation": "

The value sent by the client must begin with the specified characters.

" - }, - "range": { - "shape": "MatchRange", - "documentation": "

An object that represents the range of values to match on.

" - }, - "regex": { - "shape": "HeaderMatch", - "documentation": "

The value sent by the client must include the specified characters.

" - }, - "suffix": { - "shape": "HeaderMatch", - "documentation": "

The value sent by the client must end with the specified characters.

" - } - }, - "documentation": "

An object that represents the match method. Specify one of the match values.

" - }, "DnsServiceDiscovery": { "type": "structure", "required": [ @@ -2084,34 +1486,6 @@ }, "documentation": "

An object that represents the DNS service discovery information for your virtual\n node.

" }, - "DescribeVirtualServiceInput": { - "type": "structure", - "required": [ - "meshName", - "virtualServiceName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual service resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "virtualServiceName": { - "shape": "ServiceName", - "documentation": "

The name of the virtual service to describe.

", - "location": "uri", - "locationName": "virtualServiceName" - } - }, - "documentation": "" - }, - "ListVirtualServicesLimit": { - "type": "integer", - "box": true, - "min": 1, - "max": 100 - }, "DeleteRouteInput": { "type": "structure", "required": [ @@ -2126,6 +1500,12 @@ "location": "uri", "locationName": "meshName" }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, "routeName": { "shape": "ResourceName", "documentation": "

The name of the route to delete.

", @@ -2179,40 +1559,12 @@ "members": { }, "documentation": "" }, - "AwsCloudMapInstanceAttribute": { - "type": "structure", - "required": [ - "key", - "value" - ], - "members": { - "key": { - "shape": "AwsCloudMapInstanceAttributeKey", - "documentation": "

The name of an AWS Cloud Map service instance attribute key. Any AWS Cloud Map service\n instance that contains the specified key and value is returned.

" - }, - "value": { - "shape": "AwsCloudMapInstanceAttributeValue", - "documentation": "

The value of an AWS Cloud Map service instance attribute key. Any AWS Cloud Map service\n instance that contains the specified key and value is returned.

" - } - }, - "documentation": "

An object that represents the AWS Cloud Map attribute information for your virtual\n node.

" - }, "TcpRetryPolicyEvent": { "type": "string", "enum": [ "connection-error" ] }, - "VirtualServiceSpec": { - "type": "structure", - "members": { - "provider": { - "shape": "VirtualServiceProvider", - "documentation": "

The App Mesh object that is acting as the provider for a virtual service. You can specify\n a single virtual node or virtual router.

" - } - }, - "documentation": "

An object that represents the specification of a virtual service.

" - }, "Backend": { "type": "structure", "members": { @@ -2223,42 +1575,6 @@ }, "documentation": "

An object that represents the backends that a virtual node is expected to send outbound\n traffic to.

" }, - "MatchRange": { - "type": "structure", - "required": [ - "end", - "start" - ], - "members": { - "end": { - "shape": "Long", - "documentation": "

The end of the range.

" - }, - "start": { - "shape": "Long", - "documentation": "

The start of the range.

" - } - }, - "documentation": "

An object that represents the range of values to match on. The first character of the range is included in the range, though the last character is not. For example, if the range specified were 1-100, only values 1-99 would be matched.

" - }, - "ListVirtualRoutersLimit": { - "type": "integer", - "box": true, - "min": 1, - "max": 100 - }, - "HealthCheckIntervalMillis": { - "type": "long", - "box": true, - "min": 5000, - "max": 300000 - }, - "VirtualRouterList": { - "type": "list", - "member": { - "shape": "VirtualRouterRef" - } - }, "ListMeshesInput": { "type": "structure", "members": { @@ -2277,55 +1593,6 @@ }, "documentation": "" }, - "Arn": { - "type": "string" - }, - "TcpRoute": { - "type": "structure", - "required": [ - "action" - ], - "members": { - "action": { - "shape": "TcpRouteAction", - "documentation": "

The action to take if a match is determined.

" - } - }, - "documentation": "

An object that represents a TCP route type.

" - }, - "VirtualNodeList": { - "type": "list", - "member": { - "shape": "VirtualNodeRef" - } - }, - "ListVirtualRoutersInput": { - "type": "structure", - "required": [ - "meshName" - ], - "members": { - "limit": { - "shape": "ListVirtualRoutersLimit", - "documentation": "

The maximum number of results returned by ListVirtualRouters in paginated\n output. When you use this parameter, ListVirtualRouters returns only\n limit results in a single page along with a nextToken response\n element. You can see the remaining results of the initial request by sending another\n ListVirtualRouters request with the returned nextToken value.\n This value can be between 1 and 100. If you don't use this\n parameter, ListVirtualRouters returns up to 100 results and\n a nextToken value if applicable.

", - "location": "querystring", - "locationName": "limit" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to list virtual routers in.

", - "location": "uri", - "locationName": "meshName" - }, - "nextToken": { - "shape": "String", - "documentation": "

The nextToken value returned from a previous paginated\n ListVirtualRouters request where limit was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value.

", - "location": "querystring", - "locationName": "nextToken" - } - }, - "documentation": "" - }, "VirtualRouterData": { "type": "structure", "required": [ @@ -2383,46 +1650,6 @@ }, "documentation": "" }, - "DurationUnit": { - "type": "string", - "enum": [ - "ms", - "s" - ] - }, - "RoutePriority": { - "type": "integer", - "box": true, - "min": 0, - "max": 1000 - }, - "ListVirtualServicesInput": { - "type": "structure", - "required": [ - "meshName" - ], - "members": { - "limit": { - "shape": "ListVirtualServicesLimit", - "documentation": "

The maximum number of results returned by ListVirtualServices in paginated\n output. When you use this parameter, ListVirtualServices returns only\n limit results in a single page along with a nextToken response\n element. You can see the remaining results of the initial request by sending another\n ListVirtualServices request with the returned nextToken value.\n This value can be between 1 and 100. If you don't use this\n parameter, ListVirtualServices returns up to 100 results and\n a nextToken value if applicable.

", - "location": "querystring", - "locationName": "limit" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to list virtual services in.

", - "location": "uri", - "locationName": "meshName" - }, - "nextToken": { - "shape": "String", - "documentation": "

The nextToken value returned from a previous paginated\n ListVirtualServices request where limit was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value.

", - "location": "querystring", - "locationName": "nextToken" - } - }, - "documentation": "" - }, "CreateVirtualRouterInput": { "type": "structure", "required": [ @@ -2442,13 +1669,22 @@ "location": "uri", "locationName": "meshName" }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then\n the account that you specify must share the mesh with your account before you can create \n the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, "spec": { "shape": "VirtualRouterSpec", "documentation": "

The virtual router specification to apply.

" }, "tags": { "shape": "TagList", - "documentation": "

Optional metadata that you can apply to the virtual router to assist with categorization\n and organization. Each tag consists of a key and an optional value, both of which you\n define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" + "documentation": "

Optional metadata that you can apply to the virtual router to assist with categorization\n and organization. Each tag consists of a key and an optional value, both of which you\n define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

", + "tags": [ + "not-preview" + ] }, "virtualRouterName": { "shape": "ResourceName", @@ -2457,43 +1693,6 @@ }, "documentation": "" }, - "AccessLog": { - "type": "structure", - "members": { - "file": { - "shape": "FileAccessLog", - "documentation": "

The file object to send virtual node access logs to.

" - } - }, - "documentation": "

An object that represents the access logging information for a virtual node.

" - }, - "ListVirtualNodesInput": { - "type": "structure", - "required": [ - "meshName" - ], - "members": { - "limit": { - "shape": "ListVirtualNodesLimit", - "documentation": "

The maximum number of results returned by ListVirtualNodes in paginated\n output. When you use this parameter, ListVirtualNodes returns only\n limit results in a single page along with a nextToken response\n element. You can see the remaining results of the initial request by sending another\n ListVirtualNodes request with the returned nextToken value.\n This value can be between 1 and 100. If you don't use this\n parameter, ListVirtualNodes returns up to 100 results and a\n nextToken value if applicable.

", - "location": "querystring", - "locationName": "limit" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to list virtual nodes in.

", - "location": "uri", - "locationName": "meshName" - }, - "nextToken": { - "shape": "String", - "documentation": "

The nextToken value returned from a previous paginated\n ListVirtualNodes request where limit was used and the results\n exceeded the value of that parameter. Pagination continues from the end of the previous\n results that returned the nextToken value.

", - "location": "querystring", - "locationName": "nextToken" - } - }, - "documentation": "" - }, "DescribeVirtualRouterOutput": { "type": "structure", "required": [ @@ -2557,17 +1756,19 @@ "min": 1, "max": 25 }, - "ListVirtualNodesLimit": { - "type": "integer", - "box": true, - "min": 1, - "max": 100 - }, - "HealthCheckTimeoutMillis": { - "type": "long", - "box": true, - "min": 2000, - "max": 60000 + "ListenerTlsCertificate": { + "type": "structure", + "members": { + "acm": { + "shape": "ListenerTlsAcmCertificate", + "documentation": "

A reference to an object that represents an AWS Certicate Manager (ACM) certificate.

" + }, + "file": { + "shape": "ListenerTlsFileCertificate", + "documentation": "

A reference to an object that represents a local file certificate.

" + } + }, + "documentation": "

An object that represents a listener's Transport Layer Security (TLS) certificate.

" }, "ListMeshesLimit": { "type": "integer", @@ -2575,11 +1776,6 @@ "min": 1, "max": 100 }, - "ResourceName": { - "type": "string", - "min": 1, - "max": 255 - }, "AwsCloudMapInstanceAttributeKey": { "type": "string", "min": 1, @@ -2596,39 +1792,20 @@ }, "documentation": "

An object that represents the specification of a virtual router.

" }, - "TooManyRequestsException": { - "type": "structure", - "members": { - "message": { - "shape": "String" - } - }, - "documentation": "

The maximum request rate permitted by the App Mesh APIs has been exceeded for your\n account. For best results, use an increasing or variable sleep interval between\n requests.

", - "exception": true, - "error": { - "code": "TooManyRequestsException", - "httpStatusCode": 429, - "senderFault": true - } - }, - "Timestamp": { - "type": "timestamp" - }, - "HeaderMatch": { - "type": "string", - "min": 1, - "max": 255 - }, "VirtualNodeSpec": { "type": "structure", "members": { + "backendDefaults": { + "shape": "BackendDefaults", + "documentation": "

A reference to an object that represents the defaults for backends.

" + }, "backends": { "shape": "Backends", "documentation": "

The backends that the virtual node is expected to send outbound traffic to.

" }, "listeners": { "shape": "Listeners", - "documentation": "

The listeners that the virtual node is expected to receive inbound traffic from.\n You can specify one listener.

" + "documentation": "

The listener that the virtual node is expected to receive inbound traffic from.\n You can specify one listener.

" }, "logging": { "shape": "Logging", @@ -2636,7 +1813,7 @@ }, "serviceDiscovery": { "shape": "ServiceDiscovery", - "documentation": "

The service discovery information for the virtual node. If your virtual node does not\n expect ingress traffic, you can omit this parameter.

" + "documentation": "

The service discovery information for the virtual node. If your virtual node does not\n expect ingress traffic, you can omit this parameter. If you specify a listener,\n then you must specify service discovery information.

" } }, "documentation": "

An object that represents the specification of a virtual node.

" @@ -2666,6 +1843,12 @@ "min": 1, "max": 1 }, + "PortSet": { + "type": "list", + "member": { + "shape": "PortNumber" + } + }, "HttpMethod": { "type": "string", "enum": [ @@ -2680,20 +1863,6 @@ "TRACE" ] }, - "Duration": { - "type": "structure", - "members": { - "unit": { - "shape": "DurationUnit", - "documentation": "

A unit of time.

" - }, - "value": { - "shape": "DurationValue", - "documentation": "

A number of time units.

" - } - }, - "documentation": "

An object that represents a duration of time.

" - }, "ConflictException": { "type": "structure", "members": { @@ -2709,98 +1878,30 @@ "senderFault": true } }, - "DescribeRouteOutput": { - "type": "structure", - "required": [ - "route" - ], - "members": { - "route": { - "shape": "RouteData", - "documentation": "

The full description of your route.

" - } - }, - "documentation": "", - "payload": "route" - }, - "HttpRouteMatch": { - "type": "structure", - "required": [ - "prefix" - ], - "members": { - "headers": { - "shape": "HttpRouteHeaders", - "documentation": "

An object that represents the client request headers to match on.

" - }, - "method": { - "shape": "HttpMethod", - "documentation": "

The client request method to match on. Specify only one.

" - }, - "prefix": { - "shape": "String", - "documentation": "

Specifies the path to match requests with. This parameter must always start with\n /, which by itself matches all requests to the virtual service name. You\n can also match for path-based routing of requests. For example, if your virtual service\n name is my-service.local and you want the route to match requests to\n my-service.local/metrics, your prefix should be\n /metrics.

" - }, - "scheme": { - "shape": "HttpScheme", - "documentation": "

The client request scheme to match on. Specify only one.

" - } - }, - "documentation": "

An object that represents the requirements for a route to match HTTP requests for a virtual\n router.

" - }, "MeshList": { "type": "list", "member": { "shape": "MeshRef" } }, - "TagRef": { - "type": "structure", - "required": [ - "key" - ], - "members": { - "key": { - "shape": "TagKey", - "documentation": "

One part of a key-value pair that make up a tag. A key is a general label\n that acts like a category for more specific tag values.

" - }, - "value": { - "shape": "TagValue", - "documentation": "

The optional part of a key-value pair that make up a tag. A value acts as a\n descriptor within a tag category (key).

" - } - }, - "documentation": "

Optional metadata that you apply to a resource to assist with categorization and\n organization. Each tag consists of a key and an optional value, both of which you define.\n Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" - }, - "MeshRef": { - "type": "structure", - "required": [ - "arn", - "meshName" - ], - "members": { - "arn": { - "shape": "Arn", - "documentation": "

The full Amazon Resource Name (ARN) of the service mesh.

" - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh.

" - } - }, - "documentation": "

An object that represents a service mesh returned by a list operation.

" - }, "MaxRetries": { "type": "long", "box": true, "min": 0 }, - "MeshStatusCode": { - "type": "string", - "enum": [ - "ACTIVE", - "DELETED", - "INACTIVE" - ] + "TlsValidationContextTrust": { + "type": "structure", + "members": { + "acm": { + "shape": "TlsValidationContextAcmTrust", + "documentation": "

A reference to an object that represents a TLS validation context trust for an AWS Certicate Manager (ACM) certificate.

" + }, + "file": { + "shape": "TlsValidationContextFileTrust", + "documentation": "

An object that represents a TLS validation context trust for a local file.

" + } + }, + "documentation": "

An object that represents a Transport Layer Security (TLS) validation context trust.

" }, "PortMapping": { "type": "structure", @@ -2820,47 +1921,6 @@ }, "documentation": "

An object that represents a port mapping.

" }, - "MeshData": { - "type": "structure", - "required": [ - "meshName", - "metadata", - "spec", - "status" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh.

" - }, - "metadata": { - "shape": "ResourceMetadata", - "documentation": "

The associated metadata for the service mesh.

" - }, - "spec": { - "shape": "MeshSpec", - "documentation": "

The associated specification for the service mesh.

" - }, - "status": { - "shape": "MeshStatus", - "documentation": "

The status of the service mesh.

" - } - }, - "documentation": "

An object that represents a service mesh returned by a describe operation.

" - }, - "VirtualRouterStatus": { - "type": "structure", - "required": [ - "status" - ], - "members": { - "status": { - "shape": "VirtualRouterStatusCode", - "documentation": "

The current status of the virtual router.

" - } - }, - "documentation": "

An object that represents the status of a virtual router.

" - }, "ListVirtualServicesOutput": { "type": "structure", "required": [ @@ -2902,59 +1962,13 @@ }, "documentation": "

An object that represents a target and its relative weight. Traffic is distributed across\n targets according to their relative weight. For example, a weighted target with a relative\n weight of 50 receives five times as much traffic as one with a relative weight of\n 10. The total weight for all targets combined must be less than or equal to 100.

" }, - "TcpRouteAction": { - "type": "structure", - "required": [ - "weightedTargets" - ], - "members": { - "weightedTargets": { - "shape": "WeightedTargets", - "documentation": "

An object that represents the targets that traffic is routed to when a request matches the route.

" - } - }, - "documentation": "

An object that represents the action to take if a match is determined.

" - }, - "DescribeVirtualNodeInput": { - "type": "structure", - "required": [ - "meshName", - "virtualNodeName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual node resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "virtualNodeName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual node to describe.

", - "location": "uri", - "locationName": "virtualNodeName" - } - }, - "documentation": "" - }, - "RouteStatus": { - "type": "structure", - "required": [ - "status" - ], - "members": { - "status": { - "shape": "RouteStatusCode", - "documentation": "

The current status for the route.

" - } - }, - "documentation": "

An object that represents the current status of a route.

" - }, "RouteRef": { "type": "structure", "required": [ "arn", "meshName", + "meshOwner", + "resourceOwner", "routeName", "virtualRouterName" ], @@ -2967,6 +1981,14 @@ "shape": "ResourceName", "documentation": "

The name of the service mesh that the route resides in.

" }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "resourceOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's\n the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.

" + }, "routeName": { "shape": "ResourceName", "documentation": "

The name of the route.

" @@ -2978,45 +2000,6 @@ }, "documentation": "

An object that represents a route returned by a list operation.

" }, - "Listener": { - "type": "structure", - "required": [ - "portMapping" - ], - "members": { - "healthCheck": { - "shape": "HealthCheckPolicy", - "documentation": "

The health check information for the listener.

" - }, - "portMapping": { - "shape": "PortMapping", - "documentation": "

The port mapping information for the listener.

" - } - }, - "documentation": "

An object that represents a listener for a virtual node.

" - }, - "GrpcRoute": { - "type": "structure", - "required": [ - "action", - "match" - ], - "members": { - "action": { - "shape": "GrpcRouteAction", - "documentation": "

An object that represents the action to take if a match is determined.

" - }, - "match": { - "shape": "GrpcRouteMatch", - "documentation": "

An object that represents the criteria for determining a request match.

" - }, - "retryPolicy": { - "shape": "GrpcRetryPolicy", - "documentation": "

An object that represents a retry policy.

" - } - }, - "documentation": "

An object that represents a GRPC route type.

" - }, "DeleteVirtualNodeInput": { "type": "structure", "required": [ @@ -3030,6 +2013,12 @@ "location": "uri", "locationName": "meshName" }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, "virtualNodeName": { "shape": "ResourceName", "documentation": "

The name of the virtual node to delete.

", @@ -3085,39 +2074,6 @@ "INACTIVE" ] }, - "ListRoutesLimit": { - "type": "integer", - "box": true, - "min": 1, - "max": 100 - }, - "DeleteVirtualServiceOutput": { - "type": "structure", - "required": [ - "virtualService" - ], - "members": { - "virtualService": { - "shape": "VirtualServiceData", - "documentation": "

The virtual service that was deleted.

" - } - }, - "documentation": "", - "payload": "virtualService" - }, - "VirtualNodeServiceProvider": { - "type": "structure", - "required": [ - "virtualNodeName" - ], - "members": { - "virtualNodeName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual node that is acting as a service provider.

" - } - }, - "documentation": "

An object that represents a virtual node service provider.

" - }, "InternalServerErrorException": { "type": "structure", "members": { @@ -3156,64 +2112,18 @@ "unavailable" ] }, - "HttpRetryPolicy": { + "TlsValidationContextAcmTrust": { "type": "structure", "required": [ - "maxRetries", - "perRetryTimeout" + "certificateAuthorityArns" ], "members": { - "httpRetryEvents": { - "shape": "HttpRetryPolicyEvents", - "documentation": "

Specify at least one of the following values.

\n " - }, - "maxRetries": { - "shape": "MaxRetries", - "documentation": "

The maximum number of retry attempts.

" - }, - "perRetryTimeout": { - "shape": "Duration", - "documentation": "

An object that represents a duration of time.

" - }, - "tcpRetryEvents": { - "shape": "TcpRetryPolicyEvents", - "documentation": "

Specify a valid value.

" + "certificateAuthorityArns": { + "shape": "CertificateAuthorityArns", + "documentation": "

One or more ACM Amazon Resource Name (ARN)s.

" } }, - "documentation": "

An object that represents a retry policy. Specify at least one value for at least one of the types of RetryEvents, a value for maxRetries, and a value for perRetryTimeout.

" - }, - "DescribeVirtualRouterInput": { - "type": "structure", - "required": [ - "meshName", - "virtualRouterName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the virtual router resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router to describe.

", - "location": "uri", - "locationName": "virtualRouterName" - } - }, - "documentation": "" - }, - "TagResourceOutput": { - "type": "structure", - "members": { }, - "documentation": "" - }, - "RouteList": { - "type": "list", - "member": { - "shape": "RouteRef" - } + "documentation": "

An object that represents a TLS validation context trust for an AWS Certicate Manager (ACM) certificate.

" }, "ForbiddenException": { "type": "structure", @@ -3230,21 +2140,6 @@ "senderFault": true } }, - "TooManyTagsException": { - "type": "structure", - "members": { - "message": { - "shape": "String" - } - }, - "documentation": "

The request exceeds the maximum allowed number of tags allowed per resource. The current\n limit is 50 user tags per resource. You must reduce the number of tags in the request. None\n of the tags in this request were applied.

", - "exception": true, - "error": { - "code": "TooManyTagsException", - "httpStatusCode": 400, - "senderFault": true - } - }, "HeaderMatchMethod": { "type": "structure", "members": { @@ -3300,11 +2195,6 @@ "Hostname": { "type": "string" }, - "PortNumber": { - "type": "integer", - "min": 1, - "max": 65535 - }, "TagResourceInput": { "type": "structure", "required": [ @@ -3325,84 +2215,6 @@ }, "documentation": "" }, - "GrpcRouteMetadata": { - "type": "structure", - "required": [ - "name" - ], - "members": { - "invert": { - "shape": "Boolean", - "documentation": "

Specify True to match anything except the match criteria. The default value is False.

" - }, - "match": { - "shape": "GrpcRouteMetadataMatchMethod", - "documentation": "

An object that represents the data to match from the request.

" - }, - "name": { - "shape": "HeaderName", - "documentation": "

The name of the route.

" - } - }, - "documentation": "

An object that represents the match metadata for the route.

" - }, - "CreateRouteInput": { - "type": "structure", - "required": [ - "meshName", - "routeName", - "spec", - "virtualRouterName" - ], - "members": { - "clientToken": { - "shape": "String", - "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", - "idempotencyToken": true - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to create the route in.

", - "location": "uri", - "locationName": "meshName" - }, - "routeName": { - "shape": "ResourceName", - "documentation": "

The name to use for the route.

" - }, - "spec": { - "shape": "RouteSpec", - "documentation": "

The route specification to apply.

" - }, - "tags": { - "shape": "TagList", - "documentation": "

Optional metadata that you can apply to the route to assist with categorization and\n organization. Each tag consists of a key and an optional value, both of which you define.\n Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router in which to create the route.

", - "location": "uri", - "locationName": "virtualRouterName" - } - }, - "documentation": "" - }, - "WeightedTargets": { - "type": "list", - "member": { - "shape": "WeightedTarget" - }, - "min": 1, - "max": 10 - }, - "HttpRouteHeaders": { - "type": "list", - "member": { - "shape": "HttpRouteHeader" - }, - "min": 1, - "max": 10 - }, "VirtualServiceProvider": { "type": "structure", "members": { @@ -3435,9 +2247,6 @@ }, "documentation": "

An object that represents the criteria for determining a request match.

" }, - "String": { - "type": "string" - }, "AwsCloudMapServiceDiscovery": { "type": "structure", "required": [ @@ -3460,13 +2269,6 @@ }, "documentation": "

An object that represents the AWS Cloud Map service discovery information for your virtual\n node.

" }, - "HttpScheme": { - "type": "string", - "enum": [ - "http", - "https" - ] - }, "UpdateVirtualServiceOutput": { "type": "structure", "required": [ @@ -3481,45 +2283,6 @@ "documentation": "", "payload": "virtualService" }, - "UpdateRouteInput": { - "type": "structure", - "required": [ - "meshName", - "routeName", - "spec", - "virtualRouterName" - ], - "members": { - "clientToken": { - "shape": "String", - "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", - "idempotencyToken": true - }, - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh that the route resides in.

", - "location": "uri", - "locationName": "meshName" - }, - "routeName": { - "shape": "ResourceName", - "documentation": "

The name of the route to update.

", - "location": "uri", - "locationName": "routeName" - }, - "spec": { - "shape": "RouteSpec", - "documentation": "

The new route specification to apply. This overwrites the existing data.

" - }, - "virtualRouterName": { - "shape": "ResourceName", - "documentation": "

The name of the virtual router that the route is associated with.

", - "location": "uri", - "locationName": "virtualRouterName" - } - }, - "documentation": "" - }, "MeshStatus": { "type": "structure", "members": { @@ -3549,13 +2312,22 @@ "location": "uri", "locationName": "meshName" }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then\n the account that you specify must share the mesh with your account before you can create \n the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, "spec": { "shape": "VirtualNodeSpec", "documentation": "

The virtual node specification to apply.

" }, "tags": { "shape": "TagList", - "documentation": "

Optional metadata that you can apply to the virtual node to assist with categorization\n and organization. Each tag consists of a key and an optional value, both of which you\n define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" + "documentation": "

Optional metadata that you can apply to the virtual node to assist with categorization\n and organization. Each tag consists of a key and an optional value, both of which you\n define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

", + "tags": [ + "not-preview" + ] }, "virtualNodeName": { "shape": "ResourceName", @@ -3584,11 +2356,11 @@ "members": { "grpcRoute": { "shape": "GrpcRoute", - "documentation": "

An object that represents the specification of a GRPC route.

" + "documentation": "

An object that represents the specification of a gRPC route.

" }, "http2Route": { "shape": "HttpRoute", - "documentation": "

An object that represents the specification of an HTTP2 route.

" + "documentation": "

An object that represents the specification of an HTTP/2 route.

" }, "httpRoute": { "shape": "HttpRoute", @@ -3605,53 +2377,6 @@ }, "documentation": "

An object that represents a route specification. Specify one route type.

" }, - "HttpRoute": { - "type": "structure", - "required": [ - "action", - "match" - ], - "members": { - "action": { - "shape": "HttpRouteAction", - "documentation": "

An object that represents the action to take if a match is determined.

" - }, - "match": { - "shape": "HttpRouteMatch", - "documentation": "

An object that represents the criteria for determining a request match.

" - }, - "retryPolicy": { - "shape": "HttpRetryPolicy", - "documentation": "

An object that represents a retry policy.

" - } - }, - "documentation": "

An object that represents an HTTP or HTTP2 route type.

" - }, - "DescribeMeshInput": { - "type": "structure", - "required": [ - "meshName" - ], - "members": { - "meshName": { - "shape": "ResourceName", - "documentation": "

The name of the service mesh to describe.

", - "location": "uri", - "locationName": "meshName" - } - }, - "documentation": "" - }, - "MeshSpec": { - "type": "structure", - "members": { - "egressFilter": { - "shape": "EgressFilter", - "documentation": "

The egress filter rules for the service mesh.

" - } - }, - "documentation": "

An object that represents the specification of a service mesh.

" - }, "CreateVirtualServiceOutput": { "type": "structure", "required": [ @@ -3705,6 +2430,12 @@ "location": "uri", "locationName": "meshName" }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, "virtualServiceName": { "shape": "ServiceName", "documentation": "

The name of the virtual service to delete.

", @@ -3714,6 +2445,1692 @@ }, "documentation": "" }, + "TlsValidationContext": { + "type": "structure", + "required": [ + "trust" + ], + "members": { + "trust": { + "shape": "TlsValidationContextTrust", + "documentation": "

A reference to an object that represents a TLS validation context trust.

" + } + }, + "documentation": "

An object that represents a Transport Layer Security (TLS) validation context.

" + }, + "DeleteVirtualRouterOutput": { + "type": "structure", + "required": [ + "virtualRouter" + ], + "members": { + "virtualRouter": { + "shape": "VirtualRouterData", + "documentation": "

The virtual router that was deleted.

" + } + }, + "documentation": "", + "payload": "virtualRouter" + }, + "TagsLimit": { + "type": "integer", + "box": true, + "min": 1, + "max": 50 + }, + "DeleteVirtualNodeOutput": { + "type": "structure", + "required": [ + "virtualNode" + ], + "members": { + "virtualNode": { + "shape": "VirtualNodeData", + "documentation": "

The virtual node that was deleted.

" + } + }, + "documentation": "", + "payload": "virtualNode" + }, + "UpdateVirtualNodeInput": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualNodeName" + ], + "members": { + "clientToken": { + "shape": "String", + "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", + "idempotencyToken": true + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual node resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "VirtualNodeSpec", + "documentation": "

The new virtual node specification to apply. This overwrites the existing data.

" + }, + "virtualNodeName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual node to update.

", + "location": "uri", + "locationName": "virtualNodeName" + } + }, + "documentation": "" + }, + "ListenerTls": { + "type": "structure", + "required": [ + "certificate", + "mode" + ], + "members": { + "certificate": { + "shape": "ListenerTlsCertificate", + "documentation": "

A reference to an object that represents a listener's TLS certificate.

" + }, + "mode": { + "shape": "ListenerTlsMode", + "documentation": "

Specify one of the following modes.

\n " + } + }, + "documentation": "

An object that represents the Transport Layer Security (TLS) properties for a listener.

" + }, + "DeleteMeshInput": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to delete.

", + "location": "uri", + "locationName": "meshName" + } + }, + "documentation": "" + }, + "TcpRetryPolicyEvents": { + "type": "list", + "member": { + "shape": "TcpRetryPolicyEvent" + }, + "min": 1, + "max": 1 + }, + "CreateVirtualServiceInput": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualServiceName" + ], + "members": { + "clientToken": { + "shape": "String", + "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", + "idempotencyToken": true + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to create the virtual service in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then\n the account that you specify must share the mesh with your account before you can create \n the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "VirtualServiceSpec", + "documentation": "

The virtual service specification to apply.

" + }, + "tags": { + "shape": "TagList", + "documentation": "

Optional metadata that you can apply to the virtual service to assist with\n categorization and organization. Each tag consists of a key and an optional value, both of\n which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

", + "tags": [ + "not-preview" + ] + }, + "virtualServiceName": { + "shape": "ServiceName", + "documentation": "

The name to use for the virtual service.

" + } + }, + "documentation": "" + }, + "UpdateVirtualRouterInput": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "shape": "String", + "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", + "idempotencyToken": true + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual router resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "VirtualRouterSpec", + "documentation": "

The new virtual router specification to apply. This overwrites the existing data.

" + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router to update.

", + "location": "uri", + "locationName": "virtualRouterName" + } + }, + "documentation": "" + }, + "ListTagsForResourceInput": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "limit": { + "shape": "TagsLimit", + "documentation": "

The maximum number of tag results returned by ListTagsForResource in\n paginated output. When this parameter is used, ListTagsForResource returns\n only limit results in a single page along with a nextToken\n response element. You can see the remaining results of the initial request by sending\n another ListTagsForResource request with the returned nextToken\n value. This value can be between 1 and 100. If you don't use\n this parameter, ListTagsForResource returns up to 100\n results and a nextToken value if applicable.

", + "location": "querystring", + "locationName": "limit" + }, + "nextToken": { + "shape": "String", + "documentation": "

The nextToken value returned from a previous paginated\n ListTagsForResource request where limit was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value.

", + "location": "querystring", + "locationName": "nextToken" + }, + "resourceArn": { + "shape": "Arn", + "documentation": "

The Amazon Resource Name (ARN) that identifies the resource to list the tags for.

", + "location": "querystring", + "locationName": "resourceArn" + } + }, + "documentation": "" + }, + "GrpcRetryPolicyEvents": { + "type": "list", + "member": { + "shape": "GrpcRetryPolicyEvent" + }, + "min": 1, + "max": 5 + }, + "ServiceUnavailableException": { + "type": "structure", + "members": { + "message": { + "shape": "String" + } + }, + "documentation": "

The request has failed due to a temporary failure of the service.

", + "exception": true, + "error": { + "code": "ServiceUnavailableException", + "httpStatusCode": 503, + "fault": true + } + }, + "DescribeMeshOutput": { + "type": "structure", + "required": [ + "mesh" + ], + "members": { + "mesh": { + "shape": "MeshData", + "documentation": "

The full description of your service mesh.

" + } + }, + "documentation": "", + "payload": "mesh" + }, + "DeleteVirtualRouterInput": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to delete the virtual router in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router to delete.

", + "location": "uri", + "locationName": "virtualRouterName" + } + }, + "documentation": "" + }, + "DescribeRouteInput": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "virtualRouterName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the route resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "routeName": { + "shape": "ResourceName", + "documentation": "

The name of the route to describe.

", + "location": "uri", + "locationName": "routeName" + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router that the route is associated with.

", + "location": "uri", + "locationName": "virtualRouterName" + } + }, + "documentation": "" + }, + "DeleteRouteOutput": { + "type": "structure", + "required": [ + "route" + ], + "members": { + "route": { + "shape": "RouteData", + "documentation": "

The route that was deleted.

" + } + }, + "documentation": "", + "payload": "route" + }, + "Listeners": { + "type": "list", + "member": { + "shape": "Listener" + }, + "min": 0, + "max": 1 + }, + "Backends": { + "type": "list", + "member": { + "shape": "Backend" + } + }, + "PortProtocol": { + "type": "string", + "enum": [ + "grpc", + "http", + "http2", + "tcp" + ] + }, + "VirtualNodeStatusCode": { + "type": "string", + "enum": [ + "ACTIVE", + "DELETED", + "INACTIVE" + ] + }, + "ServiceName": { + "type": "string" + }, + "UpdateVirtualServiceInput": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualServiceName" + ], + "members": { + "clientToken": { + "shape": "String", + "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", + "idempotencyToken": true + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual service resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "VirtualServiceSpec", + "documentation": "

The new virtual service specification to apply. This overwrites the existing\n data.

" + }, + "virtualServiceName": { + "shape": "ServiceName", + "documentation": "

The name of the virtual service to update.

", + "location": "uri", + "locationName": "virtualServiceName" + } + }, + "documentation": "" + }, + "HealthCheckThreshold": { + "type": "integer", + "min": 2, + "max": 10 + }, + "UpdateRouteOutput": { + "type": "structure", + "required": [ + "route" + ], + "members": { + "route": { + "shape": "RouteData", + "documentation": "

A full description of the route that was updated.

" + } + }, + "documentation": "", + "payload": "route" + }, + "PercentInt": { + "type": "integer", + "min": 0, + "max": 100 + }, + "MethodName": { + "type": "string", + "min": 1, + "max": 50 + }, + "TagValue": { + "type": "string", + "min": 0, + "max": 256 + }, + "HttpRouteAction": { + "type": "structure", + "required": [ + "weightedTargets" + ], + "members": { + "weightedTargets": { + "shape": "WeightedTargets", + "documentation": "

An object that represents the targets that traffic is routed to when a request matches the route.

" + } + }, + "documentation": "

An object that represents the action to take if a match is determined.

" + }, + "ListRoutesInput": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "limit": { + "shape": "ListRoutesLimit", + "documentation": "

The maximum number of results returned by ListRoutes in paginated output.\n When you use this parameter, ListRoutes returns only limit\n results in a single page along with a nextToken response element. You can see\n the remaining results of the initial request by sending another ListRoutes\n request with the returned nextToken value. This value can be between\n 1 and 100. If you don't use this parameter,\n ListRoutes returns up to 100 results and a\n nextToken value if applicable.

", + "location": "querystring", + "locationName": "limit" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to list routes in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "shape": "String", + "documentation": "

The nextToken value returned from a previous paginated\n ListRoutes request where limit was used and the results\n exceeded the value of that parameter. Pagination continues from the end of the previous\n results that returned the nextToken value.

", + "location": "querystring", + "locationName": "nextToken" + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router to list routes in.

", + "location": "uri", + "locationName": "virtualRouterName" + } + }, + "documentation": "" + }, + "VirtualServiceRef": { + "type": "structure", + "required": [ + "arn", + "meshName", + "meshOwner", + "resourceOwner", + "virtualServiceName" + ], + "members": { + "arn": { + "shape": "Arn", + "documentation": "

The full Amazon Resource Name (ARN) for the virtual service.

" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual service resides in.

" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "resourceOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's\n the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "virtualServiceName": { + "shape": "ServiceName", + "documentation": "

The name of the virtual service.

" + } + }, + "documentation": "

An object that represents a virtual service returned by a list operation.

" + }, + "VirtualNodeStatus": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": { + "shape": "VirtualNodeStatusCode", + "documentation": "

The current status of the virtual node.

" + } + }, + "documentation": "

An object that represents the current status of the virtual node.

" + }, + "VirtualRouterRef": { + "type": "structure", + "required": [ + "arn", + "meshName", + "meshOwner", + "resourceOwner", + "virtualRouterName" + ], + "members": { + "arn": { + "shape": "Arn", + "documentation": "

The full Amazon Resource Name (ARN) for the virtual router.

" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual router resides in.

" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "resourceOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's\n the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router.

" + } + }, + "documentation": "

An object that represents a virtual router returned by a list operation.

" + }, + "VirtualServiceData": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "spec", + "status", + "virtualServiceName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual service resides in.

" + }, + "metadata": { + "shape": "ResourceMetadata" + }, + "spec": { + "shape": "VirtualServiceSpec", + "documentation": "

The specifications of the virtual service.

" + }, + "status": { + "shape": "VirtualServiceStatus", + "documentation": "

The current status of the virtual service.

" + }, + "virtualServiceName": { + "shape": "ServiceName", + "documentation": "

The name of the virtual service.

" + } + }, + "documentation": "

An object that represents a virtual service returned by a describe operation.

" + }, + "HttpRouteHeader": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "invert": { + "shape": "Boolean", + "documentation": "

Specify True to match anything except the match criteria. The default value is False.

" + }, + "match": { + "shape": "HeaderMatchMethod", + "documentation": "

The HeaderMatchMethod object.

" + }, + "name": { + "shape": "HeaderName", + "documentation": "

A name for the HTTP header in the client request that will be matched on.

" + } + }, + "documentation": "

An object that represents the HTTP header in the request.

" + }, + "FilePath": { + "type": "string", + "min": 1, + "max": 255 + }, + "AwsCloudMapInstanceAttributes": { + "type": "list", + "member": { + "shape": "AwsCloudMapInstanceAttribute" + } + }, + "VirtualNodeRef": { + "type": "structure", + "required": [ + "arn", + "meshName", + "meshOwner", + "resourceOwner", + "virtualNodeName" + ], + "members": { + "arn": { + "shape": "Arn", + "documentation": "

The full Amazon Resource Name (ARN) for the virtual node.

" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual node resides in.

" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "resourceOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's\n the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "virtualNodeName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual node.

" + } + }, + "documentation": "

An object that represents a virtual node returned by a list operation.

" + }, + "CreateMeshInput": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "clientToken": { + "shape": "String", + "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", + "idempotencyToken": true + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name to use for the service mesh.

" + }, + "spec": { + "shape": "MeshSpec", + "documentation": "

The service mesh specification to apply.

" + }, + "tags": { + "shape": "TagList", + "documentation": "

Optional metadata that you can apply to the service mesh to assist with categorization\n and organization. Each tag consists of a key and an optional value, both of which you\n define. Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

", + "tags": [ + "not-preview" + ] + } + }, + "documentation": "" + }, + "GrpcRouteAction": { + "type": "structure", + "required": [ + "weightedTargets" + ], + "members": { + "weightedTargets": { + "shape": "WeightedTargets", + "documentation": "

An object that represents the targets that traffic is routed to when a request matches the route.

" + } + }, + "documentation": "

An object that represents the action to take if a match is determined.

" + }, + "LimitExceededException": { + "type": "structure", + "members": { + "message": { + "shape": "String" + } + }, + "documentation": "

You have exceeded a service limit for your account. For more information, see Service\n Limits in the AWS App Mesh User Guide.

", + "exception": true, + "error": { + "code": "LimitExceededException", + "httpStatusCode": 400, + "senderFault": true + } + }, + "UpdateMeshOutput": { + "type": "structure", + "required": [ + "mesh" + ], + "members": { + "mesh": { + "shape": "MeshData" + } + }, + "documentation": "", + "payload": "mesh" + }, + "GrpcRouteMetadataMatchMethod": { + "type": "structure", + "members": { + "exact": { + "shape": "HeaderMatch", + "documentation": "

The value sent by the client must match the specified value exactly.

" + }, + "prefix": { + "shape": "HeaderMatch", + "documentation": "

The value sent by the client must begin with the specified characters.

" + }, + "range": { + "shape": "MatchRange", + "documentation": "

An object that represents the range of values to match on.

" + }, + "regex": { + "shape": "HeaderMatch", + "documentation": "

The value sent by the client must include the specified characters.

" + }, + "suffix": { + "shape": "HeaderMatch", + "documentation": "

The value sent by the client must end with the specified characters.

" + } + }, + "documentation": "

An object that represents the match method. Specify one of the match values.

" + }, + "DescribeVirtualServiceInput": { + "type": "structure", + "required": [ + "meshName", + "virtualServiceName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual service resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualServiceName": { + "shape": "ServiceName", + "documentation": "

The name of the virtual service to describe.

", + "location": "uri", + "locationName": "virtualServiceName" + } + }, + "documentation": "" + }, + "ListVirtualServicesLimit": { + "type": "integer", + "box": true, + "min": 1, + "max": 100 + }, + "AwsCloudMapInstanceAttribute": { + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": { + "shape": "AwsCloudMapInstanceAttributeKey", + "documentation": "

The name of an AWS Cloud Map service instance attribute key. Any AWS Cloud Map service\n instance that contains the specified key and value is returned.

" + }, + "value": { + "shape": "AwsCloudMapInstanceAttributeValue", + "documentation": "

The value of an AWS Cloud Map service instance attribute key. Any AWS Cloud Map service\n instance that contains the specified key and value is returned.

" + } + }, + "documentation": "

An object that represents the AWS Cloud Map attribute information for your virtual\n node.

" + }, + "VirtualServiceSpec": { + "type": "structure", + "members": { + "provider": { + "shape": "VirtualServiceProvider", + "documentation": "

The App Mesh object that is acting as the provider for a virtual service. You can specify\n a single virtual node or virtual router.

" + } + }, + "documentation": "

An object that represents the specification of a virtual service.

" + }, + "MatchRange": { + "type": "structure", + "required": [ + "end", + "start" + ], + "members": { + "end": { + "shape": "Long", + "documentation": "

The end of the range.

" + }, + "start": { + "shape": "Long", + "documentation": "

The start of the range.

" + } + }, + "documentation": "

An object that represents the range of values to match on. The first character of the range is included in the range, though the last character is not. For example, if the range specified were 1-100, only values 1-99 would be matched.

" + }, + "ListVirtualRoutersLimit": { + "type": "integer", + "box": true, + "min": 1, + "max": 100 + }, + "HealthCheckIntervalMillis": { + "type": "long", + "box": true, + "min": 5000, + "max": 300000 + }, + "VirtualRouterList": { + "type": "list", + "member": { + "shape": "VirtualRouterRef" + } + }, + "Arn": { + "type": "string" + }, + "TcpRoute": { + "type": "structure", + "required": [ + "action" + ], + "members": { + "action": { + "shape": "TcpRouteAction", + "documentation": "

The action to take if a match is determined.

" + } + }, + "documentation": "

An object that represents a TCP route type.

" + }, + "VirtualNodeList": { + "type": "list", + "member": { + "shape": "VirtualNodeRef" + } + }, + "ListVirtualRoutersInput": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "shape": "ListVirtualRoutersLimit", + "documentation": "

The maximum number of results returned by ListVirtualRouters in paginated\n output. When you use this parameter, ListVirtualRouters returns only\n limit results in a single page along with a nextToken response\n element. You can see the remaining results of the initial request by sending another\n ListVirtualRouters request with the returned nextToken value.\n This value can be between 1 and 100. If you don't use this\n parameter, ListVirtualRouters returns up to 100 results and\n a nextToken value if applicable.

", + "location": "querystring", + "locationName": "limit" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to list virtual routers in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "shape": "String", + "documentation": "

The nextToken value returned from a previous paginated\n ListVirtualRouters request where limit was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value.

", + "location": "querystring", + "locationName": "nextToken" + } + }, + "documentation": "" + }, + "DurationUnit": { + "type": "string", + "enum": [ + "ms", + "s" + ] + }, + "RoutePriority": { + "type": "integer", + "box": true, + "min": 0, + "max": 1000 + }, + "ListVirtualServicesInput": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "shape": "ListVirtualServicesLimit", + "documentation": "

The maximum number of results returned by ListVirtualServices in paginated\n output. When you use this parameter, ListVirtualServices returns only\n limit results in a single page along with a nextToken response\n element. You can see the remaining results of the initial request by sending another\n ListVirtualServices request with the returned nextToken value.\n This value can be between 1 and 100. If you don't use this\n parameter, ListVirtualServices returns up to 100 results and\n a nextToken value if applicable.

", + "location": "querystring", + "locationName": "limit" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to list virtual services in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "shape": "String", + "documentation": "

The nextToken value returned from a previous paginated\n ListVirtualServices request where limit was used and the\n results exceeded the value of that parameter. Pagination continues from the end of the\n previous results that returned the nextToken value.

", + "location": "querystring", + "locationName": "nextToken" + } + }, + "documentation": "" + }, + "AccessLog": { + "type": "structure", + "members": { + "file": { + "shape": "FileAccessLog", + "documentation": "

The file object to send virtual node access logs to.

" + } + }, + "documentation": "

An object that represents the access logging information for a virtual node.

" + }, + "ListVirtualNodesInput": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "shape": "ListVirtualNodesLimit", + "documentation": "

The maximum number of results returned by ListVirtualNodes in paginated\n output. When you use this parameter, ListVirtualNodes returns only\n limit results in a single page along with a nextToken response\n element. You can see the remaining results of the initial request by sending another\n ListVirtualNodes request with the returned nextToken value.\n This value can be between 1 and 100. If you don't use this\n parameter, ListVirtualNodes returns up to 100 results and a\n nextToken value if applicable.

", + "location": "querystring", + "locationName": "limit" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to list virtual nodes in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "shape": "String", + "documentation": "

The nextToken value returned from a previous paginated\n ListVirtualNodes request where limit was used and the results\n exceeded the value of that parameter. Pagination continues from the end of the previous\n results that returned the nextToken value.

", + "location": "querystring", + "locationName": "nextToken" + } + }, + "documentation": "" + }, + "ListVirtualNodesLimit": { + "type": "integer", + "box": true, + "min": 1, + "max": 100 + }, + "HealthCheckTimeoutMillis": { + "type": "long", + "box": true, + "min": 2000, + "max": 60000 + }, + "ResourceName": { + "type": "string", + "min": 1, + "max": 255 + }, + "TooManyRequestsException": { + "type": "structure", + "members": { + "message": { + "shape": "String" + } + }, + "documentation": "

The maximum request rate permitted by the App Mesh APIs has been exceeded for your\n account. For best results, use an increasing or variable sleep interval between\n requests.

", + "exception": true, + "error": { + "code": "TooManyRequestsException", + "httpStatusCode": 429, + "senderFault": true + } + }, + "Timestamp": { + "type": "timestamp" + }, + "HeaderMatch": { + "type": "string", + "min": 1, + "max": 255 + }, + "AccountId": { + "type": "string", + "min": 12, + "max": 12 + }, + "Duration": { + "type": "structure", + "members": { + "unit": { + "shape": "DurationUnit", + "documentation": "

A unit of time.

" + }, + "value": { + "shape": "DurationValue", + "documentation": "

A number of time units.

" + } + }, + "documentation": "

An object that represents a duration of time.

" + }, + "DescribeRouteOutput": { + "type": "structure", + "required": [ + "route" + ], + "members": { + "route": { + "shape": "RouteData", + "documentation": "

The full description of your route.

" + } + }, + "documentation": "", + "payload": "route" + }, + "HttpRouteMatch": { + "type": "structure", + "required": [ + "prefix" + ], + "members": { + "headers": { + "shape": "HttpRouteHeaders", + "documentation": "

An object that represents the client request headers to match on.

" + }, + "method": { + "shape": "HttpMethod", + "documentation": "

The client request method to match on. Specify only one.

" + }, + "prefix": { + "shape": "String", + "documentation": "

Specifies the path to match requests with. This parameter must always start with\n /, which by itself matches all requests to the virtual service name. You\n can also match for path-based routing of requests. For example, if your virtual service\n name is my-service.local and you want the route to match requests to\n my-service.local/metrics, your prefix should be\n /metrics.

" + }, + "scheme": { + "shape": "HttpScheme", + "documentation": "

The client request scheme to match on. Specify only one.

" + } + }, + "documentation": "

An object that represents the requirements for a route to match HTTP requests for a virtual\n router.

" + }, + "TagRef": { + "type": "structure", + "required": [ + "key" + ], + "members": { + "key": { + "shape": "TagKey", + "documentation": "

One part of a key-value pair that make up a tag. A key is a general label\n that acts like a category for more specific tag values.

" + }, + "value": { + "shape": "TagValue", + "documentation": "

The optional part of a key-value pair that make up a tag. A value acts as a\n descriptor within a tag category (key).

" + } + }, + "documentation": "

Optional metadata that you apply to a resource to assist with categorization and\n organization. Each tag consists of a key and an optional value, both of which you define.\n Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

" + }, + "MeshRef": { + "type": "structure", + "required": [ + "arn", + "meshName", + "meshOwner", + "resourceOwner" + ], + "members": { + "arn": { + "shape": "Arn", + "documentation": "

The full Amazon Resource Name (ARN) of the service mesh.

" + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh.

" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

" + }, + "resourceOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's\n the ID of the mesh owner, or another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes.

" + } + }, + "documentation": "

An object that represents a service mesh returned by a list operation.

" + }, + "MeshStatusCode": { + "type": "string", + "enum": [ + "ACTIVE", + "DELETED", + "INACTIVE" + ] + }, + "MeshData": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "spec", + "status" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh.

" + }, + "metadata": { + "shape": "ResourceMetadata", + "documentation": "

The associated metadata for the service mesh.

" + }, + "spec": { + "shape": "MeshSpec", + "documentation": "

The associated specification for the service mesh.

" + }, + "status": { + "shape": "MeshStatus", + "documentation": "

The status of the service mesh.

" + } + }, + "documentation": "

An object that represents a service mesh returned by a describe operation.

" + }, + "VirtualRouterStatus": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": { + "shape": "VirtualRouterStatusCode", + "documentation": "

The current status of the virtual router.

" + } + }, + "documentation": "

An object that represents the status of a virtual router.

" + }, + "TcpRouteAction": { + "type": "structure", + "required": [ + "weightedTargets" + ], + "members": { + "weightedTargets": { + "shape": "WeightedTargets", + "documentation": "

An object that represents the targets that traffic is routed to when a request matches the route.

" + } + }, + "documentation": "

An object that represents the action to take if a match is determined.

" + }, + "DescribeVirtualNodeInput": { + "type": "structure", + "required": [ + "meshName", + "virtualNodeName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual node resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualNodeName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual node to describe.

", + "location": "uri", + "locationName": "virtualNodeName" + } + }, + "documentation": "" + }, + "RouteStatus": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": { + "shape": "RouteStatusCode", + "documentation": "

The current status for the route.

" + } + }, + "documentation": "

An object that represents the current status of a route.

" + }, + "Listener": { + "type": "structure", + "required": [ + "portMapping" + ], + "members": { + "healthCheck": { + "shape": "HealthCheckPolicy", + "documentation": "

The health check information for the listener.

" + }, + "portMapping": { + "shape": "PortMapping", + "documentation": "

The port mapping information for the listener.

" + }, + "tls": { + "shape": "ListenerTls", + "documentation": "

A reference to an object that represents the Transport Layer Security (TLS) properties for a listener.

" + } + }, + "documentation": "

An object that represents a listener for a virtual node.

" + }, + "GrpcRoute": { + "type": "structure", + "required": [ + "action", + "match" + ], + "members": { + "action": { + "shape": "GrpcRouteAction", + "documentation": "

An object that represents the action to take if a match is determined.

" + }, + "match": { + "shape": "GrpcRouteMatch", + "documentation": "

An object that represents the criteria for determining a request match.

" + }, + "retryPolicy": { + "shape": "GrpcRetryPolicy", + "documentation": "

An object that represents a retry policy.

" + } + }, + "documentation": "

An object that represents a gRPC route type.

" + }, + "ListRoutesLimit": { + "type": "integer", + "box": true, + "min": 1, + "max": 100 + }, + "ClientPolicyTls": { + "type": "structure", + "required": [ + "validation" + ], + "members": { + "enforce": { + "shape": "Boolean", + "box": true, + "documentation": "

Whether the policy is enforced. The default is True, if a value isn't specified.

" + }, + "ports": { + "shape": "PortSet", + "documentation": "

The range of ports that the policy is enforced for.

" + }, + "validation": { + "shape": "TlsValidationContext", + "documentation": "

A reference to an object that represents a TLS validation context.

" + } + }, + "documentation": "

An object that represents a Transport Layer Security (TLS) client policy.

" + }, + "DeleteVirtualServiceOutput": { + "type": "structure", + "required": [ + "virtualService" + ], + "members": { + "virtualService": { + "shape": "VirtualServiceData", + "documentation": "

The virtual service that was deleted.

" + } + }, + "documentation": "", + "payload": "virtualService" + }, + "VirtualNodeServiceProvider": { + "type": "structure", + "required": [ + "virtualNodeName" + ], + "members": { + "virtualNodeName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual node that is acting as a service provider.

" + } + }, + "documentation": "

An object that represents a virtual node service provider.

" + }, + "BackendDefaults": { + "type": "structure", + "members": { + "clientPolicy": { + "shape": "ClientPolicy", + "documentation": "

A reference to an object that represents a client policy.

" + } + }, + "documentation": "

An object that represents the default properties for a backend.

" + }, + "ListenerTlsFileCertificate": { + "type": "structure", + "required": [ + "certificateChain", + "privateKey" + ], + "members": { + "certificateChain": { + "shape": "FilePath", + "documentation": "

The certificate chain for the certificate.

" + }, + "privateKey": { + "shape": "FilePath", + "documentation": "

The private key for a certificate stored on the file system of the virtual node that the proxy is running on.

" + } + }, + "documentation": "

An object that represents a local file certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).

" + }, + "HttpRetryPolicy": { + "type": "structure", + "required": [ + "maxRetries", + "perRetryTimeout" + ], + "members": { + "httpRetryEvents": { + "shape": "HttpRetryPolicyEvents", + "documentation": "

Specify at least one of the following values.

\n
    \n
  • \n

    \n server-error – HTTP status codes 500, 501,\n 502, 503, 504, 505, 506, 507, 508, 510, and 511

    \n
  • \n
  • \n

    \n gateway-error – HTTP status codes 502,\n 503, and 504

    \n
  • \n
  • \n

    \n client-error – HTTP status code 409

    \n
  • \n
  • \n

    \n stream-error – Retry on refused\n stream

    \n
  • \n
" + }, + "maxRetries": { + "shape": "MaxRetries", + "documentation": "

The maximum number of retry attempts.

" + }, + "perRetryTimeout": { + "shape": "Duration", + "documentation": "

An object that represents a duration of time.

" + }, + "tcpRetryEvents": { + "shape": "TcpRetryPolicyEvents", + "documentation": "

Specify a valid value.

" + } + }, + "documentation": "

An object that represents a retry policy. Specify at least one value for at least one of the types of RetryEvents, a value for maxRetries, and a value for perRetryTimeout.

" + }, + "DescribeVirtualRouterInput": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the virtual router resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router to describe.

", + "location": "uri", + "locationName": "virtualRouterName" + } + }, + "documentation": "" + }, + "TagResourceOutput": { + "type": "structure", + "members": { }, + "documentation": "" + }, + "RouteList": { + "type": "list", + "member": { + "shape": "RouteRef" + } + }, + "TooManyTagsException": { + "type": "structure", + "members": { + "message": { + "shape": "String" + } + }, + "documentation": "

The request exceeds the maximum allowed number of tags allowed per resource. The current\n limit is 50 user tags per resource. You must reduce the number of tags in the request. None\n of the tags in this request were applied.

", + "exception": true, + "error": { + "code": "TooManyTagsException", + "httpStatusCode": 400, + "senderFault": true + } + }, + "PortNumber": { + "type": "integer", + "min": 1, + "max": 65535 + }, + "TlsValidationContextFileTrust": { + "type": "structure", + "required": [ + "certificateChain" + ], + "members": { + "certificateChain": { + "shape": "FilePath", + "documentation": "

The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on.

" + } + }, + "documentation": "

An object that represents a Transport Layer Security (TLS) validation context trust for a local file.

" + }, + "GrpcRouteMetadata": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "invert": { + "shape": "Boolean", + "documentation": "

Specify True to match anything except the match criteria. The default value is False.

" + }, + "match": { + "shape": "GrpcRouteMetadataMatchMethod", + "documentation": "

An object that represents the data to match from the request.

" + }, + "name": { + "shape": "HeaderName", + "documentation": "

The name of the route.

" + } + }, + "documentation": "

An object that represents the match metadata for the route.

" + }, + "CreateRouteInput": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "shape": "String", + "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", + "idempotencyToken": true + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to create the route in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then\n the account that you specify must share the mesh with your account before you can create \n the resource in the service mesh. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "routeName": { + "shape": "ResourceName", + "documentation": "

The name to use for the route.

" + }, + "spec": { + "shape": "RouteSpec", + "documentation": "

The route specification to apply.

" + }, + "tags": { + "shape": "TagList", + "documentation": "

Optional metadata that you can apply to the route to assist with categorization and\n organization. Each tag consists of a key and an optional value, both of which you define.\n Tag keys can have a maximum character length of 128 characters, and tag values can have\n a maximum length of 256 characters.

", + "tags": [ + "not-preview" + ] + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router in which to create the route. If the virtual router is in a shared mesh,\n then you must be the owner of the virtual router resource.

", + "location": "uri", + "locationName": "virtualRouterName" + } + }, + "documentation": "" + }, + "WeightedTargets": { + "type": "list", + "member": { + "shape": "WeightedTarget" + }, + "min": 1, + "max": 10 + }, + "HttpRouteHeaders": { + "type": "list", + "member": { + "shape": "HttpRouteHeader" + }, + "min": 1, + "max": 10 + }, + "String": { + "type": "string" + }, + "HttpScheme": { + "type": "string", + "enum": [ + "http", + "https" + ] + }, + "UpdateRouteInput": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "shape": "String", + "documentation": "

Unique, case-sensitive identifier that you provide to ensure the idempotency of the\nrequest. Up to 36 letters, numbers, hyphens, and underscores are allowed.

", + "idempotencyToken": true + }, + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh that the route resides in.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + }, + "routeName": { + "shape": "ResourceName", + "documentation": "

The name of the route to update.

", + "location": "uri", + "locationName": "routeName" + }, + "spec": { + "shape": "RouteSpec", + "documentation": "

The new route specification to apply. This overwrites the existing data.

" + }, + "virtualRouterName": { + "shape": "ResourceName", + "documentation": "

The name of the virtual router that the route is associated with.

", + "location": "uri", + "locationName": "virtualRouterName" + } + }, + "documentation": "" + }, + "HttpRoute": { + "type": "structure", + "required": [ + "action", + "match" + ], + "members": { + "action": { + "shape": "HttpRouteAction", + "documentation": "

An object that represents the action to take if a match is determined.

" + }, + "match": { + "shape": "HttpRouteMatch", + "documentation": "

An object that represents the criteria for determining a request match.

" + }, + "retryPolicy": { + "shape": "HttpRetryPolicy", + "documentation": "

An object that represents a retry policy.

" + } + }, + "documentation": "

An object that represents an HTTP or HTTP/2 route type.

" + }, + "DescribeMeshInput": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "meshName": { + "shape": "ResourceName", + "documentation": "

The name of the service mesh to describe.

", + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "shape": "AccountId", + "documentation": "

The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's\n the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes.

", + "location": "querystring", + "locationName": "meshOwner" + } + }, + "documentation": "" + }, + "MeshSpec": { + "type": "structure", + "members": { + "egressFilter": { + "shape": "EgressFilter", + "documentation": "

The egress filter rules for the service mesh.

" + } + }, + "documentation": "

An object that represents the specification of a service mesh.

" + }, "ListTagsForResourceOutput": { "type": "structure", "required": [ @@ -3782,25 +4199,18 @@ }, "documentation": "" }, - "DeleteVirtualRouterOutput": { + "ListenerTlsAcmCertificate": { "type": "structure", "required": [ - "virtualRouter" + "certificateArn" ], "members": { - "virtualRouter": { - "shape": "VirtualRouterData", - "documentation": "

The virtual router that was deleted.

" + "certificateArn": { + "shape": "Arn", + "documentation": "

The Amazon Resource Name (ARN) for the certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS).

" } }, - "documentation": "", - "payload": "virtualRouter" - }, - "TagsLimit": { - "type": "integer", - "box": true, - "min": 1, - "max": 50 + "documentation": "

An object that represents an AWS Certicate Manager (ACM) certificate.

" }, "TagKey": { "type": "string", @@ -3814,20 +4224,6 @@ "DELETED", "INACTIVE" ] - }, - "DeleteVirtualNodeOutput": { - "type": "structure", - "required": [ - "virtualNode" - ], - "members": { - "virtualNode": { - "shape": "VirtualNodeData", - "documentation": "

The virtual node that was deleted.

" - } - }, - "documentation": "", - "payload": "virtualNode" } } } diff --git a/botocore/data/autoscaling/2011-01-01/service-2.json b/botocore/data/autoscaling/2011-01-01/service-2.json index 1b2a94d6..b66a03a9 100644 --- a/botocore/data/autoscaling/2011-01-01/service-2.json +++ b/botocore/data/autoscaling/2011-01-01/service-2.json @@ -121,7 +121,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, the call fails. For information about viewing this limit, see DescribeAccountLimits. For information about updating this limit, see Amazon EC2 Auto Scaling Limits in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, the call fails. For information about viewing this limit, see DescribeAccountLimits. For information about updating this limit, see Amazon EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User Guide.

" }, "CreateLaunchConfiguration":{ "name":"CreateLaunchConfiguration", @@ -135,7 +135,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, the call fails. For information about viewing this limit, see DescribeAccountLimits. For information about updating this limit, see Amazon EC2 Auto Scaling Limits in the Amazon EC2 Auto Scaling User Guide.

For more information, see Launch Configurations in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, the call fails. For information about viewing this limit, see DescribeAccountLimits. For information about updating this limit, see Amazon EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User Guide.

For more information, see Launch Configurations in the Amazon EC2 Auto Scaling User Guide.

" }, "CreateOrUpdateTags":{ "name":"CreateOrUpdateTags", @@ -258,7 +258,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Describes the current Amazon EC2 Auto Scaling resource limits for your AWS account.

For information about requesting an increase in these limits, see Amazon EC2 Auto Scaling Limits in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Describes the current Amazon EC2 Auto Scaling resource quotas for your AWS account.

For information about requesting an increase, see Amazon EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User Guide.

" }, "DescribeAdjustmentTypes":{ "name":"DescribeAdjustmentTypes", @@ -699,7 +699,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

Creates or updates a scaling policy for an Auto Scaling group. To update an existing scaling policy, use the existing policy name and set the parameters to change. Any existing parameter not changed in an update to an existing policy is not changed in this update request.

For more information about using scaling policies to scale your Auto Scaling group automatically, see Dynamic Scaling in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Creates or updates a scaling policy for an Auto Scaling group.

For more information about using scaling policies to scale your Auto Scaling group automatically, see Dynamic Scaling in the Amazon EC2 Auto Scaling User Guide.

" }, "PutScheduledUpdateGroupAction":{ "name":"PutScheduledUpdateGroupAction", @@ -814,7 +814,7 @@ {"shape":"ScalingActivityInProgressFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Terminates the specified instance and optionally adjusts the desired group size.

This call simply makes a termination request. The instance is not terminated immediately.

" + "documentation":"

Terminates the specified instance and optionally adjusts the desired group size. This call simply makes a termination request. The instance is not terminated immediately. When an instance is terminated, the instance status changes to terminated. You can't connect to or start an instance after you've terminated it.

If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are terminated.

By default, Amazon EC2 Auto Scaling balances instances across all Availability Zones. If you decrement the desired capacity, your Auto Scaling group can become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate instances in other zones. For more information, see Rebalancing Activities in the Amazon EC2 Auto Scaling User Guide.

" }, "UpdateAutoScalingGroup":{ "name":"UpdateAutoScalingGroup", @@ -1501,7 +1501,7 @@ }, "MaxInstanceLifetime":{ "shape":"MaxInstanceLifetime", - "documentation":"

The maximum amount of time, in seconds, that an instance can be in service.

Valid Range: Minimum value of 604800.

" + "documentation":"

The maximum amount of time, in seconds, that an instance can be in service.

For more information, see Replacing Auto Scaling Instances Based on Maximum Instance Lifetime in the Amazon EC2 Auto Scaling User Guide.

Valid Range: Minimum value of 604800.

" } } }, @@ -1723,11 +1723,11 @@ "members":{ "MaxNumberOfAutoScalingGroups":{ "shape":"MaxNumberOfAutoScalingGroups", - "documentation":"

The maximum number of groups allowed for your AWS account. The default limit is 200 per AWS Region.

" + "documentation":"

The maximum number of groups allowed for your AWS account. The default is 200 groups per AWS Region.

" }, "MaxNumberOfLaunchConfigurations":{ "shape":"MaxNumberOfLaunchConfigurations", - "documentation":"

The maximum number of launch configurations allowed for your AWS account. The default limit is 200 per AWS Region.

" + "documentation":"

The maximum number of launch configurations allowed for your AWS account. The default is 200 launch configurations per AWS Region.

" }, "NumberOfAutoScalingGroups":{ "shape":"NumberOfAutoScalingGroups", @@ -2578,7 +2578,7 @@ }, "WeightedCapacity":{ "shape":"XmlStringMaxLen32", - "documentation":"

The number of capacity units, which gives the instance type a proportional weight to other instance types. For example, larger instance types are generally weighted more than smaller instance types. These are the same units that you chose to set the desired capacity in terms of instances, or a performance attribute such as vCPUs, memory, or I/O.

Valid Range: Minimum value of 1. Maximum value of 999.

" + "documentation":"

The number of capacity units, which gives the instance type a proportional weight to other instance types. For example, larger instance types are generally weighted more than smaller instance types. These are the same units that you chose to set the desired capacity in terms of instances, or a performance attribute such as vCPUs, memory, or I/O.

For more information, see Instance Weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

Valid Range: Minimum value of 1. Maximum value of 999.

" } }, "documentation":"

Describes an override for a launch template.

" @@ -3124,6 +3124,10 @@ "TargetTrackingConfiguration":{ "shape":"TargetTrackingConfiguration", "documentation":"

A target tracking scaling policy. Includes support for predefined or customized metrics.

For more information, see TargetTrackingConfiguration in the Amazon EC2 Auto Scaling API Reference.

Conditional: If you specify TargetTrackingScaling for the policy type, you must specify this parameter. (Not used with any other policy type.)

" + }, + "Enabled":{ + "shape":"ScalingPolicyEnabled", + "documentation":"

Indicates whether the scaling policy is enabled or disabled. The default is enabled. For more information, see Disabling a Scaling Policy for an Auto Scaling Group in the Amazon EC2 Auto Scaling User Guide.

" } } }, @@ -3335,10 +3339,15 @@ "TargetTrackingConfiguration":{ "shape":"TargetTrackingConfiguration", "documentation":"

A target tracking scaling policy.

" + }, + "Enabled":{ + "shape":"ScalingPolicyEnabled", + "documentation":"

Indicates whether the policy is enabled (true) or disabled (false).

" } }, "documentation":"

Describes a scaling policy.

" }, + "ScalingPolicyEnabled":{"type":"boolean"}, "ScalingProcessQuery":{ "type":"structure", "required":["AutoScalingGroupName"], @@ -3799,7 +3808,7 @@ }, "MaxInstanceLifetime":{ "shape":"MaxInstanceLifetime", - "documentation":"

The maximum amount of time, in seconds, that an instance can be in service.

Valid Range: Minimum value of 604800.

" + "documentation":"

The maximum amount of time, in seconds, that an instance can be in service.

For more information, see Replacing Auto Scaling Instances Based on Maximum Instance Lifetime in the Amazon EC2 Auto Scaling User Guide.

Valid Range: Minimum value of 604800.

" } } }, diff --git a/botocore/data/chime/2018-05-01/service-2.json b/botocore/data/chime/2018-05-01/service-2.json index 97125229..730d251c 100644 --- a/botocore/data/chime/2018-05-01/service-2.json +++ b/botocore/data/chime/2018-05-01/service-2.json @@ -132,7 +132,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Adds up to 50 members to a chat room. Members can be either users or bots. The member role designates whether the member is a chat room administrator or a general chat room member.

" + "documentation":"

Adds up to 50 members to a chat room in an Amazon Chime Enterprise account. Members can be either users or bots. The member role designates whether the member is a chat room administrator or a general chat room member.

" }, "BatchDeletePhoneNumber":{ "name":"BatchDeletePhoneNumber", @@ -356,7 +356,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a chat room for the specified Amazon Chime account.

" + "documentation":"

Creates a chat room for the specified Amazon Chime Enterprise account.

" }, "CreateRoomMembership":{ "name":"CreateRoomMembership", @@ -378,7 +378,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Adds a member to a chat room. A member can be either a user or a bot. The member role designates whether the member is a chat room administrator or a general chat room member.

" + "documentation":"

Adds a member to a chat room in an Amazon Chime Enterprise account. A member can be either a user or a bot. The member role designates whether the member is a chat room administrator or a general chat room member.

" }, "CreateUser":{ "name":"CreateUser", @@ -441,7 +441,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates an Amazon Chime Voice Connector group under the administrator's AWS account. You can associate up to three existing Amazon Chime Voice Connectors with the Amazon Chime Voice Connector group by including VoiceConnectorItems in the request.

You can include Amazon Chime Voice Connectors from different AWS Regions in your group. This creates a fault tolerant mechanism for fallback in case of availability events.

" + "documentation":"

Creates an Amazon Chime Voice Connector group under the administrator's AWS account. You can associate Amazon Chime Voice Connectors with the Amazon Chime Voice Connector group by including VoiceConnectorItems in the request.

You can include Amazon Chime Voice Connectors from different AWS Regions in your group. This creates a fault tolerant mechanism for fallback in case of availability events.

" }, "DeleteAccount":{ "name":"DeleteAccount", @@ -556,7 +556,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes a chat room.

" + "documentation":"

Deletes a chat room in an Amazon Chime Enterprise account.

" }, "DeleteRoomMembership":{ "name":"DeleteRoomMembership", @@ -575,7 +575,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Removes a member from a chat room.

" + "documentation":"

Removes a member from a chat room in an Amazon Chime Enterprise account.

" }, "DeleteVoiceConnector":{ "name":"DeleteVoiceConnector", @@ -984,7 +984,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Retrieves room details, such as the room name.

" + "documentation":"

Retrieves room details, such as the room name, for a room in an Amazon Chime Enterprise account.

" }, "GetUser":{ "name":"GetUser", @@ -1319,7 +1319,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the membership details for the specified room, such as the members' IDs, email addresses, and names.

" + "documentation":"

Lists the membership details for the specified room in an Amazon Chime Enterprise account, such as the members' IDs, email addresses, and names.

" }, "ListRooms":{ "name":"ListRooms", @@ -1339,7 +1339,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the room details for the specified Amazon Chime account. Optionally, filter the results by a member ID (user ID or bot ID) to see a list of rooms that the member belongs to.

" + "documentation":"

Lists the room details for the specified Amazon Chime Enterprise account. Optionally, filter the results by a member ID (user ID or bot ID) to see a list of rooms that the member belongs to.

" }, "ListUsers":{ "name":"ListUsers", @@ -1774,7 +1774,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Updates room details, such as the room name.

" + "documentation":"

Updates room details, such as the room name, for a room in an Amazon Chime Enterprise account.

" }, "UpdateRoomMembership":{ "name":"UpdateRoomMembership", @@ -1794,7 +1794,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Updates room membership details, such as the member role. The member role designates whether the member is a chat room administrator or a general chat room member. The member role can be updated only for user IDs.

" + "documentation":"

Updates room membership details, such as the member role, for a room in an Amazon Chime Enterprise account. The member role designates whether the member is a chat room administrator or a general chat room member. The member role can be updated only for user IDs.

" }, "UpdateUser":{ "name":"UpdateUser", @@ -4198,6 +4198,10 @@ "shape":"UriType", "documentation":"

The audio host URL.

" }, + "AudioFallbackUrl":{ + "shape":"UriType", + "documentation":"

The audio fallback URL.

" + }, "ScreenDataUrl":{ "shape":"UriType", "documentation":"

The screen data URL.

" @@ -5145,7 +5149,7 @@ "members":{ "CpsLimit":{ "shape":"CpsLimit", - "documentation":"

The limit on calls per second. Max value based on account service limit. Default value of 1.

" + "documentation":"

The limit on calls per second. Max value based on account service quota. Default value of 1.

" }, "DefaultPhoneNumber":{ "shape":"E164PhoneNumber", diff --git a/botocore/data/cloud9/2017-09-23/service-2.json b/botocore/data/cloud9/2017-09-23/service-2.json index 98d7035f..023cf7d8 100644 --- a/botocore/data/cloud9/2017-09-23/service-2.json +++ b/botocore/data/cloud9/2017-09-23/service-2.json @@ -168,6 +168,51 @@ ], "documentation":"

Gets a list of AWS Cloud9 development environment identifiers.

" }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Gets a list of the tags associated with an AWS Cloud9 development environment.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Adds tags to an AWS Cloud9 development environment.

Tags that you add to an AWS Cloud9 environment by using this method will NOT be automatically propagated to underlying resources.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"InternalServerErrorException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Removes tags from an AWS Cloud9 development environment.

" + }, "UpdateEnvironment":{ "name":"UpdateEnvironment", "http":{ @@ -273,6 +318,10 @@ "ownerArn":{ "shape":"UserArn", "documentation":"

The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of any AWS IAM principal. If this value is not specified, the ARN defaults to this environment's creator.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

An array of key-value pairs that will be associated with the new AWS Cloud9 development environment.

" } } }, @@ -467,6 +516,10 @@ }, "documentation":"

Information about an AWS Cloud9 development environment.

" }, + "EnvironmentArn":{ + "type":"string", + "pattern":"arn:aws:cloud9:([a-z]{2}-[a-z]+-\\d{1}):[0-9]{12}:environment:[a-zA-Z0-9]{8,32}" + }, "EnvironmentDescription":{ "type":"string", "max":200, @@ -620,6 +673,25 @@ } } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "ResourceARN":{ + "shape":"EnvironmentArn", + "documentation":"

The Amazon Resource Name (ARN) of the AWS Cloud9 development environment to get the tags for.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

The list of tags associated with the AWS Cloud9 development environment.

" + } + } + }, "MaxResults":{ "type":"integer", "box":true, @@ -658,6 +730,68 @@ "max":30, "min":5 }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

The name part of a tag.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The value part of a tag.

" + } + }, + "documentation":"

Metadata that is associated with AWS resources. In particular, a name-value pair that can be associated with an AWS Cloud9 development environment. There are two types of tags: user tags and system tags. A user tag is created by the user. A system tag is automatically created by AWS services. A system tag is prefixed with \"aws:\" and cannot be modified by the user.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "Tags" + ], + "members":{ + "ResourceARN":{ + "shape":"EnvironmentArn", + "documentation":"

The Amazon Resource Name (ARN) of the AWS Cloud9 development environment to add tags to.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The list of tags to add to the given AWS Cloud9 development environment.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, "Timestamp":{"type":"timestamp"}, "TooManyRequestsException":{ "type":"structure", @@ -666,6 +800,28 @@ "documentation":"

Too many service requests were made over the given time period.

", "exception":true }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeys" + ], + "members":{ + "ResourceARN":{ + "shape":"EnvironmentArn", + "documentation":"

The Amazon Resource Name (ARN) of the AWS Cloud9 development environment to remove tags from.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

The tag names of the tags to remove from the given AWS Cloud9 development environment.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateEnvironmentMembershipRequest":{ "type":"structure", "required":[ @@ -722,8 +878,8 @@ }, "UserArn":{ "type":"string", - "pattern":"^arn:aws:(iam|sts)::\\d+:(root|(user\\/[\\w+=/:,.@-]{1,64}|federated-user\\/[\\w+=/:,.@-]{2,32}|assumed-role\\/[\\w+=/:,.@-]{1,64}\\/[\\w+=/:,.@-]{1,64}))$" + "pattern":"^arn:aws:(iam|sts)::\\d+:(root|(user\\/[\\w+=/:,.@-]{1,64}|federated-user\\/[\\w+=/:,.@-]{2,32}|assumed-role\\/[\\w+=:,.@-]{1,64}\\/[\\w+=,.@-]{1,64}))$" } }, - "documentation":"AWS Cloud9

AWS Cloud9 is a collection of tools that you can use to code, build, run, test, debug, and release software in the cloud.

For more information about AWS Cloud9, see the AWS Cloud9 User Guide.

AWS Cloud9 supports these operations:

  • CreateEnvironmentEC2: Creates an AWS Cloud9 development environment, launches an Amazon EC2 instance, and then connects from the instance to the environment.

  • CreateEnvironmentMembership: Adds an environment member to an environment.

  • DeleteEnvironment: Deletes an environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance.

  • DeleteEnvironmentMembership: Deletes an environment member from an environment.

  • DescribeEnvironmentMemberships: Gets information about environment members for an environment.

  • DescribeEnvironments: Gets information about environments.

  • DescribeEnvironmentStatus: Gets status information for an environment.

  • ListEnvironments: Gets a list of environment identifiers.

  • UpdateEnvironment: Changes the settings of an existing environment.

  • UpdateEnvironmentMembership: Changes the settings of an existing environment member for an environment.

" + "documentation":"AWS Cloud9

AWS Cloud9 is a collection of tools that you can use to code, build, run, test, debug, and release software in the cloud.

For more information about AWS Cloud9, see the AWS Cloud9 User Guide.

AWS Cloud9 supports these operations:

  • CreateEnvironmentEC2: Creates an AWS Cloud9 development environment, launches an Amazon EC2 instance, and then connects from the instance to the environment.

  • CreateEnvironmentMembership: Adds an environment member to an environment.

  • DeleteEnvironment: Deletes an environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance.

  • DeleteEnvironmentMembership: Deletes an environment member from an environment.

  • DescribeEnvironmentMemberships: Gets information about environment members for an environment.

  • DescribeEnvironments: Gets information about environments.

  • DescribeEnvironmentStatus: Gets status information for an environment.

  • ListEnvironments: Gets a list of environment identifiers.

  • ListTagsForResource: Gets the tags for an environment.

  • TagResource: Adds tags to an environment.

  • UntagResource: Removes tags from an environment.

  • UpdateEnvironment: Changes the settings of an existing environment.

  • UpdateEnvironmentMembership: Changes the settings of an existing environment member for an environment.

" } diff --git a/botocore/data/cloudformation/2010-05-15/service-2.json b/botocore/data/cloudformation/2010-05-15/service-2.json index 1ae138b1..e82b51e9 100644 --- a/botocore/data/cloudformation/2010-05-15/service-2.json +++ b/botocore/data/cloudformation/2010-05-15/service-2.json @@ -95,7 +95,7 @@ {"shape":"InvalidOperationException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates stack instances for the specified accounts, within the specified regions. A stack instance refers to a stack in a specific account and region. Accounts and Regions are required parameters—you must specify at least one account and one region.

" + "documentation":"

Creates stack instances for the specified accounts, within the specified regions. A stack instance refers to a stack in a specific account and region. You must specify at least one value for either Accounts or DeploymentTargets, and you must specify at least one value for Regions.

" }, "CreateStackSet":{ "name":"CreateStackSet", @@ -652,7 +652,7 @@ "errors":[ {"shape":"CFNRegistryException"} ], - "documentation":"

Returns a list of registration tokens for the specified type.

", + "documentation":"

Returns a list of registration tokens for the specified type(s).

", "idempotent":true }, "ListTypeVersions":{ @@ -721,7 +721,7 @@ "errors":[ {"shape":"CFNRegistryException"} ], - "documentation":"

Registers a type with the CloudFormation service. Registering a type makes it available for use in CloudFormation templates in your AWS account, and includes:

  • Validating the resource schema

  • Determining which handlers have been specified for the resource

  • Making the resource type available for use in your account

For more information on how to develop types and ready them for registeration, see Creating Resource Providers in the CloudFormation CLI User Guide.

Once you have initiated a registration request using RegisterType , you can use DescribeTypeRegistration to monitor the progress of the registration request.

", + "documentation":"

Registers a type with the CloudFormation service. Registering a type makes it available for use in CloudFormation templates in your AWS account, and includes:

  • Validating the resource schema

  • Determining which handlers have been specified for the resource

  • Making the resource type available for use in your account

For more information on how to develop types and ready them for registeration, see Creating Resource Providers in the CloudFormation CLI User Guide.

Once you have initiated a registration request using RegisterType , you can use DescribeTypeRegistration to monitor the progress of the registration request.

", "idempotent":true }, "SetStackPolicy":{ @@ -867,7 +867,7 @@ "shapes":{ "Account":{ "type":"string", - "pattern":"[0-9]{12}" + "pattern":"^[0-9]{12}$" }, "AccountGateResult":{ "type":"structure", @@ -932,6 +932,21 @@ "exception":true }, "Arn":{"type":"string"}, + "AutoDeployment":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"AutoDeploymentNullable", + "documentation":"

If set to true, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit (OU) in the specified Regions. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions.

" + }, + "RetainStacksOnAccountRemoval":{ + "shape":"RetainStacksOnAccountRemovalNullable", + "documentation":"

If set to true, stack resources are retained when an account is removed from a target organization or OU. If set to false, stack resources are deleted. Specify only if Enabled is set to True.

" + } + }, + "documentation":"

[Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).

" + }, + "AutoDeploymentNullable":{"type":"boolean"}, "BoxedInteger":{ "type":"integer", "box":true @@ -1326,7 +1341,6 @@ "type":"structure", "required":[ "StackSetName", - "Accounts", "Regions" ], "members":{ @@ -1336,7 +1350,11 @@ }, "Accounts":{ "shape":"AccountList", - "documentation":"

The names of one or more AWS accounts that you want to create stack instances in the specified region(s) for.

" + "documentation":"

[Self-managed permissions] The names of one or more AWS accounts that you want to create stack instances in the specified region(s) for.

You can specify Accounts or DeploymentTargets, but not both.

" + }, + "DeploymentTargets":{ + "shape":"DeploymentTargets", + "documentation":"

[Service-managed permissions] The AWS Organizations accounts for which to create stack instances in the specified Regions.

You can specify Accounts or DeploymentTargets, but not both.

" }, "Regions":{ "shape":"RegionList", @@ -1416,6 +1434,14 @@ "shape":"ExecutionRoleName", "documentation":"

The name of the IAM execution role to use to create the stack set. If you do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation.

Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their stack sets.

" }, + "PermissionModel":{ + "shape":"PermissionModels", + "documentation":"

Describes how the IAM roles required for stack set operations are created. By default, SELF-MANAGED is specified.

" + }, + "AutoDeployment":{ + "shape":"AutoDeployment", + "documentation":"

Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to the target organization or organizational unit (OU). Specify only if PermissionModel is SERVICE_MANAGED.

If you specify AutoDeployment, do not specify DeploymentTargets or Regions.

" + }, "ClientRequestToken":{ "shape":"ClientRequestToken", "documentation":"

A unique identifier for this CreateStackSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the same name. You might retry CreateStackSet requests to ensure that AWS CloudFormation successfully received them.

If you don't specify an operation ID, the SDK generates one automatically.

", @@ -1493,7 +1519,6 @@ "type":"structure", "required":[ "StackSetName", - "Accounts", "Regions", "RetainStacks" ], @@ -1504,7 +1529,11 @@ }, "Accounts":{ "shape":"AccountList", - "documentation":"

The names of the AWS accounts that you want to delete stack instances for.

" + "documentation":"

[Self-managed permissions] The names of the AWS accounts that you want to delete stack instances for.

You can specify Accounts or DeploymentTargets, but not both.

" + }, + "DeploymentTargets":{ + "shape":"DeploymentTargets", + "documentation":"

[Service-managed permissions] The AWS Organizations accounts from which to delete stack instances.

You can specify Accounts or DeploymentTargets, but not both.

" }, "Regions":{ "shape":"RegionList", @@ -1550,6 +1579,20 @@ } }, "DeletionTime":{"type":"timestamp"}, + "DeploymentTargets":{ + "type":"structure", + "members":{ + "Accounts":{ + "shape":"AccountList", + "documentation":"

The names of one or more AWS accounts for which you want to deploy stack set updates.

" + }, + "OrganizationalUnitIds":{ + "shape":"OrganizationalUnitIdList", + "documentation":"

The organization root ID or organizational unit (OUs) IDs to which StackSets deploys.

" + } + }, + "documentation":"

[Service-managed permissions] The AWS Organizations accounts to which StackSets deploys.

For update operations, you can specify either Accounts or OrganizationalUnitIds. For create and delete operations, specify OrganizationalUnitIds.

" + }, "DeprecatedStatus":{ "type":"string", "enum":[ @@ -1562,15 +1605,15 @@ "members":{ "Arn":{ "shape":"PrivateTypeArn", - "documentation":"

The Amazon Resource Name (ARN) of the type.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The Amazon Resource Name (ARN) of the type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "Type":{ "shape":"RegistryType", - "documentation":"

The kind of type.

Currently the only valid value is RESOURCE.

" + "documentation":"

The kind of type.

Currently the only valid value is RESOURCE.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "TypeName":{ "shape":"TypeName", - "documentation":"

The name of the type.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The name of the type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "VersionId":{ "shape":"TypeVersionId", @@ -1974,15 +2017,15 @@ "members":{ "Type":{ "shape":"RegistryType", - "documentation":"

The kind of type.

Currently the only valid value is RESOURCE.

" + "documentation":"

The kind of type.

Currently the only valid value is RESOURCE.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "TypeName":{ "shape":"TypeName", - "documentation":"

The name of the type.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The name of the type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "Arn":{ "shape":"TypeArn", - "documentation":"

The Amazon Resource Name (ARN) of the type.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The Amazon Resource Name (ARN) of the type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "VersionId":{ "shape":"TypeVersionId", @@ -2791,19 +2834,19 @@ "members":{ "Type":{ "shape":"RegistryType", - "documentation":"

The kind of type.

Currently the only valid value is RESOURCE.

" + "documentation":"

The kind of type.

Currently the only valid value is RESOURCE.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "TypeName":{ "shape":"TypeName", - "documentation":"

The name of the type.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The name of the type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "TypeArn":{ "shape":"TypeArn", - "documentation":"

The Amazon Resource Name (ARN) of the type.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The Amazon Resource Name (ARN) of the type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "RegistrationStatusFilter":{ "shape":"RegistrationStatus", - "documentation":"

The current status of the type registration request.

" + "documentation":"

The current status of the type registration request.

The default is IN_PROGRESS.

" }, "MaxResults":{ "shape":"MaxResults", @@ -2833,15 +2876,15 @@ "members":{ "Type":{ "shape":"RegistryType", - "documentation":"

The kind of the type.

Currently the only valid value is RESOURCE.

" + "documentation":"

The kind of the type.

Currently the only valid value is RESOURCE.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "TypeName":{ "shape":"TypeName", - "documentation":"

The name of the type for which you want version summary information.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The name of the type for which you want version summary information.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "Arn":{ "shape":"PrivateTypeArn", - "documentation":"

The Amazon Resource Name (ARN) of the type for which you want version summary information.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The Amazon Resource Name (ARN) of the type for which you want version summary information.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "MaxResults":{ "shape":"MaxResults", @@ -2853,7 +2896,7 @@ }, "DeprecatedStatus":{ "shape":"DeprecatedStatus", - "documentation":"

The deprecation status of the type versions that you want to get summary information about.

Valid values include:

  • LIVE: The type version is registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope.

  • DEPRECATED: The type version has been deregistered and can no longer be used in CloudFormation operations.

" + "documentation":"

The deprecation status of the type versions that you want to get summary information about.

Valid values include:

  • LIVE: The type version is registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope.

  • DEPRECATED: The type version has been deregistered and can no longer be used in CloudFormation operations.

The default is LIVE.

" } } }, @@ -2875,7 +2918,7 @@ "members":{ "Visibility":{ "shape":"Visibility", - "documentation":"

The scope at which the type is visible and usable in CloudFormation operations.

Valid values include:

  • PRIVATE: The type is only visible and usable within the account in which it is registered. Currently, AWS CloudFormation marks any types you create as PRIVATE.

  • PUBLIC: The type is publically visible and usable within any Amazon account.

" + "documentation":"

The scope at which the type is visible and usable in CloudFormation operations.

Valid values include:

  • PRIVATE: The type is only visible and usable within the account in which it is registered. Currently, AWS CloudFormation marks any types you create as PRIVATE.

  • PUBLIC: The type is publically visible and usable within any Amazon account.

The default is PRIVATE.

" }, "ProvisioningType":{ "shape":"ProvisioningType", @@ -3052,6 +3095,14 @@ "type":"string", "max":4096 }, + "OrganizationalUnitId":{ + "type":"string", + "pattern":"^(ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}|r-[a-z0-9]{4,32})$" + }, + "OrganizationalUnitIdList":{ + "type":"list", + "member":{"shape":"OrganizationalUnitId"} + }, "Output":{ "type":"structure", "members":{ @@ -3153,6 +3204,13 @@ "type":"list", "member":{"shape":"Parameter"} }, + "PermissionModels":{ + "type":"string", + "enum":[ + "SERVICE_MANAGED", + "SELF_MANAGED" + ] + }, "PhysicalResourceId":{"type":"string"}, "PhysicalResourceIdContext":{ "type":"list", @@ -3269,7 +3327,10 @@ "members":{ } }, - "Region":{"type":"string"}, + "Region":{ + "type":"string", + "pattern":"^[a-zA-Z0-9-]{1,128}$" + }, "RegionList":{ "type":"list", "member":{"shape":"Region"} @@ -3291,7 +3352,7 @@ }, "SchemaHandlerPackage":{ "shape":"S3Url", - "documentation":"

A url to the S3 bucket containing the schema handler package that contains the schema, event handlers, and associated files for the type you want to register.

For information on generating a schema handler package for the type you want to register, see submit in the CloudFormation CLI User Guide.

" + "documentation":"

A url to the S3 bucket containing the schema handler package that contains the schema, event handlers, and associated files for the type you want to register.

For information on generating a schema handler package for the type you want to register, see submit in the CloudFormation CLI User Guide.

As part of registering a resource provider type, CloudFormation must be able to access the S3 bucket which contains the schema handler package for that resource provider. For more information, see IAM Permissions for Registering a Resource Provider in the AWS CloudFormation User Guide.

" }, "LoggingConfig":{ "shape":"LoggingConfig", @@ -3583,6 +3644,7 @@ }, "RetainStacks":{"type":"boolean"}, "RetainStacksNullable":{"type":"boolean"}, + "RetainStacksOnAccountRemovalNullable":{"type":"boolean"}, "RoleARN":{ "type":"string", "max":2048, @@ -3664,15 +3726,15 @@ "members":{ "Arn":{ "shape":"PrivateTypeArn", - "documentation":"

The Amazon Resource Name (ARN) of the type for which you want version summary information.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The Amazon Resource Name (ARN) of the type for which you want version summary information.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "Type":{ "shape":"RegistryType", - "documentation":"

The kind of type.

" + "documentation":"

The kind of type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "TypeName":{ "shape":"TypeName", - "documentation":"

The name of the type.

Conditional: You must specify TypeName or Arn.

" + "documentation":"

The name of the type.

Conditional: You must specify either TypeName and Type, or Arn.

" }, "VersionId":{ "shape":"TypeVersionId", @@ -3939,7 +4001,7 @@ }, "Account":{ "shape":"Account", - "documentation":"

The name of the AWS account that the stack instance is associated with.

" + "documentation":"

[Self-managed permissions] The name of the AWS account that the stack instance is associated with.

" }, "StackId":{ "shape":"StackId", @@ -3957,6 +4019,10 @@ "shape":"Reason", "documentation":"

The explanation for the specific status code that is assigned to this stack instance.

" }, + "OrganizationalUnitId":{ + "shape":"OrganizationalUnitId", + "documentation":"

[Service-managed permissions] The organization root ID or organizational unit (OU) ID that the stack instance is associated with.

" + }, "DriftStatus":{ "shape":"StackDriftStatus", "documentation":"

Status of the stack instance's actual configuration compared to the expected template and parameter configuration of the stack set to which it belongs.

  • DRIFTED: The stack differs from the expected template and parameter configuration of the stack set to which it belongs. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted.

  • NOT_CHECKED: AWS CloudFormation has not checked if the stack instance differs from its expected stack set configuration.

  • IN_SYNC: The stack instance's actual configuration matches its expected stack set configuration.

  • UNKNOWN: This value is reserved for future use.

" @@ -4005,7 +4071,7 @@ }, "Account":{ "shape":"Account", - "documentation":"

The name of the AWS account that the stack instance is associated with.

" + "documentation":"

[Self-managed permissions] The name of the AWS account that the stack instance is associated with.

" }, "StackId":{ "shape":"StackId", @@ -4019,6 +4085,10 @@ "shape":"Reason", "documentation":"

The explanation for the specific status code assigned to this stack instance.

" }, + "OrganizationalUnitId":{ + "shape":"OrganizationalUnitId", + "documentation":"

[Service-managed permissions] The organization root ID or organizational unit (OU) ID that the stack instance is associated with.

" + }, "DriftStatus":{ "shape":"StackDriftStatus", "documentation":"

Status of the stack instance's actual configuration compared to the expected template and parameter configuration of the stack set to which it belongs.

  • DRIFTED: The stack differs from the expected template and parameter configuration of the stack set to which it belongs. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted.

  • NOT_CHECKED: AWS CloudFormation has not checked if the stack instance differs from its expected stack set configuration.

  • IN_SYNC: The stack instance's actual configuration matches its expected stack set configuration.

  • UNKNOWN: This value is reserved for future use.

" @@ -4364,6 +4434,18 @@ "StackSetDriftDetectionDetails":{ "shape":"StackSetDriftDetectionDetails", "documentation":"

Detailed information about the drift status of the stack set.

For stack sets, contains information about the last completed drift operation performed on the stack set. Information about drift operations currently in progress is not included.

" + }, + "AutoDeployment":{ + "shape":"AutoDeployment", + "documentation":"

[Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).

" + }, + "PermissionModel":{ + "shape":"PermissionModels", + "documentation":"

Describes how the IAM roles required for stack set operations are created.

" + }, + "OrganizationalUnitIds":{ + "shape":"OrganizationalUnitIdList", + "documentation":"

[Service-managed permissions] The organization root ID or organizational unit (OUs) IDs to which stacks in your stack set have been deployed.

" } }, "documentation":"

A structure that contains information about a stack set. A stack set enables you to provision stacks into AWS accounts and across regions by using a single CloudFormation template. In the stack set, you specify the template to use, as well as any parameters and capabilities that the template requires.

" @@ -4472,7 +4554,7 @@ }, "Status":{ "shape":"StackSetOperationStatus", - "documentation":"

The status of the operation.

  • FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each region during stack create and update operations. If the number of failed stacks within a region exceeds the failure tolerance, the status of the operation in the region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining regions.

  • RUNNING: The operation is currently being performed.

  • STOPPED: The user has cancelled the operation.

  • STOPPING: The operation is in the process of stopping, at user request.

  • SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.

" + "documentation":"

The status of the operation.

  • FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each region during stack create and update operations. If the number of failed stacks within a region exceeds the failure tolerance, the status of the operation in the region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining regions.

  • QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations. The operation is queued to be performed. For more information, see the stack set operation status codes in the AWS CloudFormation User Guide.

  • RUNNING: The operation is currently being performed.

  • STOPPED: The user has cancelled the operation.

  • STOPPING: The operation is in the process of stopping, at user request.

  • SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.

" }, "OperationPreferences":{ "shape":"StackSetOperationPreferences", @@ -4498,6 +4580,10 @@ "shape":"Timestamp", "documentation":"

The time at which the stack set operation ended, across all accounts and regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or region.

" }, + "DeploymentTargets":{ + "shape":"DeploymentTargets", + "documentation":"

[Service-managed permissions] The AWS Organizations accounts affected by the stack operation.

" + }, "StackSetDriftDetectionDetails":{ "shape":"StackSetDriftDetectionDetails", "documentation":"

Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set.

this information will only be present for stack set operations whose Action type is DETECT_DRIFT.

For more information, see Detecting Unmanaged Changes in Stack Sets in the AWS CloudFormation User Guide.

" @@ -4559,7 +4645,7 @@ "members":{ "Account":{ "shape":"Account", - "documentation":"

The name of the AWS account for this operation result.

" + "documentation":"

[Self-managed permissions] The name of the AWS account for this operation result.

" }, "Region":{ "shape":"Region", @@ -4576,6 +4662,10 @@ "AccountGateResult":{ "shape":"AccountGateResult", "documentation":"

The results of the account gate function AWS CloudFormation invokes, if present, before proceeding with stack set operations in an account

" + }, + "OrganizationalUnitId":{ + "shape":"OrganizationalUnitId", + "documentation":"

[Service-managed permissions] The organization root ID or organizational unit (OU) ID for this operation result.

" } }, "documentation":"

The structure that contains information about a specified operation's results for a given account in a given region.

" @@ -4587,7 +4677,8 @@ "SUCCEEDED", "FAILED", "STOPPING", - "STOPPED" + "STOPPED", + "QUEUED" ] }, "StackSetOperationSummaries":{ @@ -4607,7 +4698,7 @@ }, "Status":{ "shape":"StackSetOperationStatus", - "documentation":"

The overall status of the operation.

  • FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each region during stack create and update operations. If the number of failed stacks within a region exceeds the failure tolerance, the status of the operation in the region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining regions.

  • RUNNING: The operation is currently being performed.

  • STOPPED: The user has cancelled the operation.

  • STOPPING: The operation is in the process of stopping, at user request.

  • SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.

" + "documentation":"

The overall status of the operation.

  • FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each region during stack create and update operations. If the number of failed stacks within a region exceeds the failure tolerance, the status of the operation in the region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining regions.

  • QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations. The operation is queued to be performed. For more information, see the stack set operation status codes in the AWS CloudFormation User Guide.

  • RUNNING: The operation is currently being performed.

  • STOPPED: The user has cancelled the operation.

  • STOPPING: The operation is in the process of stopping, at user request.

  • SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.

" }, "CreationTimestamp":{ "shape":"Timestamp", @@ -4650,6 +4741,14 @@ "shape":"StackSetStatus", "documentation":"

The status of the stack set.

" }, + "AutoDeployment":{ + "shape":"AutoDeployment", + "documentation":"

[Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organizational unit (OU).

" + }, + "PermissionModel":{ + "shape":"PermissionModels", + "documentation":"

Describes how the IAM roles required for stack set operations are created.

" + }, "DriftStatus":{ "shape":"StackDriftStatus", "documentation":"

Status of the stack set's actual configuration compared to its expected template and parameter configuration. A stack set is considered to have drifted if one or more of its stack instances have drifted from their expected template and parameter configuration.

  • DRIFTED: One or more of the stack instances belonging to the stack set stack differs from the expected template and parameter configuration. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted.

  • NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift.

  • IN_SYNC: All of the stack instances belonging to the stack set stack match from the expected template and parameter configuration.

  • UNKNOWN: This value is reserved for future use.

" @@ -5078,7 +5177,6 @@ "type":"structure", "required":[ "StackSetName", - "Accounts", "Regions" ], "members":{ @@ -5088,7 +5186,11 @@ }, "Accounts":{ "shape":"AccountList", - "documentation":"

The names of one or more AWS accounts for which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and regions.

" + "documentation":"

[Self-managed permissions] The names of one or more AWS accounts for which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and regions.

You can specify Accounts or DeploymentTargets, but not both.

" + }, + "DeploymentTargets":{ + "shape":"DeploymentTargets", + "documentation":"

[Service-managed permissions] The AWS Organizations accounts for which you want to update parameter values for stack instances. If your update targets OUs, the overridden parameter values only apply to the accounts that are currently in the target OUs and their child OUs. Accounts added to the target OUs and their child OUs in the future won't use the overridden values.

You can specify Accounts or DeploymentTargets, but not both.

" }, "Regions":{ "shape":"RegionList", @@ -5176,6 +5278,18 @@ "shape":"ExecutionRoleName", "documentation":"

The name of the IAM execution role to use to update the stack set. If you do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation.

Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their stack sets.

If you specify a customized execution role, AWS CloudFormation uses that role to update the stack. If you do not specify a customized execution role, AWS CloudFormation performs the update using the role previously associated with the stack set, so long as you have permissions to perform operations on the stack set.

" }, + "DeploymentTargets":{ + "shape":"DeploymentTargets", + "documentation":"

[Service-managed permissions] The AWS Organizations accounts in which to update associated stack instances.

To update all the stack instances associated with this stack set, do not specify DeploymentTargets or Regions.

If the stack set update includes changes to the template (that is, if TemplateBody or TemplateURL is specified), or the Parameters, AWS CloudFormation marks all stack instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.

" + }, + "PermissionModel":{ + "shape":"PermissionModels", + "documentation":"

Describes how the IAM roles required for stack set operations are created. You cannot modify PermissionModel if there are stack instances associated with your stack set.

" + }, + "AutoDeployment":{ + "shape":"AutoDeployment", + "documentation":"

[Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU).

If you specify AutoDeployment, do not specify DeploymentTargets or Regions.

" + }, "OperationId":{ "shape":"ClientRequestToken", "documentation":"

The unique ID for this stack set operation.

The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them.

If you don't specify an operation ID, AWS CloudFormation generates one automatically.

Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED.

", @@ -5183,7 +5297,7 @@ }, "Accounts":{ "shape":"AccountList", - "documentation":"

The accounts in which to update associated stack instances. If you specify accounts, you must also specify the regions in which to update stack set instances.

To update all the stack instances associated with this stack set, do not specify the Accounts or Regions properties.

If the stack set update includes changes to the template (that is, if the TemplateBody or TemplateURL properties are specified), or the Parameters property, AWS CloudFormation marks all stack instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and regions, while leaving all other stack instances with their existing stack instance status.

" + "documentation":"

[Self-managed permissions] The accounts in which to update associated stack instances. If you specify accounts, you must also specify the regions in which to update stack set instances.

To update all the stack instances associated with this stack set, do not specify the Accounts or Regions properties.

If the stack set update includes changes to the template (that is, if the TemplateBody or TemplateURL properties are specified), or the Parameters property, AWS CloudFormation marks all stack instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and regions, while leaving all other stack instances with their existing stack instance status.

" }, "Regions":{ "shape":"RegionList", diff --git a/botocore/data/cloudwatch/2010-08-01/paginators-1.json b/botocore/data/cloudwatch/2010-08-01/paginators-1.json index a1b14c13..cae11fb1 100644 --- a/botocore/data/cloudwatch/2010-08-01/paginators-1.json +++ b/botocore/data/cloudwatch/2010-08-01/paginators-1.json @@ -10,7 +10,10 @@ "input_token": "NextToken", "output_token": "NextToken", "limit_key": "MaxRecords", - "result_key": "MetricAlarms" + "result_key": [ + "MetricAlarms", + "CompositeAlarms" + ] }, "ListDashboards": { "input_token": "NextToken", diff --git a/botocore/data/cloudwatch/2010-08-01/service-2.json b/botocore/data/cloudwatch/2010-08-01/service-2.json index 98624280..913f76e8 100644 --- a/botocore/data/cloudwatch/2010-08-01/service-2.json +++ b/botocore/data/cloudwatch/2010-08-01/service-2.json @@ -22,7 +22,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

Deletes the specified alarms. You can delete up to 50 alarms in one operation. In the event of an error, no alarms are deleted.

" + "documentation":"

Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation.

In the event of an error, no alarms are deleted.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

" }, "DeleteAnomalyDetector":{ "name":"DeleteAnomalyDetector", @@ -92,7 +92,7 @@ "errors":[ {"shape":"InvalidNextToken"} ], - "documentation":"

Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for all alarms are returned.

CloudWatch retains the history of an alarm even if you delete the alarm.

" + "documentation":"

Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for either all metric alarms or all composite alarms are returned.

CloudWatch retains the history of an alarm even if you delete the alarm.

" }, "DescribeAlarms":{ "name":"DescribeAlarms", @@ -108,7 +108,7 @@ "errors":[ {"shape":"InvalidNextToken"} ], - "documentation":"

Retrieves the specified alarms. If no alarms are specified, all alarms are returned. Alarms can be retrieved by using only a prefix for the alarm name, the alarm state, or a prefix for any action.

" + "documentation":"

Retrieves the specified alarms. You can filter the results by specifying a a prefix for the alarm name, the alarm state, or a prefix for any action.

" }, "DescribeAlarmsForMetric":{ "name":"DescribeAlarmsForMetric", @@ -260,7 +260,7 @@ "errors":[ {"shape":"InvalidNextToken"} ], - "documentation":"

You can use the GetMetricData API to retrieve as many as 100 different metrics in a single request, with a total of as many as 100,800 data points. You can also optionally perform math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Calls to the GetMetricData API have a different pricing structure than calls to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch Pricing.

Amazon CloudWatch retains metric data as follows:

  • Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1.

  • Data points with a period of 60 seconds (1-minute) are available for 15 days.

  • Data points with a period of 300 seconds (5-minute) are available for 63 days.

  • Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months).

Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour.

If you omit Unit in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.

" + "documentation":"

You can use the GetMetricData API to retrieve as many as 500 different metrics in a single request, with a total of as many as 100,800 data points. You can also optionally perform math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Calls to the GetMetricData API have a different pricing structure than calls to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch Pricing.

Amazon CloudWatch retains metric data as follows:

  • Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1.

  • Data points with a period of 60 seconds (1-minute) are available for 15 days.

  • Data points with a period of 300 seconds (5-minute) are available for 63 days.

  • Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months).

Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour.

If you omit Unit in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions.

" }, "GetMetricStatistics":{ "name":"GetMetricStatistics", @@ -326,7 +326,7 @@ {"shape":"InternalServiceFault"}, {"shape":"InvalidParameterValueException"} ], - "documentation":"

List the specified metrics. You can use the returned metrics with GetMetricData or GetMetricStatistics to obtain statistical data.

Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls.

After you create a metric, allow up to fifteen minutes before the metric appears. Statistics about the metric, however, are available sooner using GetMetricData or GetMetricStatistics.

" + "documentation":"

List the specified metrics. You can use the returned metrics with GetMetricData or GetMetricStatistics to obtain statistical data.

Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls.

After you create a metric, allow up to fifteen minutes before the metric appears. Statistics about the metric, however, are available sooner using GetMetricData or GetMetricStatistics.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -365,6 +365,18 @@ ], "documentation":"

Creates an anomaly detection model for a CloudWatch metric. You can use the model to display a band of expected normal values when the metric is graphed.

For more information, see CloudWatch Anomaly Detection.

" }, + "PutCompositeAlarm":{ + "name":"PutCompositeAlarm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutCompositeAlarmInput"}, + "errors":[ + {"shape":"LimitExceededFault"} + ], + "documentation":"

Creates or updates a composite alarm. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met.

The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms.

Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state.

Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in INSUFFICIENT_DATA state.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

" + }, "PutDashboard":{ "name":"PutDashboard", "http":{ @@ -425,7 +437,7 @@ {"shape":"InvalidParameterCombinationException"}, {"shape":"InternalServiceFault"} ], - "documentation":"

Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data.

Each PutMetricData request is limited to 40 KB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 20 different metrics.

Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

You can use up to 10 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

  • The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal.

  • The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.

" + "documentation":"

Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data.

Each PutMetricData request is limited to 40 KB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 20 different metrics.

Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

You can use up to 10 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for GetMetricData or GetMetricStatistics.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

  • The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal.

  • The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.

" }, "SetAlarmState":{ "name":"SetAlarmState", @@ -438,7 +450,7 @@ {"shape":"ResourceNotFound"}, {"shape":"InvalidFormatFault"} ], - "documentation":"

Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an SNS message. The alarm returns to its actual state (often within seconds). Because the alarm state change happens quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory.

" + "documentation":"

Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an SNS message.

Metric alarms returns to their actual state quickly, often within seconds. Because the metric alarm state change happens quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory.

If you use SetAlarmState on a composite alarm, the composite alarm is not guaranteed to return to its actual state. It will return to its actual state only once any of its children alarms change state. It is also re-evaluated if you update its configuration.

If an alarm triggers EC2 Auto Scaling policies or application Auto Scaling policies, you must include information in the StateReasonData parameter to enable the policy to take the correct action.

" }, "TagResource":{ "name":"TagResource", @@ -503,6 +515,10 @@ "shape":"AlarmName", "documentation":"

The descriptive name for the alarm.

" }, + "AlarmType":{ + "shape":"AlarmType", + "documentation":"

The type of alarm, either metric alarm or composite alarm.

" + }, "Timestamp":{ "shape":"Timestamp", "documentation":"

The time stamp for the alarm history item.

" @@ -541,6 +557,22 @@ "member":{"shape":"AlarmName"}, "max":100 }, + "AlarmRule":{ + "type":"string", + "max":10240, + "min":1 + }, + "AlarmType":{ + "type":"string", + "enum":[ + "CompositeAlarm", + "MetricAlarm" + ] + }, + "AlarmTypes":{ + "type":"list", + "member":{"shape":"AlarmType"} + }, "AmazonResourceName":{ "type":"string", "max":1024, @@ -624,6 +656,83 @@ "GreaterThanUpperThreshold" ] }, + "CompositeAlarm":{ + "type":"structure", + "members":{ + "ActionsEnabled":{ + "shape":"ActionsEnabled", + "documentation":"

Indicates whether actions should be executed during any changes to the alarm state.

" + }, + "AlarmActions":{ + "shape":"ResourceList", + "documentation":"

The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN).

" + }, + "AlarmArn":{ + "shape":"AlarmArn", + "documentation":"

The Amazon Resource Name (ARN) of the alarm.

" + }, + "AlarmConfigurationUpdatedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The time stamp of the last update to the alarm configuration.

" + }, + "AlarmDescription":{ + "shape":"AlarmDescription", + "documentation":"

The description of the alarm.

" + }, + "AlarmName":{ + "shape":"AlarmName", + "documentation":"

The name of the alarm.

" + }, + "AlarmRule":{ + "shape":"AlarmRule", + "documentation":"

The rule that this alarm uses to evaluate its alarm state.

" + }, + "InsufficientDataActions":{ + "shape":"ResourceList", + "documentation":"

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN).

" + }, + "OKActions":{ + "shape":"ResourceList", + "documentation":"

The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN).

" + }, + "StateReason":{ + "shape":"StateReason", + "documentation":"

An explanation for the alarm state, in text format.

" + }, + "StateReasonData":{ + "shape":"StateReasonData", + "documentation":"

An explanation for the alarm state, in JSON format.

" + }, + "StateUpdatedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The time stamp of the last update to the alarm state.

" + }, + "StateValue":{ + "shape":"StateValue", + "documentation":"

The state value for the alarm.

" + } + }, + "documentation":"

The details about a composite alarm.

", + "xmlOrder":[ + "ActionsEnabled", + "AlarmActions", + "AlarmArn", + "AlarmConfigurationUpdatedTimestamp", + "AlarmDescription", + "AlarmName", + "AlarmRule", + "InsufficientDataActions", + "OKActions", + "StateReason", + "StateReasonData", + "StateUpdatedTimestamp", + "StateValue" + ] + }, + "CompositeAlarms":{ + "type":"list", + "member":{"shape":"CompositeAlarm"} + }, "ConcurrentModificationException":{ "type":"structure", "members":{ @@ -849,7 +958,7 @@ "members":{ "RuleNames":{ "shape":"InsightRuleNames", - "documentation":"

An array of the rule names to delete. If you need to find out the names of your rules, use DescribeInsightRules.

" + "documentation":"

An array of the rule names to delete. If you need to find out the names of your rules, use DescribeInsightRules.

" } } }, @@ -869,6 +978,10 @@ "shape":"AlarmName", "documentation":"

The name of the alarm.

" }, + "AlarmTypes":{ + "shape":"AlarmTypes", + "documentation":"

Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned.

" + }, "HistoryItemType":{ "shape":"HistoryItemType", "documentation":"

The type of alarm histories to retrieve.

" @@ -888,6 +1001,10 @@ "NextToken":{ "shape":"NextToken", "documentation":"

The token returned by a previous call to indicate that there is more data available.

" + }, + "ScanBy":{ + "shape":"ScanBy", + "documentation":"

Specified whether to return the newest or oldest alarm history first. Specify TimestampDescending to have the newest event history returned first, and specify TimestampAscending to have the oldest history returned first.

" } } }, @@ -955,19 +1072,31 @@ "members":{ "AlarmNames":{ "shape":"AlarmNames", - "documentation":"

The names of the alarms.

" + "documentation":"

The names of the alarms to retrieve information about.

" }, "AlarmNamePrefix":{ "shape":"AlarmNamePrefix", - "documentation":"

The alarm name prefix. If this parameter is specified, you cannot specify AlarmNames.

" + "documentation":"

An alarm name prefix. If you specify this parameter, you receive information about all alarms that have names that start with this prefix.

If this parameter is specified, you cannot specify AlarmNames.

" + }, + "AlarmTypes":{ + "shape":"AlarmTypes", + "documentation":"

Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned.

" + }, + "ChildrenOfAlarmName":{ + "shape":"AlarmName", + "documentation":"

If you use this parameter and specify the name of a composite alarm, the operation returns information about the \"children\" alarms of the alarm you specify. These are the metric alarms and composite alarms referenced in the AlarmRule field of the composite alarm that you specify in ChildrenOfAlarmName. Information about the composite alarm that you name in ChildrenOfAlarmName is not returned.

If you specify ChildrenOfAlarmName, you cannot specify any other parameters in the request except for MaxRecords and NextToken. If you do so, you will receive a validation error.

Only the Alarm Name, ARN, StateValue (OK/ALARM/INSUFFICIENT_DATA), and StateUpdatedTimestamp information are returned by this operation when you use this parameter. To get complete information about these alarms, perform another DescribeAlarms operation and specify the parent alarm names in the AlarmNames parameter.

" + }, + "ParentsOfAlarmName":{ + "shape":"AlarmName", + "documentation":"

If you use this parameter and specify the name of a metric or composite alarm, the operation returns information about the \"parent\" alarms of the alarm you specify. These are the composite alarms that have AlarmRule parameters that reference the alarm named in ParentsOfAlarmName. Information about the alarm that you specify in ParentsOfAlarmName is not returned.

If you specify ParentsOfAlarmName, you cannot specify any other parameters in the request except for MaxRecords and NextToken. If you do so, you will receive a validation error.

Only the Alarm Name and ARN are returned by this operation when you use this parameter. To get complete information about these alarms, perform another DescribeAlarms operation and specify the parent alarm names in the AlarmNames parameter.

" }, "StateValue":{ "shape":"StateValue", - "documentation":"

The state value to be used in matching alarms.

" + "documentation":"

Specify this parameter to receive information only about alarms that are currently in the state that you specify.

" }, "ActionPrefix":{ "shape":"ActionPrefix", - "documentation":"

The action name prefix.

" + "documentation":"

Use this parameter to filter the results of the operation to only those alarms that use a certain alarm action. For example, you could specify the ARN of an SNS topic to find all alarms that send notifications to that topic.

" }, "MaxRecords":{ "shape":"MaxRecords", @@ -982,9 +1111,13 @@ "DescribeAlarmsOutput":{ "type":"structure", "members":{ + "CompositeAlarms":{ + "shape":"CompositeAlarms", + "documentation":"

The information about any composite alarms returned by the operation.

" + }, "MetricAlarms":{ "shape":"MetricAlarms", - "documentation":"

The information for the specified alarms.

" + "documentation":"

The information about any metric alarms returned by the operation.

" }, "NextToken":{ "shape":"NextToken", @@ -1001,7 +1134,7 @@ }, "MaxResults":{ "shape":"MaxReturnedResultsCount", - "documentation":"

The maximum number of results to return in one operation. The maximum value you can specify is 10.

To retrieve the remaining results, make another call with the returned NextToken value.

" + "documentation":"

The maximum number of results to return in one operation. The maximum value that you can specify is 100.

To retrieve the remaining results, make another call with the returned NextToken value.

" }, "Namespace":{ "shape":"Namespace", @@ -1129,7 +1262,7 @@ "members":{ "RuleNames":{ "shape":"InsightRuleNames", - "documentation":"

An array of the rule names to disable. If you need to find out the names of your rules, use DescribeInsightRules.

" + "documentation":"

An array of the rule names to disable. If you need to find out the names of your rules, use DescribeInsightRules.

" } } }, @@ -1158,7 +1291,7 @@ "members":{ "RuleNames":{ "shape":"InsightRuleNames", - "documentation":"

An array of the rule names to enable. If you need to find out the names of your rules, use DescribeInsightRules.

" + "documentation":"

An array of the rule names to enable. If you need to find out the names of your rules, use DescribeInsightRules.

" } } }, @@ -1219,7 +1352,7 @@ }, "DashboardBody":{ "shape":"DashboardBody", - "documentation":"

The detailed information about the dashboard, including what widgets are included and their location on the dashboard. For more information about the DashboardBody syntax, see CloudWatch-Dashboard-Body-Structure.

" + "documentation":"

The detailed information about the dashboard, including what widgets are included and their location on the dashboard. For more information about the DashboardBody syntax, see Dashboard Body Structure and Syntax.

" }, "DashboardName":{ "shape":"DashboardName", @@ -1305,7 +1438,7 @@ "members":{ "MetricDataQueries":{ "shape":"MetricDataQueries", - "documentation":"

The metric queries to be returned. A single GetMetricData call can include as many as 100 MetricDataQuery structures. Each of these structures can specify either a metric to retrieve, or a math expression to perform on retrieved data.

" + "documentation":"

The metric queries to be returned. A single GetMetricData call can include as many as 500 MetricDataQuery structures. Each of these structures can specify either a metric to retrieve, or a math expression to perform on retrieved data.

" }, "StartTime":{ "shape":"Timestamp", @@ -1414,7 +1547,7 @@ "members":{ "MetricWidget":{ "shape":"MetricWidget", - "documentation":"

A JSON string that defines the bitmap graph to be retrieved. The string includes the metrics to include in the graph, statistics, annotations, title, axis limits, and so on. You can include only one MetricWidget parameter in each GetMetricWidgetImage call.

For more information about the syntax of MetricWidget see CloudWatch-Metric-Widget-Structure.

If any metric on the graph could not load all the requested data points, an orange triangle with an exclamation point appears next to the graph legend.

" + "documentation":"

A JSON string that defines the bitmap graph to be retrieved. The string includes the metrics to include in the graph, statistics, annotations, title, axis limits, and so on. You can include only one MetricWidget parameter in each GetMetricWidgetImage call.

For more information about the syntax of MetricWidget see GetMetricWidgetImage: Metric Widget Structure and Syntax.

If any metric on the graph could not load all the requested data points, an orange triangle with an exclamation point appears next to the graph legend.

" }, "OutputFormat":{ "shape":"OutputFormat", @@ -1499,7 +1632,7 @@ "documentation":"

An array of the data points where this contributor is present. Only the data points when this contributor appeared are included in the array.

" } }, - "documentation":"

One of the unique contributors found by a Contributor Insights rule. If the rule contains multiple keys, then a unique contributor is a unique combination of values from all the keys in the rule.

If the rule contains a single key, then each unique contributor is each unique value for this key.

For more information, see GetInsightRuleReport.

" + "documentation":"

One of the unique contributors found by a Contributor Insights rule. If the rule contains multiple keys, then a unique contributor is a unique combination of values from all the keys in the rule.

If the rule contains a single key, then each unique contributor is each unique value for this key.

For more information, see GetInsightRuleReport.

" }, "InsightRuleContributorDatapoint":{ "type":"structure", @@ -1517,7 +1650,7 @@ "documentation":"

The approximate value that this contributor added during this timestamp.

" } }, - "documentation":"

One data point related to one contributor.

For more information, see GetInsightRuleReport and InsightRuleContributor.

" + "documentation":"

One data point related to one contributor.

For more information, see GetInsightRuleReport and InsightRuleContributor.

" }, "InsightRuleContributorDatapoints":{ "type":"list", @@ -1585,7 +1718,7 @@ "documentation":"

The maximum value from a single occurence from a single contributor during the time period represented by that data point.

This statistic is returned only if you included it in the Metrics array in your request.

" } }, - "documentation":"

One data point from the metric time series returned in a Contributor Insights rule report.

For more information, see GetInsightRuleReport.

" + "documentation":"

One data point from the metric time series returned in a Contributor Insights rule report.

For more information, see GetInsightRuleReport.

" }, "InsightRuleMetricDatapoints":{ "type":"list", @@ -1986,7 +2119,7 @@ "documentation":"

In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm.

" } }, - "documentation":"

Represents an alarm.

", + "documentation":"

The details about a metric alarm.

", "xmlOrder":[ "AlarmName", "AlarmArn", @@ -2055,10 +2188,10 @@ }, "Period":{ "shape":"Period", - "documentation":"

The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData operation that includes a StorageResolution of 1 second.

If you are performing a GetMetricData operation, use this field only if you are specifying an Expression. Do not use this field when you are specifying a MetricStat in a GetMetricData operation.

" + "documentation":"

The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData operation that includes a StorageResolution of 1 second.

" } }, - "documentation":"

This structure is used in both GetMetricData and PutMetricAlarm. The supported use of this structure is different for those two operations.

When used in GetMetricData, it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. A single GetMetricData call can include up to 100 MetricDataQuery structures.

When used in PutMetricAlarm, it enables you to create an alarm based on a metric math expression. Each MetricDataQuery in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single PutMetricAlarm call can include up to 20 MetricDataQuery structures in the array. The 20 structures can include as many as 10 structures that contain a MetricStat parameter to retrieve a metric, and as many as 10 structures that contain the Expression parameter to perform a math expression. Of those Expression structures, one must have True as the value for ReturnData. The result of this expression is the value the alarm watches.

Any expression used in a PutMetricAlarm operation must return a single time series. For more information, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Some of the parameters of this structure also have different uses whether you are using this structure in a GetMetricData operation or a PutMetricAlarm operation. These differences are explained in the following parameter list.

" + "documentation":"

This structure is used in both GetMetricData and PutMetricAlarm. The supported use of this structure is different for those two operations.

When used in GetMetricData, it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a math expression on metric data. A single GetMetricData call can include up to 500 MetricDataQuery structures.

When used in PutMetricAlarm, it enables you to create an alarm based on a metric math expression. Each MetricDataQuery in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single PutMetricAlarm call can include up to 20 MetricDataQuery structures in the array. The 20 structures can include as many as 10 structures that contain a MetricStat parameter to retrieve a metric, and as many as 10 structures that contain the Expression parameter to perform a math expression. Of those Expression structures, one must have True as the value for ReturnData. The result of this expression is the value the alarm watches.

Any expression used in a PutMetricAlarm operation must return a single time series. For more information, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Some of the parameters of this structure also have different uses whether you are using this structure in a GetMetricData operation or a PutMetricAlarm operation. These differences are explained in the following parameter list.

" }, "MetricDataResult":{ "type":"structure", @@ -2276,6 +2409,47 @@ "members":{ } }, + "PutCompositeAlarmInput":{ + "type":"structure", + "required":[ + "AlarmName", + "AlarmRule" + ], + "members":{ + "ActionsEnabled":{ + "shape":"ActionsEnabled", + "documentation":"

Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. The default is TRUE.

" + }, + "AlarmActions":{ + "shape":"ResourceList", + "documentation":"

The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:sns:region:account-id:sns-topic-name

" + }, + "AlarmDescription":{ + "shape":"AlarmDescription", + "documentation":"

The description for the composite alarm.

" + }, + "AlarmName":{ + "shape":"AlarmName", + "documentation":"

The name for the composite alarm. This name must be unique within your AWS account.

" + }, + "AlarmRule":{ + "shape":"AlarmRule", + "documentation":"

An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For each alarm that you reference, you designate a function that specifies whether that alarm needs to be in ALARM state, OK state, or INSUFFICIENT_DATA state. You can use operators (AND, OR and NOT) to combine multiple functions in a single expression. You can use parenthesis to logically group the functions in your expression.

You can use either alarm names or ARNs to reference the other alarms that are to be evaluated.

Functions can include the following:

  • ALARM(\"alarm-name or alarm-ARN\") is TRUE if the named alarm is in ALARM state.

  • OK(\"alarm-name or alarm-ARN\") is TRUE if the named alarm is in OK state.

  • INSUFFICIENT_DATA(\"alarm-name or alarm-ARN\") is TRUE if the named alarm is in INSUFFICIENT_DATA state.

  • TRUE always evaluates to TRUE.

  • FALSE always evaluates to FALSE.

TRUE and FALSE are useful for testing a complex AlarmRule structure, and for testing your alarm actions.

Alarm names specified in AlarmRule can be surrounded with double-quotes (\"), but do not have to be.

The following are some examples of AlarmRule:

  • ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh) specifies that the composite alarm goes into ALARM state only if both CPUUtilizationTooHigh and DiskReadOpsTooHigh alarms are in ALARM state.

  • ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress) specifies that the alarm goes to ALARM state if CPUUtilizationTooHigh is in ALARM state and DeploymentInProgress is not in ALARM state. This example reduces alarm noise during a known deployment window.

  • (ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh) goes into ALARM state if CPUUtilizationTooHigh OR DiskReadOpsTooHigh is in ALARM state, and if NetworkOutTooHigh is in OK state. This provides another example of using a composite alarm to prevent noise. This rule ensures that you are not notified with an alarm action on high CPU or disk usage if a known network problem is also occurring.

The AlarmRule can specify as many as 100 \"children\" alarms. The AlarmRule expression can have as many as 500 elements. Elements are child alarms, TRUE or FALSE statements, and parentheses.

" + }, + "InsufficientDataActions":{ + "shape":"ResourceList", + "documentation":"

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:sns:region:account-id:sns-topic-name

" + }, + "OKActions":{ + "shape":"ResourceList", + "documentation":"

The actions to execute when this alarm transitions to an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:sns:region:account-id:sns-topic-name

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values.

" + } + } + }, "PutDashboardInput":{ "type":"structure", "required":[ @@ -2289,7 +2463,7 @@ }, "DashboardBody":{ "shape":"DashboardBody", - "documentation":"

The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard. This parameter is required.

For more information about the syntax, see CloudWatch-Dashboard-Body-Structure.

" + "documentation":"

The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard. This parameter is required.

For more information about the syntax, see Dashboard Body Structure and Syntax.

" } } }, @@ -2350,15 +2524,15 @@ }, "OKActions":{ "shape":"ResourceList", - "documentation":"

The actions to execute when this alarm transitions to an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

" + "documentation":"

The actions to execute when this alarm transitions to an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

" }, "AlarmActions":{ "shape":"ResourceList", - "documentation":"

The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

" + "documentation":"

The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

" }, "InsufficientDataActions":{ "shape":"ResourceList", - "documentation":"

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): >arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

" + "documentation":"

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN).

Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name

Valid Values (for use with IAM roles): >arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0

" }, "MetricName":{ "shape":"MetricName", @@ -2414,7 +2588,7 @@ }, "Metrics":{ "shape":"MetricDataQueries", - "documentation":"

An array of MetricDataQuery structures that enable you to create an alarm based on the result of a metric math expression. For each PutMetricAlarm operation, you must specify either MetricName or a Metrics array.

Each item in the Metrics array either retrieves a metric or performs a math expression.

One item in the Metrics array is the expression that the alarm watches. You designate this expression by setting ReturnValue to true for this object in the array. For more information, see MetricDataQuery.

If you use the Metrics parameter, you cannot include the MetricName, Dimensions, Period, Namespace, Statistic, or ExtendedStatistic parameters of PutMetricAlarm in the same operation. Instead, you retrieve the metrics you are using in your math expression as part of the Metrics array.

" + "documentation":"

An array of MetricDataQuery structures that enable you to create an alarm based on the result of a metric math expression. For each PutMetricAlarm operation, you must specify either MetricName or a Metrics array.

Each item in the Metrics array either retrieves a metric or performs a math expression.

One item in the Metrics array is the expression that the alarm watches. You designate this expression by setting ReturnValue to true for this object in the array. For more information, see MetricDataQuery.

If you use the Metrics parameter, you cannot include the MetricName, Dimensions, Period, Namespace, Statistic, or ExtendedStatistic parameters of PutMetricAlarm in the same operation. Instead, you retrieve the metrics you are using in your math expression as part of the Metrics array.

" }, "Tags":{ "shape":"TagList", @@ -2537,7 +2711,7 @@ }, "StateReasonData":{ "shape":"StateReasonData", - "documentation":"

The reason that this alarm is set to this specific state, in JSON format.

" + "documentation":"

The reason that this alarm is set to this specific state, in JSON format.

For SNS or EC2 alarm actions, this is just informational. But for EC2 Auto Scaling or application Auto Scaling alarm actions, the Auto Scaling policy uses the information in this field to take the correct action.

" } } }, diff --git a/botocore/data/cloudwatch/2010-08-01/waiters-2.json b/botocore/data/cloudwatch/2010-08-01/waiters-2.json index cb0cf0bf..32803bba 100644 --- a/botocore/data/cloudwatch/2010-08-01/waiters-2.json +++ b/botocore/data/cloudwatch/2010-08-01/waiters-2.json @@ -13,6 +13,19 @@ "state": "success" } ] + }, + "CompositeAlarmExists": { + "delay": 5, + "maxAttempts": 40, + "operation": "DescribeAlarms", + "acceptors": [ + { + "matcher": "path", + "expected": true, + "argument": "length(CompositeAlarms[]) > `0`", + "state": "success" + } + ] } } } diff --git a/botocore/data/codeguruprofiler/2019-07-18/service-2.json b/botocore/data/codeguruprofiler/2019-07-18/service-2.json index 75e4313b..f9f10049 100644 --- a/botocore/data/codeguruprofiler/2019-07-18/service-2.json +++ b/botocore/data/codeguruprofiler/2019-07-18/service-2.json @@ -27,7 +27,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Provides the configuration to use for an agent of the profiling group.

" + "documentation":"

" }, "CreateProfilingGroup":{ "name":"CreateProfilingGroup", @@ -45,7 +45,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Create a profiling group.

", + "documentation":"

Creates a profiling group.

", "idempotent":true }, "DeleteProfilingGroup":{ @@ -63,7 +63,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Delete a profiling group.

", + "documentation":"

Deletes a profiling group.

", "idempotent":true }, "DescribeProfilingGroup":{ @@ -81,7 +81,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Describe a profiling group.

" + "documentation":"

Describes a profiling group.

" }, "GetProfile":{ "name":"GetProfile", @@ -98,7 +98,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Get the aggregated profile of a profiling group for the specified time range. If the requested time range does not align with the available aggregated profiles, it will be expanded to attain alignment. If aggregated profiles are available only for part of the period requested, the profile is returned from the earliest available to the latest within the requested time range. For instance, if the requested time range is from 00:00 to 00:20 and the available profiles are from 00:15 to 00:25, then the returned profile will be from 00:15 to 00:20.

" + "documentation":"

Gets the aggregated profile of a profiling group for the specified time range. If the requested time range does not align with the available aggregated profiles, it is expanded to attain alignment. If aggregated profiles are available only for part of the period requested, the profile is returned from the earliest available to the latest within the requested time range.

For example, if the requested time range is from 00:00 to 00:20 and the available profiles are from 00:15 to 00:25, the returned profile will be from 00:15 to 00:20.

You must specify exactly two of the following parameters: startTime, period, and endTime.

" }, "ListProfileTimes":{ "name":"ListProfileTimes", @@ -130,7 +130,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

List profiling groups in the account.

" + "documentation":"

Lists profiling groups.

" }, "PostAgentProfile":{ "name":"PostAgentProfile", @@ -147,7 +147,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Submit profile collected by an agent belonging to a profiling group for aggregation.

" + "documentation":"

" }, "UpdateProfilingGroup":{ "name":"UpdateProfilingGroup", @@ -165,7 +165,7 @@ {"shape":"ThrottlingException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Update a profiling group.

", + "documentation":"

Updates a profiling group.

", "idempotent":true } }, @@ -179,14 +179,14 @@ "members":{ "periodInSeconds":{ "shape":"Integer", - "documentation":"

Specifies the period to follow the configuration (to profile or not) and call back to get a new configuration.

" + "documentation":"

" }, "shouldProfile":{ "shape":"Boolean", - "documentation":"

Specifies if the profiling should be enabled by the agent.

" + "documentation":"

" } }, - "documentation":"

The configuration for the agent to use.

" + "documentation":"

" }, "AgentOrchestrationConfig":{ "type":"structure", @@ -194,36 +194,29 @@ "members":{ "profilingEnabled":{ "shape":"Boolean", - "documentation":"

If the agents should be enabled to create and report profiles.

" + "documentation":"

" } }, - "documentation":"

Configuration to orchestrate agents to create and report agent profiles of the profiling group. Agents are orchestrated if they follow the agent orchestration protocol.

" - }, - "AgentProfile":{ - "type":"blob", - "documentation":"

The profile collected by an agent for a time range.

" - }, - "AggregatedProfile":{ - "type":"blob", - "documentation":"

The profile representing the aggregation of agent profiles of the profiling group for a time range.

" + "documentation":"

" }, + "AgentProfile":{"type":"blob"}, + "AggregatedProfile":{"type":"blob"}, "AggregatedProfileTime":{ "type":"structure", "members":{ "period":{ "shape":"AggregationPeriod", - "documentation":"

The aggregation period of the aggregated profile.

" + "documentation":"

The time period.

" }, "start":{ "shape":"Timestamp", - "documentation":"

The start time of the aggregated profile.

" + "documentation":"

The start time.

" } }, - "documentation":"

The time range of an aggregated profile.

" + "documentation":"

Information about the time range of the latest available aggregated profile.

" }, "AggregationPeriod":{ "type":"string", - "documentation":"

Periods of time used for aggregation of profiles, represented using ISO 8601 format.

", "enum":[ "P1D", "PT1H", @@ -236,7 +229,6 @@ }, "ClientToken":{ "type":"string", - "documentation":"

Client token for the request.

", "max":64, "min":1, "pattern":"^[\\w-]+$" @@ -245,14 +237,18 @@ "type":"structure", "required":["profilingGroupName"], "members":{ - "fleetInstanceId":{"shape":"FleetInstanceId"}, + "fleetInstanceId":{ + "shape":"FleetInstanceId", + "documentation":"

" + }, "profilingGroupName":{ "shape":"ProfilingGroupName", + "documentation":"

", "location":"uri", "locationName":"profilingGroupName" } }, - "documentation":"

Request for ConfigureAgent operation.

" + "documentation":"

The structure representing the configureAgentRequest.

" }, "ConfigureAgentResponse":{ "type":"structure", @@ -260,10 +256,10 @@ "members":{ "configuration":{ "shape":"AgentConfiguration", - "documentation":"

The configuration for the agent to use.

" + "documentation":"

" } }, - "documentation":"

Response for ConfigureAgent operation.

", + "documentation":"

The structure representing the configureAgentResponse.

", "payload":"configuration" }, "ConflictException":{ @@ -272,7 +268,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

Request can can cause an inconsistent state for the resource.

", + "documentation":"

The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request.

", "error":{ "httpStatusCode":409, "senderFault":true @@ -286,24 +282,34 @@ "profilingGroupName" ], "members":{ - "agentOrchestrationConfig":{"shape":"AgentOrchestrationConfig"}, + "agentOrchestrationConfig":{ + "shape":"AgentOrchestrationConfig", + "documentation":"

The agent orchestration configuration.

" + }, "clientToken":{ "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

This parameter specifies a unique identifier for the new profiling group that helps ensure idempotency.

", "idempotencyToken":true, "location":"querystring", "locationName":"clientToken" }, - "profilingGroupName":{"shape":"ProfilingGroupName"} + "profilingGroupName":{ + "shape":"ProfilingGroupName", + "documentation":"

The name of the profiling group.

" + } }, - "documentation":"

Request for CreateProfilingGroup operation.

" + "documentation":"

The structure representing the createProfiliingGroupRequest.

" }, "CreateProfilingGroupResponse":{ "type":"structure", "required":["profilingGroup"], "members":{ - "profilingGroup":{"shape":"ProfilingGroupDescription"} + "profilingGroup":{ + "shape":"ProfilingGroupDescription", + "documentation":"

Information about the new profiling group

" + } }, - "documentation":"

Response for CreateProfilingGroup operation.

", + "documentation":"

The structure representing the createProfilingGroupResponse.

", "payload":"profilingGroup" }, "DeleteProfilingGroupRequest":{ @@ -312,17 +318,18 @@ "members":{ "profilingGroupName":{ "shape":"ProfilingGroupName", + "documentation":"

The profiling group name to delete.

", "location":"uri", "locationName":"profilingGroupName" } }, - "documentation":"

Request for DeleteProfilingGroup operation.

" + "documentation":"

The structure representing the deleteProfilingGroupRequest.

" }, "DeleteProfilingGroupResponse":{ "type":"structure", "members":{ }, - "documentation":"

Response for DeleteProfilingGroup operation.

" + "documentation":"

The structure representing the deleteProfilingGroupResponse.

" }, "DescribeProfilingGroupRequest":{ "type":"structure", @@ -330,24 +337,27 @@ "members":{ "profilingGroupName":{ "shape":"ProfilingGroupName", + "documentation":"

The profiling group name.

", "location":"uri", "locationName":"profilingGroupName" } }, - "documentation":"

Request for DescribeProfilingGroup operation.

" + "documentation":"

The structure representing the describeProfilingGroupRequest.

" }, "DescribeProfilingGroupResponse":{ "type":"structure", "required":["profilingGroup"], "members":{ - "profilingGroup":{"shape":"ProfilingGroupDescription"} + "profilingGroup":{ + "shape":"ProfilingGroupDescription", + "documentation":"

Information about a profiling group.

" + } }, - "documentation":"

Response for DescribeProfilingGroup operation.

", + "documentation":"

The structure representing the describeProfilingGroupResponse.

", "payload":"profilingGroup" }, "FleetInstanceId":{ "type":"string", - "documentation":"

Identifier of the instance of compute fleet being profiled by the agent. For instance, host name in EC2, task id for ECS, function name for AWS Lambda

", "max":255, "min":1, "pattern":"^[\\w-.:/]+$" @@ -358,40 +368,42 @@ "members":{ "accept":{ "shape":"String", - "documentation":"

The format of the profile to return. Supports application/json or application/x-amzn-ion. Defaults to application/x-amzn-ion.

", + "documentation":"

The format of the profile to return. You can choose application/json or the default application/x-amzn-ion.

", "location":"header", "locationName":"Accept" }, "endTime":{ "shape":"Timestamp", - "documentation":"

The end time of the profile to get. Either period or endTime must be specified. Must be greater than start and the overall time range to be in the past and not larger than a week.

", + "documentation":"

You must specify exactly two of the following parameters: startTime, period, and endTime.

", "location":"querystring", "locationName":"endTime" }, "maxDepth":{ "shape":"MaxDepth", + "documentation":"

The maximum depth of the graph.

", "location":"querystring", "locationName":"maxDepth" }, "period":{ "shape":"Period", - "documentation":"

The period of the profile to get. Exactly two of startTime, period and endTime must be specified. Must be positive and the overall time range to be in the past and not larger than a week.

", + "documentation":"

The period of the profile to get. The time range must be in the past and not longer than one week.

You must specify exactly two of the following parameters: startTime, period, and endTime.

", "location":"querystring", "locationName":"period" }, "profilingGroupName":{ "shape":"ProfilingGroupName", + "documentation":"

The name of the profiling group to get.

", "location":"uri", "locationName":"profilingGroupName" }, "startTime":{ "shape":"Timestamp", - "documentation":"

The start time of the profile to get.

", + "documentation":"

The start time of the profile to get.

You must specify exactly two of the following parameters: startTime, period, and endTime.

", "location":"querystring", "locationName":"startTime" } }, - "documentation":"

Request for GetProfile operation.

" + "documentation":"

The structure representing the getProfileRequest.

" }, "GetProfileResponse":{ "type":"structure", @@ -402,19 +414,22 @@ "members":{ "contentEncoding":{ "shape":"String", - "documentation":"

The content encoding of the profile in the payload.

", + "documentation":"

The content encoding of the profile.

", "location":"header", "locationName":"Content-Encoding" }, "contentType":{ "shape":"String", - "documentation":"

The content type of the profile in the payload. Will be application/json or application/x-amzn-ion based on Accept header in the request.

", + "documentation":"

The content type of the profile in the payload. It is either application/json or the default application/x-amzn-ion.

", "location":"header", "locationName":"Content-Type" }, - "profile":{"shape":"AggregatedProfile"} + "profile":{ + "shape":"AggregatedProfile", + "documentation":"

Information about the profile.

" + } }, - "documentation":"

Response for GetProfile operation.

", + "documentation":"

The structure representing the getProfileResponse.

", "payload":"profile" }, "Integer":{ @@ -427,7 +442,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

Unexpected error during processing of request.

", + "documentation":"

The server encountered an internal error and is unable to complete the request.

", "error":{"httpStatusCode":500}, "exception":true, "fault":true @@ -443,100 +458,115 @@ "members":{ "endTime":{ "shape":"Timestamp", - "documentation":"

The end time of the time range to list profiles until.

", + "documentation":"

The end time of the time range from which to list the profiles.

", "location":"querystring", "locationName":"endTime" }, "maxResults":{ "shape":"MaxResults", + "documentation":"

The maximum number of profile time results returned by ListProfileTimes in paginated output. When this parameter is used, ListProfileTimes only returns maxResults results in a single page with a nextToken response element. The remaining results of the initial request can be seen by sending another ListProfileTimes request with the returned nextToken value.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"PaginationToken", + "documentation":"

The nextToken value returned from a previous paginated ListProfileTimes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "location":"querystring", "locationName":"nextToken" }, "orderBy":{ "shape":"OrderBy", - "documentation":"

The order (ascending or descending by start time of the profile) to list the profiles by. Defaults to TIMESTAMP_DESCENDING.

", + "documentation":"

The order (ascending or descending by start time of the profile) to use when listing profiles. Defaults to TIMESTAMP_DESCENDING.

", "location":"querystring", "locationName":"orderBy" }, "period":{ "shape":"AggregationPeriod", - "documentation":"

The aggregation period to list the profiles for.

", + "documentation":"

The aggregation period.

", "location":"querystring", "locationName":"period" }, "profilingGroupName":{ "shape":"ProfilingGroupName", + "documentation":"

The name of the profiling group.

", "location":"uri", "locationName":"profilingGroupName" }, "startTime":{ "shape":"Timestamp", - "documentation":"

The start time of the time range to list the profiles from.

", + "documentation":"

The start time of the time range from which to list the profiles.

", "location":"querystring", "locationName":"startTime" } }, - "documentation":"

Request for ListProfileTimes operation.

" + "documentation":"

The structure representing the listProfileTimesRequest.

" }, "ListProfileTimesResponse":{ "type":"structure", "required":["profileTimes"], "members":{ - "nextToken":{"shape":"PaginationToken"}, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The nextToken value to include in a future ListProfileTimes request. When the results of a ListProfileTimes request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + }, "profileTimes":{ "shape":"ProfileTimes", - "documentation":"

List of start times of the available profiles for the aggregation period in the specified time range.

" + "documentation":"

The list of start times of the available profiles for the aggregation period in the specified time range.

" } }, - "documentation":"

Response for ListProfileTimes operation.

" + "documentation":"

The structure representing the listProfileTimesResponse.

" }, "ListProfilingGroupsRequest":{ "type":"structure", "members":{ "includeDescription":{ "shape":"Boolean", - "documentation":"

If set to true, returns the full description of the profiling groups instead of the names. Defaults to false.

", + "documentation":"

A Boolean value indicating whether to include a description.

", "location":"querystring", "locationName":"includeDescription" }, "maxResults":{ "shape":"MaxResults", + "documentation":"

The maximum number of profiling groups results returned by ListProfilingGroups in paginated output. When this parameter is used, ListProfilingGroups only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListProfilingGroups request with the returned nextToken value.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"PaginationToken", + "documentation":"

The nextToken value returned from a previous paginated ListProfilingGroups request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value.

This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Request for ListProfilingGroups operation.

" + "documentation":"

The structure representing the listProfilingGroupsRequest.

" }, "ListProfilingGroupsResponse":{ "type":"structure", "required":["profilingGroupNames"], "members":{ - "nextToken":{"shape":"PaginationToken"}, - "profilingGroupNames":{"shape":"ProfilingGroupNames"}, - "profilingGroups":{"shape":"ProfilingGroupDescriptions"} + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The nextToken value to include in a future ListProfilingGroups request. When the results of a ListProfilingGroups request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

" + }, + "profilingGroupNames":{ + "shape":"ProfilingGroupNames", + "documentation":"

Information about profiling group names.

" + }, + "profilingGroups":{ + "shape":"ProfilingGroupDescriptions", + "documentation":"

Information about profiling groups.

" + } }, - "documentation":"

Response for ListProfilingGroups operation.

" + "documentation":"

The structure representing the listProfilingGroupsResponse.

" }, "MaxDepth":{ "type":"integer", - "documentation":"

Limit the max depth of the profile.

", "box":true, "max":10000, "min":1 }, "MaxResults":{ "type":"integer", - "documentation":"

Upper bound on the number of results to list in a single call.

", "box":true, "max":1000, "min":1 @@ -550,14 +580,12 @@ }, "PaginationToken":{ "type":"string", - "documentation":"

Token for paginating results.

", "max":64, "min":1, "pattern":"^[\\w-]+$" }, "Period":{ "type":"string", - "documentation":"

Periods of time represented using ISO 8601 format.

", "max":64, "min":1 }, @@ -569,34 +597,38 @@ "profilingGroupName" ], "members":{ - "agentProfile":{"shape":"AgentProfile"}, + "agentProfile":{ + "shape":"AgentProfile", + "documentation":"

" + }, "contentType":{ "shape":"String", - "documentation":"

The content type of the agent profile in the payload. Recommended to send the profile gzipped with content-type application/octet-stream. Other accepted values are application/x-amzn-ion and application/json for unzipped Ion and JSON respectively.

", + "documentation":"

", "location":"header", "locationName":"Content-Type" }, "profileToken":{ "shape":"ClientToken", - "documentation":"

Client generated token to deduplicate the agent profile during aggregation.

", + "documentation":"

", "idempotencyToken":true, "location":"querystring", "locationName":"profileToken" }, "profilingGroupName":{ "shape":"ProfilingGroupName", + "documentation":"

", "location":"uri", "locationName":"profilingGroupName" } }, - "documentation":"

Request for PostAgentProfile operation.

", + "documentation":"

The structure representing the postAgentProfileRequest.

", "payload":"agentProfile" }, "PostAgentProfileResponse":{ "type":"structure", "members":{ }, - "documentation":"

Response for PostAgentProfile operation.

" + "documentation":"

The structure representing the postAgentProfileResponse.

" }, "ProfileTime":{ "type":"structure", @@ -606,69 +638,74 @@ "documentation":"

The start time of the profile.

" } }, - "documentation":"

Periods of time used for aggregation of profiles, represented using ISO 8601 format.

" + "documentation":"

Information about the profile time.

" }, "ProfileTimes":{ "type":"list", - "member":{"shape":"ProfileTime"}, - "documentation":"

List of profile times.

" - }, - "ProfilingGroupArn":{ - "type":"string", - "documentation":"

The ARN of the profiling group.

" + "member":{"shape":"ProfileTime"} }, + "ProfilingGroupArn":{"type":"string"}, "ProfilingGroupDescription":{ "type":"structure", "members":{ - "agentOrchestrationConfig":{"shape":"AgentOrchestrationConfig"}, - "arn":{"shape":"ProfilingGroupArn"}, + "agentOrchestrationConfig":{ + "shape":"AgentOrchestrationConfig", + "documentation":"

" + }, + "arn":{ + "shape":"ProfilingGroupArn", + "documentation":"

The Amazon Resource Name (ARN) identifying the profiling group.

" + }, "createdAt":{ "shape":"Timestamp", - "documentation":"

The timestamp of when the profiling group was created.

" + "documentation":"

The time, in milliseconds since the epoch, when the profiling group was created.

" + }, + "name":{ + "shape":"ProfilingGroupName", + "documentation":"

The name of the profiling group.

" + }, + "profilingStatus":{ + "shape":"ProfilingStatus", + "documentation":"

The status of the profiling group.

" }, - "name":{"shape":"ProfilingGroupName"}, - "profilingStatus":{"shape":"ProfilingStatus"}, "updatedAt":{ "shape":"Timestamp", - "documentation":"

The timestamp of when the profiling group was last updated.

" + "documentation":"

The time, in milliseconds since the epoch, when the profiling group was last updated.

" } }, "documentation":"

The description of a profiling group.

" }, "ProfilingGroupDescriptions":{ "type":"list", - "member":{"shape":"ProfilingGroupDescription"}, - "documentation":"

List of profiling group descriptions.

" + "member":{"shape":"ProfilingGroupDescription"} }, "ProfilingGroupName":{ "type":"string", - "documentation":"

The name of the profiling group.

", "max":255, "min":1, "pattern":"^[\\w-]+$" }, "ProfilingGroupNames":{ "type":"list", - "member":{"shape":"ProfilingGroupName"}, - "documentation":"

List of profiling group names.

" + "member":{"shape":"ProfilingGroupName"} }, "ProfilingStatus":{ "type":"structure", "members":{ "latestAgentOrchestratedAt":{ "shape":"Timestamp", - "documentation":"

Timestamp of when the last interaction of the agent with configureAgent API for orchestration.

" + "documentation":"

The time, in milliseconds since the epoch, when the latest agent was orchestrated.

" }, "latestAgentProfileReportedAt":{ "shape":"Timestamp", - "documentation":"

Timestamp of when the latest agent profile was successfully reported.

" + "documentation":"

The time, in milliseconds since the epoch, when the latest agent was reported..

" }, "latestAggregatedProfile":{ "shape":"AggregatedProfileTime", - "documentation":"

The time range of latest aggregated profile available.

" + "documentation":"

The latest aggregated profile

" } }, - "documentation":"

The status of profiling of a profiling group.

" + "documentation":"

Information about the profiling status.

" }, "ResourceNotFoundException":{ "type":"structure", @@ -676,7 +713,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

Request references a resource which does not exist.

", + "documentation":"

The resource specified in the request does not exist.

", "error":{ "httpStatusCode":404, "senderFault":true @@ -689,7 +726,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

Request would cause a service quota to be exceeded.

", + "documentation":"

You have exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use Service Quotas to request a service quota increase.

", "error":{ "httpStatusCode":402, "senderFault":true @@ -703,7 +740,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

Request was denied due to request throttling.

", + "documentation":"

The request was denied due to request throttling.

", "error":{ "httpStatusCode":429, "senderFault":true @@ -723,23 +760,27 @@ "members":{ "agentOrchestrationConfig":{ "shape":"AgentOrchestrationConfig", - "documentation":"

Remote configuration to configure the agents of the profiling group.

" + "documentation":"

" }, "profilingGroupName":{ "shape":"ProfilingGroupName", + "documentation":"

The name of the profiling group to update.

", "location":"uri", "locationName":"profilingGroupName" } }, - "documentation":"

Request for UpdateProfilingGroup operation.

" + "documentation":"

The structure representing the updateProfilingGroupRequest.

" }, "UpdateProfilingGroupResponse":{ "type":"structure", "required":["profilingGroup"], "members":{ - "profilingGroup":{"shape":"ProfilingGroupDescription"} + "profilingGroup":{ + "shape":"ProfilingGroupDescription", + "documentation":"

Updated information about the profiling group.

" + } }, - "documentation":"

Response for UpdateProfilingGroup operation.

", + "documentation":"

The structure representing the updateProfilingGroupResponse.

", "payload":"profilingGroup" }, "ValidationException":{ @@ -748,7 +789,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

The input fails to satisfy the constraints of the API.

", + "documentation":"

The parameter is not valid.

", "error":{ "httpStatusCode":400, "senderFault":true @@ -756,5 +797,5 @@ "exception":true } }, - "documentation":"

Example service documentation.

" + "documentation":"

This section provides documentation for the Amazon CodeGuru Profiler API operations.

" } diff --git a/botocore/data/cognito-idp/2016-04-18/service-2.json b/botocore/data/cognito-idp/2016-04-18/service-2.json index 6448c1c4..13af0ec5 100644 --- a/botocore/data/cognito-idp/2016-04-18/service-2.json +++ b/botocore/data/cognito-idp/2016-04-18/service-2.json @@ -1109,7 +1109,7 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"} ], - "documentation":"

Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. If a verified phone number exists for the user, the confirmation code is sent to the phone number. Otherwise, if a verified email exists, the confirmation code is sent to the email. If neither a verified phone number nor a verified email exists, InvalidParameterException is thrown. To use the confirmation code for resetting the password, call .

", + "documentation":"

Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. The method used to send the confirmation code is sent according to the specified AccountRecoverySetting. For more information, see Recovering User Accounts in the Amazon Cognito Developer Guide. If neither a verified phone number nor a verified email exists, an InvalidParameterException is thrown. To use the confirmation code for resetting the password, call .

", "authtype":"none" }, "GetCSVHeader":{ @@ -3033,7 +3033,7 @@ "documentation":"

If UserDataShared is true, Amazon Cognito will include user data in the events it publishes to Amazon Pinpoint analytics.

" } }, - "documentation":"

The Amazon Pinpoint analytics configuration for collecting metrics for a user pool.

" + "documentation":"

The Amazon Pinpoint analytics configuration for collecting metrics for a user pool.

Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides.

" }, "AnalyticsMetadataType":{ "type":"structure", @@ -3043,7 +3043,7 @@ "documentation":"

The endpoint ID.

" } }, - "documentation":"

An Amazon Pinpoint analytics endpoint.

An endpoint uniquely identifies a mobile device, email address, or phone number that can receive messages from Amazon Pinpoint analytics.

" + "documentation":"

An Amazon Pinpoint analytics endpoint.

An endpoint uniquely identifies a mobile device, email address, or phone number that can receive messages from Amazon Pinpoint analytics.

Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides.

" }, "ArnType":{ "type":"string", @@ -3187,7 +3187,11 @@ "AuthParametersType":{ "type":"map", "key":{"shape":"StringType"}, - "value":{"shape":"StringType"} + "value":{"shape":"AuthParametersValueType"} + }, + "AuthParametersValueType":{ + "type":"string", + "sensitive":true }, "AuthenticationResultType":{ "type":"structure", @@ -3681,7 +3685,7 @@ }, "ProviderDetails":{ "shape":"ProviderDetailsType", - "documentation":"

The identity provider details, such as MetadataURL and MetadataFile.

" + "documentation":"

The identity provider details. The following list describes the provider detail keys for each identity provider type.

  • For Google, Facebook and Login with Amazon:

    • client_id

    • client_secret

    • authorize_scopes

  • For Sign in with Apple:

    • client_id

    • team_id

    • key_id

    • private_key

    • authorize_scopes

  • For OIDC providers:

    • client_id

    • client_secret

    • attributes_request_method

    • oidc_issuer

    • authorize_scopes

    • authorize_url if not available from discovery URL specified by oidc_issuer key

    • token_url if not available from discovery URL specified by oidc_issuer key

    • attributes_url if not available from discovery URL specified by oidc_issuer key

    • jwks_uri if not available from discovery URL specified by oidc_issuer key

    • authorize_scopes

  • For SAML providers:

    • MetadataFile OR MetadataURL

    • IDPSignout optional

" }, "AttributeMapping":{ "shape":"AttributeMappingType", @@ -3825,23 +3829,23 @@ }, "AllowedOAuthFlows":{ "shape":"OAuthFlowsType", - "documentation":"

Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint.

Set to token to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly.

" + "documentation":"

The allowed OAuth flows.

Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint.

Set to implicit to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly.

Set to client_credentials to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.

" }, "AllowedOAuthScopes":{ "shape":"ScopeListType", - "documentation":"

A list of allowed OAuth scopes. Currently supported values are \"phone\", \"email\", \"openid\", and \"Cognito\". In addition to these values, custom scopes created in Resource Servers are also supported.

" + "documentation":"

The allowed OAuth scopes. Possible values provided by OAuth are: phone, email, openid, and profile. Possible values provided by AWS are: aws.cognito.signin.user.admin. Custom scopes created in Resource Servers are also supported.

" }, "AllowedOAuthFlowsUserPoolClient":{ "shape":"BooleanType", - "documentation":"

Set to True if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

" + "documentation":"

Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

" }, "AnalyticsConfiguration":{ "shape":"AnalyticsConfigurationType", - "documentation":"

The Amazon Pinpoint analytics configuration for collecting metrics for this user pool.

" + "documentation":"

The Amazon Pinpoint analytics configuration for collecting metrics for this user pool.

Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides.

" }, "PreventUserExistenceErrors":{ "shape":"PreventUserExistenceErrorTypes", - "documentation":"

Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to ENABLED and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to LEGACY, those APIs will return a UserNotFoundException exception if the user does not exist in the user pool.

Valid values include:

  • ENABLED - This prevents user existence-related errors.

  • LEGACY - This represents the old behavior of Cognito where user existence related errors are not prevented.

This setting affects the behavior of following APIs:

After January 1st 2020, the value of PreventUserExistenceErrors will default to ENABLED for newly created user pool clients if no value is provided.

" + "documentation":"

Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to ENABLED and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to LEGACY, those APIs will return a UserNotFoundException exception if the user does not exist in the user pool.

Valid values include:

  • ENABLED - This prevents user existence-related errors.

  • LEGACY - This represents the old behavior of Cognito where user existence related errors are not prevented.

This setting affects the behavior of following APIs:

After February 15th 2020, the value of PreventUserExistenceErrors will default to ENABLED for newly created user pool clients if no value is provided.

" } }, "documentation":"

Represents the request to create a user pool client.

" @@ -3966,6 +3970,10 @@ "shape":"UserPoolAddOnsType", "documentation":"

Used to enable advanced security risk detection. Set the key AdvancedSecurityMode to the value \"AUDIT\".

" }, + "UsernameConfiguration":{ + "shape":"UsernameConfigurationType", + "documentation":"

You can choose to set case sensitivity on the username input for the selected sign-in option. For example, when this is set to False, users will be able to sign in using either \"username\" or \"Username\". This configuration is immutable once it has been set. For more information, see .

" + }, "AccountRecoverySetting":{ "shape":"AccountRecoverySettingType", "documentation":"

Use this setting to define which verified available method a user can use to recover their password when they call ForgotPassword. It allows you to define a preferred method when a user has more than one method available. With this setting, SMS does not qualify for a valid password recovery mechanism if the user also has SMS MFA enabled. In the absence of this setting, Cognito uses the legacy behavior to determine the recovery method where SMS is preferred over email.

Starting February 1, 2020, the value of AccountRecoverySetting will default to verified_email first and verified_phone_number as the second option for newly created user pools if no value is provided.

" @@ -4647,6 +4655,10 @@ "RiskLevel":{ "shape":"RiskLevelType", "documentation":"

The risk level.

" + }, + "CompromisedCredentialsDetected":{ + "shape":"WrappedBooleanType", + "documentation":"

Indicates whether compromised credentials were detected during an authentication event.

" } }, "documentation":"

The event risk type.

" @@ -5112,7 +5124,7 @@ }, "ProviderDetails":{ "shape":"ProviderDetailsType", - "documentation":"

The identity provider details, such as MetadataURL and MetadataFile.

" + "documentation":"

The identity provider details. The following list describes the provider detail keys for each identity provider type.

  • For Google, Facebook and Login with Amazon:

    • client_id

    • client_secret

    • authorize_scopes

  • For Sign in with Apple:

    • client_id

    • team_id

    • key_id

    • private_key

    • authorize_scopes

  • For OIDC providers:

    • client_id

    • client_secret

    • attributes_request_method

    • oidc_issuer

    • authorize_scopes

    • authorize_url if not available from discovery URL specified by oidc_issuer key

    • token_url if not available from discovery URL specified by oidc_issuer key

    • attributes_url if not available from discovery URL specified by oidc_issuer key

    • jwks_uri if not available from discovery URL specified by oidc_issuer key

    • authorize_scopes

  • For SAML providers:

    • MetadataFile OR MetadataURL

    • IDPSignOut optional

" }, "AttributeMapping":{ "shape":"AttributeMappingType", @@ -6374,7 +6386,7 @@ }, "DeveloperOnlyAttribute":{ "shape":"BooleanType", - "documentation":"

Specifies whether the attribute type is developer only.

", + "documentation":"

We recommend that you use WriteAttributes in the user pool client to control how attributes can be mutated for new use cases instead of using DeveloperOnlyAttribute.

Specifies whether the attribute type is developer only. This attribute can only be modified by an administrator. Users will not be able to modify this attribute using their access token. For example, DeveloperOnlyAttribute can be modified using the API but cannot be updated using the API.

", "box":true }, "Mutable":{ @@ -7246,23 +7258,23 @@ }, "AllowedOAuthFlows":{ "shape":"OAuthFlowsType", - "documentation":"

Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint.

" + "documentation":"

The allowed OAuth flows.

Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint.

Set to implicit to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly.

Set to client_credentials to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.

" }, "AllowedOAuthScopes":{ "shape":"ScopeListType", - "documentation":"

A list of allowed OAuth scopes. Currently supported values are \"phone\", \"email\", \"openid\", and \"Cognito\". In addition to these values, custom scopes created in Resource Servers are also supported.

" + "documentation":"

The allowed OAuth scopes. Possible values provided by OAuth are: phone, email, openid, and profile. Possible values provided by AWS are: aws.cognito.signin.user.admin. Custom scopes created in Resource Servers are also supported.

" }, "AllowedOAuthFlowsUserPoolClient":{ "shape":"BooleanType", - "documentation":"

Set to TRUE if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

" + "documentation":"

Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

" }, "AnalyticsConfiguration":{ "shape":"AnalyticsConfigurationType", - "documentation":"

The Amazon Pinpoint analytics configuration for collecting metrics for this user pool.

" + "documentation":"

The Amazon Pinpoint analytics configuration for collecting metrics for this user pool.

Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides.

" }, "PreventUserExistenceErrors":{ "shape":"PreventUserExistenceErrorTypes", - "documentation":"

Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to ENABLED and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to LEGACY, those APIs will return a UserNotFoundException exception if the user does not exist in the user pool.

Valid values include:

  • ENABLED - This prevents user existence-related errors.

  • LEGACY - This represents the old behavior of Cognito where user existence related errors are not prevented.

This setting affects the behavior of following APIs:

After January 1st 2020, the value of PreventUserExistenceErrors will default to ENABLED for newly created user pool clients if no value is provided.

" + "documentation":"

Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to ENABLED and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to LEGACY, those APIs will return a UserNotFoundException exception if the user does not exist in the user pool.

Valid values include:

  • ENABLED - This prevents user existence-related errors.

  • LEGACY - This represents the old behavior of Cognito where user existence related errors are not prevented.

This setting affects the behavior of following APIs:

After February 15th 2020, the value of PreventUserExistenceErrors will default to ENABLED for newly created user pool clients if no value is provided.

" } }, "documentation":"

Represents the request to update the user pool client.

" @@ -7644,24 +7656,24 @@ }, "AllowedOAuthFlows":{ "shape":"OAuthFlowsType", - "documentation":"

Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint.

Set to token to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly.

" + "documentation":"

The allowed OAuth flows.

Set to code to initiate a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the token endpoint.

Set to implicit to specify that the client should get the access token (and, optionally, ID token, based on scopes) directly.

Set to client_credentials to specify that the client should get the access token (and, optionally, ID token, based on scopes) from the token endpoint using a combination of client and client_secret.

" }, "AllowedOAuthScopes":{ "shape":"ScopeListType", - "documentation":"

A list of allowed OAuth scopes. Currently supported values are \"phone\", \"email\", \"openid\", and \"Cognito\". In addition to these values, custom scopes created in Resource Servers are also supported.

" + "documentation":"

The allowed OAuth scopes. Possible values provided by OAuth are: phone, email, openid, and profile. Possible values provided by AWS are: aws.cognito.signin.user.admin. Custom scopes created in Resource Servers are also supported.

" }, "AllowedOAuthFlowsUserPoolClient":{ "shape":"BooleanType", - "documentation":"

Set to TRUE if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

", + "documentation":"

Set to true if the client is allowed to follow the OAuth protocol when interacting with Cognito user pools.

", "box":true }, "AnalyticsConfiguration":{ "shape":"AnalyticsConfigurationType", - "documentation":"

The Amazon Pinpoint analytics configuration for the user pool client.

" + "documentation":"

The Amazon Pinpoint analytics configuration for the user pool client.

Cognito User Pools only supports sending events to Amazon Pinpoint projects in the US East (N. Virginia) us-east-1 Region, regardless of the region in which the user pool resides.

" }, "PreventUserExistenceErrors":{ "shape":"PreventUserExistenceErrorTypes", - "documentation":"

Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to ENABLED and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to LEGACY, those APIs will return a UserNotFoundException exception if the user does not exist in the user pool.

Valid values include:

  • ENABLED - This prevents user existence-related errors.

  • LEGACY - This represents the old behavior of Cognito where user existence related errors are not prevented.

This setting affects the behavior of following APIs:

After January 1st 2020, the value of PreventUserExistenceErrors will default to ENABLED for newly created user pool clients if no value is provided.

" + "documentation":"

Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool. When set to ENABLED and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination. When set to LEGACY, those APIs will return a UserNotFoundException exception if the user does not exist in the user pool.

Valid values include:

  • ENABLED - This prevents user existence-related errors.

  • LEGACY - This represents the old behavior of Cognito where user existence related errors are not prevented.

This setting affects the behavior of following APIs:

After February 15th 2020, the value of PreventUserExistenceErrors will default to ENABLED for newly created user pool clients if no value is provided.

" } }, "documentation":"

Contains information about a user pool client.

" @@ -7862,6 +7874,10 @@ "shape":"UserPoolAddOnsType", "documentation":"

The user pool add-ons.

" }, + "UsernameConfiguration":{ + "shape":"UsernameConfigurationType", + "documentation":"

You can choose to enable case sensitivity on the username input for the selected sign-in option. For example, when this is set to False, users will be able to sign in using either \"username\" or \"Username\". This configuration is immutable once it has been set. For more information, see .

" + }, "Arn":{ "shape":"ArnType", "documentation":"

The Amazon Resource Name (ARN) for the user pool.

" @@ -7930,6 +7946,17 @@ "type":"list", "member":{"shape":"UsernameAttributeType"} }, + "UsernameConfigurationType":{ + "type":"structure", + "required":["CaseSensitive"], + "members":{ + "CaseSensitive":{ + "shape":"WrappedBooleanType", + "documentation":"

Specifies whether username case sensitivity will be applied for all users in the user pool through Cognito APIs.

Valid values include:

  • True : Enables case sensitivity for all username input. When this option is set to True, users must sign in using the exact capitalization of their given username. For example, “UserName”. This is the default value.

  • False : Enables case insensitivity for all username input. For example, when this option is set to False, users will be able to sign in using either \"username\" or \"Username\". This option also enables both preferred_username and email alias to be case insensitive, in addition to the username attribute.

" + } + }, + "documentation":"

The username configuration type.

" + }, "UsernameExistsException":{ "type":"structure", "members":{ @@ -8063,7 +8090,8 @@ "members":{ }, "documentation":"

A container representing the response from the server from the request to verify user attributes.

" - } + }, + "WrappedBooleanType":{"type":"boolean"} }, "documentation":"

Using the Amazon Cognito User Pools API, you can create a user pool to manage directories and users. You can authenticate a user to obtain tokens related to user identity and access policies.

This API reference provides information about user pools in Amazon Cognito User Pools.

For more information, see the Amazon Cognito Documentation.

" } diff --git a/botocore/data/comprehendmedical/2018-10-30/service-2.json b/botocore/data/comprehendmedical/2018-10-30/service-2.json index 32d34a0c..a5d180ef 100644 --- a/botocore/data/comprehendmedical/2018-10-30/service-2.json +++ b/botocore/data/comprehendmedical/2018-10-30/service-2.json @@ -82,7 +82,7 @@ {"shape":"InvalidEncodingException"}, {"shape":"TextSizeLimitExceededException"} ], - "documentation":"

Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information.

The DetectEntitiesV2 operation replaces the DetectEntities operation. This new action uses a different model for determining the entities in your medical text and changes the way that some entities are returned in the output. You should use the DetectEntitiesV2 operation in all new applications.

The DetectEntitiesV2 operation returns the Acuity and Direction entities as attributes instead of types.

" + "documentation":"

Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information. Amazon Comprehend Medical only detects medical entities in English language texts.

The DetectEntitiesV2 operation replaces the DetectEntities operation. This new action uses a different model for determining the entities in your medical text and changes the way that some entities are returned in the output. You should use the DetectEntitiesV2 operation in all new applications.

The DetectEntitiesV2 operation returns the Acuity and Direction entities as attributes instead of types.

" }, "DetectPHI":{ "name":"DetectPHI", @@ -100,7 +100,7 @@ {"shape":"InvalidEncodingException"}, {"shape":"TextSizeLimitExceededException"} ], - "documentation":"

Inspects the clinical text for protected health information (PHI) entities and entity category, location, and confidence score on that information.

" + "documentation":"

Inspects the clinical text for protected health information (PHI) entities and returns the entity category, location, and confidence score for each entity. Amazon Comprehend Medical only detects entities in English language texts.

" }, "InferICD10CM":{ "name":"InferICD10CM", @@ -118,7 +118,7 @@ {"shape":"InvalidEncodingException"}, {"shape":"TextSizeLimitExceededException"} ], - "documentation":"

InferICD10CM detects medical conditions as entities listed in a patient record and links those entities to normalized concept identifiers in the ICD-10-CM knowledge base from the Centers for Disease Control.

" + "documentation":"

InferICD10CM detects medical conditions as entities listed in a patient record and links those entities to normalized concept identifiers in the ICD-10-CM knowledge base from the Centers for Disease Control. Amazon Comprehend Medical only detects medical entities in English language texts.

" }, "InferRxNorm":{ "name":"InferRxNorm", @@ -136,7 +136,7 @@ {"shape":"InvalidEncodingException"}, {"shape":"TextSizeLimitExceededException"} ], - "documentation":"

InferRxNorm detects medications as entities listed in a patient record and links to the normalized concept identifiers in the RxNorm database from the National Library of Medicine.

" + "documentation":"

InferRxNorm detects medications as entities listed in a patient record and links to the normalized concept identifiers in the RxNorm database from the National Library of Medicine. Amazon Comprehend Medical only detects medical entities in English language texts.

" }, "ListEntitiesDetectionV2Jobs":{ "name":"ListEntitiesDetectionV2Jobs", @@ -250,6 +250,10 @@ "shape":"Float", "documentation":"

The level of confidence that Amazon Comprehend Medical has that this attribute is correctly related to this entity.

" }, + "RelationshipType":{ + "shape":"RelationshipType", + "documentation":"

The type of relationship between the entity and attribute. Type for the relationship is OVERLAP, indicating that the entity occurred at the same time as the Date_Expression.

" + }, "Id":{ "shape":"Integer", "documentation":"

The numeric identifier for this attribute. This is a monotonically increasing id unique within this response rather than a global unique identifier.

" @@ -266,6 +270,10 @@ "shape":"String", "documentation":"

The segment of input text extracted as this attribute.

" }, + "Category":{ + "shape":"EntityType", + "documentation":"

The category of attribute.

" + }, "Traits":{ "shape":"TraitList", "documentation":"

Contextual information for this attribute.

" @@ -600,7 +608,13 @@ "SYSTEM_ORGAN_SITE", "DIRECTION", "QUALITY", - "QUANTITY" + "QUANTITY", + "TIME_EXPRESSION", + "TIME_TO_MEDICATION_NAME", + "TIME_TO_DX_NAME", + "TIME_TO_TEST_NAME", + "TIME_TO_PROCEDURE_NAME", + "TIME_TO_TREATMENT_NAME" ] }, "EntityType":{ @@ -610,7 +624,8 @@ "MEDICAL_CONDITION", "PROTECTED_HEALTH_INFORMATION", "TEST_TREATMENT_PROCEDURE", - "ANATOMY" + "ANATOMY", + "TIME_EXPRESSION" ] }, "Float":{"type":"float"}, @@ -848,7 +863,7 @@ "documentation":"

The path to the input data files in the S3 bucket.

" } }, - "documentation":"

The input properties for an entities detection job

" + "documentation":"

The input properties for an entities detection job.

" }, "Integer":{"type":"integer"}, "InternalServerException":{ @@ -1001,6 +1016,28 @@ }, "documentation":"

The output properties for a detection job.

" }, + "RelationshipType":{ + "type":"string", + "enum":[ + "EVERY", + "WITH_DOSAGE", + "ADMINISTERED_VIA", + "FOR", + "NEGATIVE", + "OVERLAP", + "DOSAGE", + "ROUTE_OR_MODE", + "FORM", + "FREQUENCY", + "DURATION", + "STRENGTH", + "RATE", + "ACUITY", + "TEST_VALUE", + "TEST_UNITS", + "DIRECTION" + ] + }, "ResourceNotFoundException":{ "type":"structure", "members":{ diff --git a/botocore/data/config/2014-11-12/service-2.json b/botocore/data/config/2014-11-12/service-2.json index 5024c972..5ac3ebe0 100644 --- a/botocore/data/config/2014-11-12/service-2.json +++ b/botocore/data/config/2014-11-12/service-2.json @@ -180,7 +180,8 @@ "output":{"shape":"DeleteRemediationConfigurationResponse"}, "errors":[ {"shape":"NoSuchRemediationConfigurationException"}, - {"shape":"RemediationInProgressException"} + {"shape":"RemediationInProgressException"}, + {"shape":"InsufficientPermissionsException"} ], "documentation":"

Deletes the remediation configuration.

" }, @@ -1056,6 +1057,22 @@ ], "documentation":"

Creates and updates the retention configuration with details about retention period (number of days) that AWS Config stores your historical information. The API creates the RetentionConfiguration object and names the object as default. When you have a RetentionConfiguration object named default, calling the API modifies the default object.

Currently, AWS Config supports only one retention configuration per region in your account.

" }, + "SelectAggregateResourceConfig":{ + "name":"SelectAggregateResourceConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SelectAggregateResourceConfigRequest"}, + "output":{"shape":"SelectAggregateResourceConfigResponse"}, + "errors":[ + {"shape":"InvalidExpressionException"}, + {"shape":"NoSuchConfigurationAggregatorException"}, + {"shape":"InvalidLimitException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Accepts a structured query language (SQL) SELECT command and an aggregator to query configuration state of AWS resources across multiple accounts and regions, performs the corresponding search, and returns resource configurations matching the properties.

For more information about query components, see the Query Components section in the AWS Config Developer Guide.

" + }, "SelectResourceConfig":{ "name":"SelectResourceConfig", "http":{ @@ -1397,7 +1414,7 @@ "AllSupported":{"type":"boolean"}, "AmazonResourceName":{ "type":"string", - "max":256, + "max":1000, "min":1 }, "Annotation":{ @@ -1720,15 +1737,15 @@ "required":["Source"], "members":{ "ConfigRuleName":{ - "shape":"StringWithCharLimit64", + "shape":"ConfigRuleName", "documentation":"

The name that you assign to the AWS Config rule. The name is required if you are adding a new rule.

" }, "ConfigRuleArn":{ - "shape":"String", + "shape":"StringWithCharLimit256", "documentation":"

The Amazon Resource Name (ARN) of the AWS Config rule.

" }, "ConfigRuleId":{ - "shape":"String", + "shape":"StringWithCharLimit64", "documentation":"

The ID of the AWS Config rule.

" }, "Description":{ @@ -1809,7 +1826,7 @@ "type":"structure", "members":{ "ConfigRuleName":{ - "shape":"StringWithCharLimit64", + "shape":"ConfigRuleName", "documentation":"

The name of the AWS Config rule.

" }, "ConfigRuleArn":{ @@ -1840,6 +1857,7 @@ "shape":"Date", "documentation":"

The time that you first activated the AWS Config rule.

" }, + "LastDeactivatedTime":{"shape":"Date"}, "LastErrorCode":{ "shape":"String", "documentation":"

The error code that AWS Config returned when the rule last failed.

" @@ -2468,7 +2486,7 @@ "required":["ConfigRuleName"], "members":{ "ConfigRuleName":{ - "shape":"StringWithCharLimit64", + "shape":"ConfigRuleName", "documentation":"

The name of the AWS Config rule that you want to delete.

" } }, @@ -3543,7 +3561,7 @@ "type":"structure", "members":{ "ConfigRuleName":{ - "shape":"StringWithCharLimit64", + "shape":"ConfigRuleName", "documentation":"

The name of the AWS Config rule that was used in the evaluation.

" }, "ResourceType":{ @@ -5532,7 +5550,7 @@ }, "ReevaluateConfigRuleNames":{ "type":"list", - "member":{"shape":"StringWithCharLimit64"}, + "member":{"shape":"ConfigRuleName"}, "max":25, "min":1 }, @@ -5976,6 +5994,7 @@ "AWS::EC2::VPCEndpointService", "AWS::EC2::FlowLog", "AWS::EC2::VPCPeeringConnection", + "AWS::Elasticsearch::Domain", "AWS::IAM::Group", "AWS::IAM::Policy", "AWS::IAM::Role", @@ -5983,13 +6002,10 @@ "AWS::ElasticLoadBalancingV2::LoadBalancer", "AWS::ACM::Certificate", "AWS::RDS::DBInstance", - "AWS::RDS::DBParameterGroup", - "AWS::RDS::DBOptionGroup", "AWS::RDS::DBSubnetGroup", "AWS::RDS::DBSecurityGroup", "AWS::RDS::DBSnapshot", "AWS::RDS::DBCluster", - "AWS::RDS::DBClusterParameterGroup", "AWS::RDS::DBClusterSnapshot", "AWS::RDS::EventSubscription", "AWS::S3::Bucket", @@ -6020,30 +6036,32 @@ "AWS::WAFRegional::WebACL", "AWS::CloudFront::Distribution", "AWS::CloudFront::StreamingDistribution", - "AWS::Lambda::Alias", "AWS::Lambda::Function", "AWS::ElasticBeanstalk::Application", "AWS::ElasticBeanstalk::ApplicationVersion", "AWS::ElasticBeanstalk::Environment", - "AWS::MobileHub::Project", + "AWS::WAFv2::WebACL", + "AWS::WAFv2::RuleGroup", + "AWS::WAFv2::IPSet", + "AWS::WAFv2::RegexPatternSet", + "AWS::WAFv2::ManagedRuleSet", "AWS::XRay::EncryptionConfig", "AWS::SSM::AssociationCompliance", "AWS::SSM::PatchCompliance", "AWS::Shield::Protection", "AWS::ShieldRegional::Protection", "AWS::Config::ResourceCompliance", - "AWS::LicenseManager::LicenseConfiguration", - "AWS::ApiGateway::DomainName", - "AWS::ApiGateway::Method", "AWS::ApiGateway::Stage", "AWS::ApiGateway::RestApi", - "AWS::ApiGatewayV2::DomainName", "AWS::ApiGatewayV2::Stage", "AWS::ApiGatewayV2::Api", "AWS::CodePipeline::Pipeline", "AWS::ServiceCatalog::CloudFormationProvisionedProduct", "AWS::ServiceCatalog::CloudFormationProduct", - "AWS::ServiceCatalog::Portfolio" + "AWS::ServiceCatalog::Portfolio", + "AWS::SQS::Queue", + "AWS::KMS::Key", + "AWS::QLDB::Ledger" ] }, "ResourceTypeList":{ @@ -6158,6 +6176,46 @@ }, "documentation":"

Defines which resources trigger an evaluation for an AWS Config rule. The scope can include one or more resource types, a combination of a tag key and value, or a combination of one resource type and one resource ID. Specify a scope to constrain which resources trigger an evaluation for a rule. Otherwise, evaluations for the rule are triggered when any resource in your recording group changes in configuration.

" }, + "SelectAggregateResourceConfigRequest":{ + "type":"structure", + "required":[ + "Expression", + "ConfigurationAggregatorName" + ], + "members":{ + "Expression":{ + "shape":"Expression", + "documentation":"

The SQL query SELECT command.

" + }, + "ConfigurationAggregatorName":{ + "shape":"ConfigurationAggregatorName", + "documentation":"

The name of the configuration aggregator.

" + }, + "Limit":{ + "shape":"Limit", + "documentation":"

The maximum number of query results returned on each page.

" + }, + "MaxResults":{"shape":"Limit"}, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The nextToken string returned in a previous request that you use to request the next page of results in a paginated response.

" + } + } + }, + "SelectAggregateResourceConfigResponse":{ + "type":"structure", + "members":{ + "Results":{ + "shape":"Results", + "documentation":"

Returns the results for the SQL query.

" + }, + "QueryInfo":{"shape":"QueryInfo"}, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The nextToken string returned in a previous request that you use to request the next page of results in a paginated response.

" + } + } + }, "SelectResourceConfigRequest":{ "type":"structure", "required":["Expression"], diff --git a/botocore/data/dms/2016-01-01/service-2.json b/botocore/data/dms/2016-01-01/service-2.json index 1d1d885e..b49f89f6 100644 --- a/botocore/data/dms/2016-01-01/service-2.json +++ b/botocore/data/dms/2016-01-01/service-2.json @@ -805,10 +805,10 @@ "members":{ "Name":{ "shape":"String", - "documentation":"

The name of the availability zone.

" + "documentation":"

The name of the Availability Zone.

" } }, - "documentation":"

" + "documentation":"

The name of the Availability Zone for use during database migration.

" }, "AvailabilityZonesList":{ "type":"list", @@ -821,7 +821,7 @@ "members":{ "CertificateIdentifier":{ "shape":"String", - "documentation":"

A customer-assigned name for the certificate. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.

" + "documentation":"

A customer-assigned name for the certificate. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.

" }, "CertificateCreationDate":{ "shape":"TStamp", @@ -879,11 +879,11 @@ "members":{ "ReplicationInstanceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the replication instance.

" + "documentation":"

The ARN of the replication instance.

" }, "EndpointArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) string that uniquely identifies the endpoint.

" + "documentation":"

The ARN string that uniquely identifies the endpoint.

" }, "Status":{ "shape":"String", @@ -895,14 +895,14 @@ }, "EndpointIdentifier":{ "shape":"String", - "documentation":"

The identifier of the endpoint. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.

" + "documentation":"

The identifier of the endpoint. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.

" }, "ReplicationInstanceIdentifier":{ "shape":"String", "documentation":"

The replication instance identifier. This parameter is stored as a lowercase string.

" } }, - "documentation":"

" + "documentation":"

Status of the connection between an endpoint and a replication instance, including Amazon Resource Names (ARNs) and the last error message issued.

" }, "ConnectionList":{ "type":"list", @@ -918,7 +918,7 @@ "members":{ "EndpointIdentifier":{ "shape":"String", - "documentation":"

The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.

" + "documentation":"

The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.

" }, "EndpointType":{ "shape":"ReplicationEndpointTypeValue", @@ -926,7 +926,7 @@ }, "EngineName":{ "shape":"String", - "documentation":"

The type of engine for the endpoint. Valid values, depending on the EndpointType value, include mysql, oracle, postgres, mariadb, aurora, aurora-postgresql, redshift, s3, db2, azuredb, sybase, dynamodb, mongodb, and sqlserver.

" + "documentation":"

The type of engine for the endpoint. Valid values, depending on the EndpointType value, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", and \"sqlserver\".

" }, "Username":{ "shape":"String", @@ -978,7 +978,7 @@ }, "DynamoDbSettings":{ "shape":"DynamoDbSettings", - "documentation":"

Settings in JSON format for the target Amazon DynamoDB endpoint. For more information about the available settings, see Using Object Mapping to Migrate Data to DynamoDB in the AWS Database Migration Service User Guide.

" + "documentation":"

Settings in JSON format for the target Amazon DynamoDB endpoint. For information about other available settings, see Using Object Mapping to Migrate Data to DynamoDB in the AWS Database Migration Service User Guide.

" }, "S3Settings":{ "shape":"S3Settings", @@ -990,11 +990,15 @@ }, "MongoDbSettings":{ "shape":"MongoDbSettings", - "documentation":"

Settings in JSON format for the source MongoDB endpoint. For more information about the available settings, see the configuration properties section in Using MongoDB as a Target for AWS Database Migration Service in the AWS Database Migration Service User Guide.

" + "documentation":"

Settings in JSON format for the source MongoDB endpoint. For more information about the available settings, see the configuration properties section in Using MongoDB as a Target for AWS Database Migration Service in the AWS Database Migration Service User Guide.

" }, "KinesisSettings":{ "shape":"KinesisSettings", - "documentation":"

Settings in JSON format for the target Amazon Kinesis Data Streams endpoint. For more information about the available settings, see Using Object Mapping to Migrate Data to a Kinesis Data Stream in the AWS Database Migration User Guide.

" + "documentation":"

Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams. For information about other available settings, see Using Object Mapping to Migrate Data to a Kinesis Data Stream in the AWS Database Migration User Guide.

" + }, + "KafkaSettings":{ + "shape":"KafkaSettings", + "documentation":"

Settings in JSON format for the target Apache Kafka endpoint. For information about other available settings, see Using Object Mapping to Migrate Data to Apache Kafka in the AWS Database Migration User Guide.

" }, "ElasticsearchSettings":{ "shape":"ElasticsearchSettings", @@ -1031,7 +1035,7 @@ }, "SourceType":{ "shape":"String", - "documentation":"

The type of AWS DMS resource that generates the events. For example, if you want to be notified of events generated by a replication instance, you set this parameter to replication-instance. If this value is not specified, all events are returned.

Valid values: replication-instance | replication-task

" + "documentation":"

The type of AWS DMS resource that generates the events. For example, if you want to be notified of events generated by a replication instance, you set this parameter to replication-instance. If this value isn't specified, all events are returned.

Valid values: replication-instance | replication-task

" }, "EventCategories":{ "shape":"EventCategoriesList", @@ -1071,7 +1075,7 @@ "members":{ "ReplicationInstanceIdentifier":{ "shape":"String", - "documentation":"

The replication instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: myrepinstance

" + "documentation":"

The replication instance identifier. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 alphanumeric characters or hyphens.

  • First character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens.

Example: myrepinstance

" }, "AllocatedStorage":{ "shape":"IntegerOptional", @@ -1087,7 +1091,7 @@ }, "AvailabilityZone":{ "shape":"String", - "documentation":"

The AWS Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's AWS Region, for example: us-east-1d

" + "documentation":"

The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's AWS Region, for example: us-east-1d

" }, "ReplicationSubnetGroupIdentifier":{ "shape":"String", @@ -1099,7 +1103,7 @@ }, "MultiAZ":{ "shape":"BooleanOptional", - "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" + "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" }, "EngineVersion":{ "shape":"String", @@ -1107,7 +1111,7 @@ }, "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", - "documentation":"

Indicates whether minor engine upgrades will be applied automatically to the replication instance during the maintenance window. This parameter defaults to true.

Default: true

" + "documentation":"

A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to true.

Default: true

" }, "Tags":{ "shape":"TagList", @@ -1431,7 +1435,7 @@ }, "Marker":{ "shape":"String", - "documentation":"

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the vlue specified by MaxRecords.

" + "documentation":"

An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" } } }, @@ -1849,7 +1853,7 @@ "members":{ "ReplicationTaskArn":{ "shape":"String", - "documentation":"

- The Amazon Resource Name (ARN) string that uniquely identifies the task. When this input parameter is specified the API will return only one result and ignore the values of the max-records and marker parameters.

" + "documentation":"

The Amazon Resource Name (ARN) string that uniquely identifies the task. When this input parameter is specified, the API returns only one result and ignore the values of the MaxRecords and Marker parameters.

" }, "MaxRecords":{ "shape":"IntegerOptional", @@ -2022,7 +2026,7 @@ "documentation":"

The Amazon Resource Name (ARN) used by the service access IAM role.

" } }, - "documentation":"

" + "documentation":"

Provides the Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role used to define an Amazon DynamoDB target endpoint.

" }, "ElasticsearchSettings":{ "type":"structure", @@ -2045,10 +2049,10 @@ }, "ErrorRetryDuration":{ "shape":"IntegerOptional", - "documentation":"

The maximum number of seconds that DMS retries failed API requests to the Elasticsearch cluster.

" + "documentation":"

The maximum number of seconds for which DMS retries failed API requests to the Elasticsearch cluster.

" } }, - "documentation":"

" + "documentation":"

Provides information that defines an Elasticsearch endpoint.

" }, "EncodingTypeValue":{ "type":"string", @@ -2070,7 +2074,7 @@ "members":{ "EndpointIdentifier":{ "shape":"String", - "documentation":"

The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.

" + "documentation":"

The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.

" }, "EndpointType":{ "shape":"ReplicationEndpointTypeValue", @@ -2078,7 +2082,7 @@ }, "EngineName":{ "shape":"String", - "documentation":"

The database engine name. Valid values, depending on the EndpointType, include mysql, oracle, postgres, mariadb, aurora, aurora-postgresql, redshift, s3, db2, azuredb, sybase, dynamodb, mongodb, and sqlserver.

" + "documentation":"

The database engine name. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", and \"sqlserver\".

" }, "EngineDisplayName":{ "shape":"String", @@ -2154,7 +2158,11 @@ }, "KinesisSettings":{ "shape":"KinesisSettings", - "documentation":"

The settings for the Amazon Kinesis source endpoint. For more information, see the KinesisSettings structure.

" + "documentation":"

The settings for the Amazon Kinesis target endpoint. For more information, see the KinesisSettings structure.

" + }, + "KafkaSettings":{ + "shape":"KafkaSettings", + "documentation":"

The settings for the Apache Kafka target endpoint. For more information, see the KafkaSettings structure.

" }, "ElasticsearchSettings":{ "shape":"ElasticsearchSettings", @@ -2165,7 +2173,7 @@ "documentation":"

Settings for the Amazon Redshift endpoint.

" } }, - "documentation":"

" + "documentation":"

Describes an endpoint of a database instance in response to operations such as the following:

  • CreateEndpoint

  • DescribeEndpoint

  • DescribeEndpointTypes

  • ModifyEndpoint

" }, "EndpointList":{ "type":"list", @@ -2195,7 +2203,7 @@ "documentation":"

The date of the event.

" } }, - "documentation":"

" + "documentation":"

Describes an identifiable significant activity that affects a replication instance or task. This object can provide the message, the available event categories, the date and source of the event, and the AWS DMS resource type.

" }, "EventCategoriesList":{ "type":"list", @@ -2213,7 +2221,7 @@ "documentation":"

A list of event categories from a source type that you've chosen.

" } }, - "documentation":"

" + "documentation":"

Lists categories of events subscribed to, and generated by, the applicable AWS DMS resource type.

" }, "EventCategoryGroupList":{ "type":"list", @@ -2263,7 +2271,7 @@ "documentation":"

Boolean value that indicates if the event subscription is enabled.

" } }, - "documentation":"

" + "documentation":"

Describes an event notification subscription created by the CreateEventSubscription operation.

" }, "EventSubscriptionsList":{ "type":"list", @@ -2286,7 +2294,7 @@ "documentation":"

The filter value.

" } }, - "documentation":"

" + "documentation":"

Identifies the name and value of a source filter object used to limit the number and type of records transferred from your source to your target.

" }, "FilterList":{ "type":"list", @@ -2302,7 +2310,7 @@ "members":{ "CertificateIdentifier":{ "shape":"String", - "documentation":"

A customer-assigned name for the certificate. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.

" + "documentation":"

A customer-assigned name for the certificate. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.

" }, "CertificatePem":{ "shape":"String", @@ -2421,6 +2429,20 @@ "documentation":"

This request triggered AWS KMS request throttling.

", "exception":true }, + "KafkaSettings":{ + "type":"structure", + "members":{ + "Broker":{ + "shape":"String", + "documentation":"

The broker location and port of the Kafka broker that hosts your Kafka instance. Specify the broker in the form broker-hostname-or-ip:port . For example, \"ec2-12-345-678-901.compute-1.amazonaws.com:2345\".

" + }, + "Topic":{ + "shape":"String", + "documentation":"

The topic to which you migrate the data. If you don't specify a topic, AWS DMS specifies \"kafka-default-topic\" as the migration topic.

" + } + }, + "documentation":"

Provides information that describes an Apache Kafka endpoint. This information includes the output format of records applied to the endpoint and details of transaction and control table data information.

" + }, "KeyList":{ "type":"list", "member":{"shape":"String"} @@ -2434,14 +2456,34 @@ }, "MessageFormat":{ "shape":"MessageFormatValue", - "documentation":"

The output format for the records created on the endpoint. The message format is JSON.

" + "documentation":"

The output format for the records created on the endpoint. The message format is JSON (default) or JSON_UNFORMATTED (a single line with no tab).

" }, "ServiceAccessRoleArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) for the IAM role that DMS uses to write to the Amazon Kinesis data stream.

" + "documentation":"

The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that AWS DMS uses to write to the Kinesis data stream.

" + }, + "IncludeTransactionDetails":{ + "shape":"BooleanOptional", + "documentation":"

Provides detailed transaction information from the source database. This information includes a commit timestamp, a log position, and values for transaction_id, previous transaction_id, and transaction_record_id (the record offset within a transaction). The default is False.

" + }, + "IncludePartitionValue":{ + "shape":"BooleanOptional", + "documentation":"

Shows the partition value within the Kinesis message output, unless the partition type is schema-table-type. The default is False.

" + }, + "PartitionIncludeSchemaTable":{ + "shape":"BooleanOptional", + "documentation":"

Prefixes schema and table names to partition values, when the partition type is primary-key-type. Doing this increases data distribution among Kinesis shards. For example, suppose that a SysBench schema has thousands of tables and each table has only limited range for a primary key. In this case, the same primary key is sent from thousands of tables to the same shard, which causes throttling. The default is False.

" + }, + "IncludeTableAlterOperations":{ + "shape":"BooleanOptional", + "documentation":"

Includes any data definition language (DDL) operations that change the table in the control data, such as rename-table, drop-table, add-column, drop-column, and rename-column. The default is False.

" + }, + "IncludeControlDetails":{ + "shape":"BooleanOptional", + "documentation":"

Shows detailed control information for table definition, column definition, and table and column changes in the Kinesis message output. The default is False.

" } }, - "documentation":"

" + "documentation":"

Provides information that describes an Amazon Kinesis Data Stream endpoint. This information includes the output format of records applied to the endpoint and details of transaction and control table data information.

" }, "ListTagsForResourceMessage":{ "type":"structure", @@ -2467,7 +2509,10 @@ "Long":{"type":"long"}, "MessageFormatValue":{ "type":"string", - "enum":["json"] + "enum":[ + "json", + "json-unformatted" + ] }, "MigrationTypeValue":{ "type":"string", @@ -2487,7 +2532,7 @@ }, "EndpointIdentifier":{ "shape":"String", - "documentation":"

The database endpoint identifier. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.

" + "documentation":"

The database endpoint identifier. Identifiers must begin with a letter and must contain only ASCII letters, digits, and hyphens. They can't end with a hyphen or contain two consecutive hyphens.

" }, "EndpointType":{ "shape":"ReplicationEndpointTypeValue", @@ -2495,7 +2540,7 @@ }, "EngineName":{ "shape":"String", - "documentation":"

The type of engine for the endpoint. Valid values, depending on the EndpointType, include mysql, oracle, postgres, mariadb, aurora, aurora-postgresql, redshift, s3, db2, azuredb, sybase, dynamodb, mongodb, and sqlserver.

" + "documentation":"

The type of engine for the endpoint. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", and \"sqlserver\".

" }, "Username":{ "shape":"String", @@ -2539,7 +2584,7 @@ }, "DynamoDbSettings":{ "shape":"DynamoDbSettings", - "documentation":"

Settings in JSON format for the target Amazon DynamoDB endpoint. For more information about the available settings, see Using Object Mapping to Migrate Data to DynamoDB in the AWS Database Migration Service User Guide.

" + "documentation":"

Settings in JSON format for the target Amazon DynamoDB endpoint. For information about other available settings, see Using Object Mapping to Migrate Data to DynamoDB in the AWS Database Migration Service User Guide.

" }, "S3Settings":{ "shape":"S3Settings", @@ -2547,7 +2592,7 @@ }, "DmsTransferSettings":{ "shape":"DmsTransferSettings", - "documentation":"

The settings in JSON format for the DMS transfer type of source endpoint.

Attributes include the following:

  • serviceAccessRoleArn - The IAM role that has permission to access the Amazon S3 bucket.

  • BucketName - The name of the S3 bucket to use.

  • compressionType - An optional parameter to use GZIP to compress the target files. Set to NONE (the default) or do not use to leave the files uncompressed.

Shorthand syntax: ServiceAccessRoleArn=string ,BucketName=string,CompressionType=string

JSON syntax:

{ \"ServiceAccessRoleArn\": \"string\", \"BucketName\": \"string\", \"CompressionType\": \"none\"|\"gzip\" }

" + "documentation":"

The settings in JSON format for the DMS transfer type of source endpoint.

Attributes include the following:

  • serviceAccessRoleArn - The AWS Identity and Access Management (IAM) role that has permission to access the Amazon S3 bucket.

  • BucketName - The name of the S3 bucket to use.

  • compressionType - An optional parameter to use GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed.

Shorthand syntax for these settings is as follows: ServiceAccessRoleArn=string ,BucketName=string,CompressionType=string

JSON syntax for these settings is as follows: { \"ServiceAccessRoleArn\": \"string\", \"BucketName\": \"string\", \"CompressionType\": \"none\"|\"gzip\" }

" }, "MongoDbSettings":{ "shape":"MongoDbSettings", @@ -2555,7 +2600,11 @@ }, "KinesisSettings":{ "shape":"KinesisSettings", - "documentation":"

Settings in JSON format for the target Amazon Kinesis Data Streams endpoint. For more information about the available settings, see Using Object Mapping to Migrate Data to a Kinesis Data Stream in the AWS Database Migration User Guide.

" + "documentation":"

Settings in JSON format for the target endpoint for Amazon Kinesis Data Streams. For information about other available settings, see Using Object Mapping to Migrate Data to a Kinesis Data Stream in the AWS Database Migration User Guide.

" + }, + "KafkaSettings":{ + "shape":"KafkaSettings", + "documentation":"

Settings in JSON format for the target Apache Kafka endpoint. For information about other available settings, see Using Object Mapping to Migrate Data to Apache Kafka in the AWS Database Migration User Guide.

" }, "ElasticsearchSettings":{ "shape":"ElasticsearchSettings", @@ -2642,7 +2691,7 @@ }, "MultiAZ":{ "shape":"BooleanOptional", - "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" + "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" }, "EngineVersion":{ "shape":"String", @@ -2654,7 +2703,7 @@ }, "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", - "documentation":"

Indicates that minor version upgrades will be applied automatically to the replication instance during the maintenance window. Changing this parameter does not result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to true during the maintenance window, and a newer minor version is available, and AWS DMS has enabled auto patching for that engine version.

" + "documentation":"

A value that indicates that minor version upgrades are applied automatically to the replication instance during the maintenance window. Changing this parameter doesn't result in an outage, except in the case dsecribed following. The change is asynchronously applied as soon as possible.

An outage does result if these factors apply:

  • This parameter is set to true during the maintenance window.

  • A newer minor version is available.

  • AWS DMS has enabled automatic patching for the given engine version.

" }, "ReplicationInstanceIdentifier":{ "shape":"String", @@ -2783,7 +2832,7 @@ }, "AuthMechanism":{ "shape":"AuthMechanismValue", - "documentation":"

The authentication mechanism you use to access the MongoDB source endpoint.

Valid values: DEFAULT, MONGODB_CR, SCRAM_SHA_1

DEFAULT – For MongoDB version 2.x, use MONGODB_CR. For MongoDB version 3.x, use SCRAM_SHA_1. This setting is not used when authType=No.

" + "documentation":"

The authentication mechanism you use to access the MongoDB source endpoint.

Valid values: DEFAULT, MONGODB_CR, SCRAM_SHA_1

DEFAULT – For MongoDB version 2.x, use MONGODB_CR. For MongoDB version 3.x, use SCRAM_SHA_1. This setting isn't used when authType=No.

" }, "NestingLevel":{ "shape":"NestingLevelValue", @@ -2799,14 +2848,14 @@ }, "AuthSource":{ "shape":"String", - "documentation":"

The MongoDB database name. This setting is not used when authType=NO.

The default is admin.

" + "documentation":"

The MongoDB database name. This setting isn't used when authType=NO.

The default is admin.

" }, "KmsKeyId":{ "shape":"String", "documentation":"

The AWS KMS key identifier that is used to encrypt the content on the replication instance. If you don't specify a value for the KmsKeyId parameter, then AWS DMS uses your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS Region.

" } }, - "documentation":"

" + "documentation":"

Provides information that defines a MongoDB endpoint.

" }, "NestingLevelValue":{ "type":"string", @@ -2855,7 +2904,7 @@ "documentation":"

The value returned when the specified EngineVersion of the replication instance is in Beta or test mode. This indicates some features might not work as expected.

AWS DMS supports the ReleaseStatus parameter in versions 3.1.4 and later.

" } }, - "documentation":"

" + "documentation":"

In response to the DescribeOrderableReplicationInstances operation, this object describes an available replication instance. This description includes the replication instance's type, engine version, and allocated storage.

" }, "OrderableReplicationInstanceList":{ "type":"list", @@ -2877,26 +2926,26 @@ }, "AutoAppliedAfterDate":{ "shape":"TStamp", - "documentation":"

The date of the maintenance window when the action will be applied. The maintenance action will be applied to the resource during its first maintenance window after this date. If this date is specified, any next-maintenance opt-in requests are ignored.

" + "documentation":"

The date of the maintenance window when the action is to be applied. The maintenance action is applied to the resource during its first maintenance window after this date. If this date is specified, any next-maintenance opt-in requests are ignored.

" }, "ForcedApplyDate":{ "shape":"TStamp", - "documentation":"

The date when the maintenance action will be automatically applied. The maintenance action will be applied to the resource on this date regardless of the maintenance window for the resource. If this date is specified, any immediate opt-in requests are ignored.

" + "documentation":"

The date when the maintenance action will be automatically applied. The maintenance action is applied to the resource on this date regardless of the maintenance window for the resource. If this date is specified, any immediate opt-in requests are ignored.

" }, "OptInStatus":{ "shape":"String", - "documentation":"

Indicates the type of opt-in request that has been received for the resource.

" + "documentation":"

The type of opt-in request that has been received for the resource.

" }, "CurrentApplyDate":{ "shape":"TStamp", - "documentation":"

The effective date when the pending maintenance action will be applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API, the AutoAppliedAfterDate, and the ForcedApplyDate. This value is blank if an opt-in request has not been received and nothing has been specified as AutoAppliedAfterDate or ForcedApplyDate.

" + "documentation":"

The effective date when the pending maintenance action will be applied to the resource. This date takes into account opt-in requests received from the ApplyPendingMaintenanceAction API operation, and also the AutoAppliedAfterDate and ForcedApplyDate parameter values. This value is blank if an opt-in request has not been received and nothing has been specified for AutoAppliedAfterDate or ForcedApplyDate.

" }, "Description":{ "shape":"String", "documentation":"

A description providing more detail about the maintenance action.

" } }, - "documentation":"

" + "documentation":"

Describes a maintenance action pending for an AWS DMS resource, including when and how it will be applied. This data type is a response element to the DescribePendingMaintenanceActions operation.

" }, "PendingMaintenanceActionDetails":{ "type":"list", @@ -3033,7 +3082,7 @@ "documentation":"

The size of the write buffer to use in rows. Valid values range from 1 through 2,048. The default is 1,024. Use this setting to tune performance.

" } }, - "documentation":"

" + "documentation":"

Provides information that defines an Amazon Redshift endpoint.

" }, "RefreshSchemasMessage":{ "type":"structure", @@ -3087,7 +3136,7 @@ "documentation":"

The last failure message for the schema.

" } }, - "documentation":"

" + "documentation":"

Provides information that describes status of a schema at an endpoint specified by the DescribeRefreshSchemaStatus operation.

" }, "RefreshSchemasStatusTypeValue":{ "type":"string", @@ -3214,7 +3263,7 @@ }, "MultiAZ":{ "shape":"Boolean", - "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" + "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" }, "EngineVersion":{ "shape":"String", @@ -3256,7 +3305,7 @@ }, "SecondaryAvailabilityZone":{ "shape":"String", - "documentation":"

The availability zone of the standby replication instance in a Multi-AZ deployment.

" + "documentation":"

The Availability Zone of the standby replication instance in a Multi-AZ deployment.

" }, "FreeUntil":{ "shape":"TStamp", @@ -3267,7 +3316,7 @@ "documentation":"

The DNS name servers for the replication instance.

" } }, - "documentation":"

" + "documentation":"

Provides information that defines a replication instance.

" }, "ReplicationInstanceList":{ "type":"list", @@ -3316,14 +3365,14 @@ }, "MultiAZ":{ "shape":"BooleanOptional", - "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You cannot set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" + "documentation":"

Specifies whether the replication instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the Multi-AZ parameter is set to true.

" }, "EngineVersion":{ "shape":"String", "documentation":"

The engine version number of the replication instance.

" } }, - "documentation":"

" + "documentation":"

Provides information about the values of pending modifications to a replication instance. This data type is an object of the ReplicationInstance user-defined data type.

" }, "ReplicationSubnetGroup":{ "type":"structure", @@ -3349,7 +3398,7 @@ "documentation":"

The subnets that are in the subnet group.

" } }, - "documentation":"

" + "documentation":"

Describes a subnet group in response to a request by the DescribeReplicationSubnetGroup operation.

" }, "ReplicationSubnetGroupDoesNotCoverEnoughAZs":{ "type":"structure", @@ -3438,7 +3487,7 @@ "documentation":"

The statistics for the task, including elapsed time, tables loaded, and table errors.

" } }, - "documentation":"

" + "documentation":"

Provides information that describes a replication task created by the CreateReplicationTask operation.

" }, "ReplicationTaskAssessmentResult":{ "type":"structure", @@ -3523,14 +3572,14 @@ }, "FullLoadStartDate":{ "shape":"TStamp", - "documentation":"

The date the the replication task full load was started.

" + "documentation":"

The date the replication task full load was started.

" }, "FullLoadFinishDate":{ "shape":"TStamp", "documentation":"

The date the replication task full load was completed.

" } }, - "documentation":"

" + "documentation":"

In response to a request by the DescribeReplicationTasks operation, this object provides a collection of statistics about a replication task.

" }, "ResourceAlreadyExistsFault":{ "type":"structure", @@ -3568,7 +3617,7 @@ "documentation":"

Detailed information about the pending maintenance action.

" } }, - "documentation":"

" + "documentation":"

Identifies an AWS DMS resource and any pending actions for it.

" }, "ResourceQuotaExceededFault":{ "type":"structure", @@ -3602,7 +3651,7 @@ }, "BucketFolder":{ "shape":"String", - "documentation":"

An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path bucketFolder/schema_name/table_name/. If this parameter is not specified, then the path used is schema_name/table_name/.

" + "documentation":"

An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path bucketFolder/schema_name/table_name/. If this parameter isn't specified, then the path used is schema_name/table_name/.

" }, "BucketName":{ "shape":"String", @@ -3610,7 +3659,7 @@ }, "CompressionType":{ "shape":"CompressionTypeValue", - "documentation":"

An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Set to NONE (the default) or do not use to leave the files uncompressed. Applies to both .csv and .parquet file formats.

" + "documentation":"

An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats.

" }, "EncryptionMode":{ "shape":"EncryptionModeValue", @@ -3650,11 +3699,11 @@ }, "IncludeOpForFullLoad":{ "shape":"BooleanOptional", - "documentation":"

A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database.

AWS DMS supports the IncludeOpForFullLoad parameter in versions 3.1.4 and later.

For full load, records can only be inserted. By default (the false setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad is set to true or y, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load.

This setting works together with the CdcInsertsOnly parameter for output to .csv files only. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide..

" + "documentation":"

A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database.

AWS DMS supports the IncludeOpForFullLoad parameter in versions 3.1.4 and later.

For full load, records can only be inserted. By default (the false setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad is set to true or y, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load.

This setting works together with the CdcInsertsOnly and the CdcInsertsAndUpdates parameters for output to .csv files only. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide..

" }, "CdcInsertsOnly":{ "shape":"BooleanOptional", - "documentation":"

A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target.

If CdcInsertsOnly is set to true or y, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad. If IncludeOpForFullLoad is set to true, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad is set to false, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide..

AWS DMS supports this interaction between the CdcInsertsOnly and IncludeOpForFullLoad parameters in versions 3.1.4 and later.

" + "documentation":"

A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target.

If CdcInsertsOnly is set to true or y, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad. If IncludeOpForFullLoad is set to true, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad is set to false, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide..

AWS DMS supports the interaction described preceding between the CdcInsertsOnly and IncludeOpForFullLoad parameters in versions 3.1.4 and later.

CdcInsertsOnly and CdcInsertsAndUpdates can't both be set to true for the same endpoint. Set either CdcInsertsOnly or CdcInsertsAndUpdates to true for the same endpoint, but not both.

" }, "TimestampColumnName":{ "shape":"String", @@ -3663,6 +3712,10 @@ "ParquetTimestampInMillisecond":{ "shape":"BooleanOptional", "documentation":"

A value that specifies the precision of any TIMESTAMP column values that are written to an Amazon S3 object file in .parquet format.

AWS DMS supports the ParquetTimestampInMillisecond parameter in versions 3.1.4 and later.

When ParquetTimestampInMillisecond is set to true or y, AWS DMS writes all TIMESTAMP columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision.

Currently, Amazon Athena and AWS Glue can handle only millisecond precision for TIMESTAMP values. Set this parameter to true for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or AWS Glue.

AWS DMS writes any TIMESTAMP column values written to an S3 file in .csv format with microsecond precision.

Setting ParquetTimestampInMillisecond has no effect on the string format of the timestamp column value that is inserted by setting the TimestampColumnName parameter.

" + }, + "CdcInsertsAndUpdates":{ + "shape":"BooleanOptional", + "documentation":"

A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false, but when CdcInsertsAndUpdates is set to trueor y, INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.

For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad parameter. If IncludeOpForFullLoad is set to true, the first field of every CDC record is set to either I or U to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad is set to false, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the AWS Database Migration Service User Guide..

AWS DMS supports the use of the CdcInsertsAndUpdates parameter in versions 3.3.1 and later.

CdcInsertsOnly and CdcInsertsAndUpdates can't both be set to true for the same endpoint. Set either CdcInsertsOnly or CdcInsertsAndUpdates to true for the same endpoint, but not both.

" } }, "documentation":"

Settings for exporting data to Amazon S3.

" @@ -3823,7 +3876,7 @@ "documentation":"

The status of the subnet.

" } }, - "documentation":"

" + "documentation":"

In response to a request by the DescribeReplicationSubnetGroup operation, this object identifies a subnet by its given Availability Zone, subnet identifier, and status.

" }, "SubnetAlreadyInUse":{ "type":"structure", @@ -3849,7 +3902,7 @@ "members":{ "EngineName":{ "shape":"String", - "documentation":"

The database engine name. Valid values, depending on the EndpointType, include mysql, oracle, postgres, mariadb, aurora, aurora-postgresql, redshift, s3, db2, azuredb, sybase, dynamodb, mongodb, and sqlserver.

" + "documentation":"

The database engine name. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", and \"sqlserver\".

" }, "SupportsCDC":{ "shape":"Boolean", @@ -3864,7 +3917,7 @@ "documentation":"

The expanded name for the engine name. For example, if the EngineName parameter is \"aurora,\" this value would be \"Amazon Aurora MySQL.\"

" } }, - "documentation":"

" + "documentation":"

Provides information about types of supported endpoints in response to a request by the DescribeEndpointTypes operation. This information includes the type of endpoint, the database engine name, and whether change data capture (CDC) is supported.

" }, "SupportedEndpointTypeList":{ "type":"list", @@ -3900,23 +3953,35 @@ }, "Ddls":{ "shape":"Long", - "documentation":"

The Data Definition Language (DDL) used to build and modify the structure of your tables.

" + "documentation":"

The data definition language (DDL) used to build and modify the structure of your tables.

" }, "FullLoadRows":{ "shape":"Long", - "documentation":"

The number of rows added during the Full Load operation.

" + "documentation":"

The number of rows added during the full load operation.

" }, "FullLoadCondtnlChkFailedRows":{ "shape":"Long", - "documentation":"

The number of rows that failed conditional checks during the Full Load operation (valid only for DynamoDB as a target migrations).

" + "documentation":"

The number of rows that failed conditional checks during the full load operation (valid only for migrations where DynamoDB is the target).

" }, "FullLoadErrorRows":{ "shape":"Long", - "documentation":"

The number of rows that failed to load during the Full Load operation (valid only for DynamoDB as a target migrations).

" + "documentation":"

The number of rows that failed to load during the full load operation (valid only for migrations where DynamoDB is the target).

" + }, + "FullLoadStartTime":{ + "shape":"TStamp", + "documentation":"

The time when the full load operation started.

" + }, + "FullLoadEndTime":{ + "shape":"TStamp", + "documentation":"

The time when the full load operation completed.

" + }, + "FullLoadReloaded":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates if the table was reloaded (true) or loaded as part of a new full load operation (false).

" }, "LastUpdateTime":{ "shape":"TStamp", - "documentation":"

The last time the table was updated.

" + "documentation":"

The last time a table was updated.

" }, "TableState":{ "shape":"String", @@ -3932,18 +3997,18 @@ }, "ValidationSuspendedRecords":{ "shape":"Long", - "documentation":"

The number of records that could not be validated.

" + "documentation":"

The number of records that couldn't be validated.

" }, "ValidationState":{ "shape":"String", - "documentation":"

The validation state of the table.

The parameter can have the following values

  • Not enabled—Validation is not enabled for the table in the migration task.

  • Pending records—Some records in the table are waiting for validation.

  • Mismatched records—Some records in the table do not match between the source and target.

  • Suspended records—Some records in the table could not be validated.

  • No primary key—The table could not be validated because it had no primary key.

  • Table error—The table was not validated because it was in an error state and some data was not migrated.

  • Validated—All rows in the table were validated. If the table is updated, the status can change from Validated.

  • Error—The table could not be validated because of an unexpected error.

" + "documentation":"

The validation state of the table.

This parameter can have the following values:

  • Not enabled - Validation isn't enabled for the table in the migration task.

  • Pending records - Some records in the table are waiting for validation.

  • Mismatched records - Some records in the table don't match between the source and target.

  • Suspended records - Some records in the table couldn't be validated.

  • No primary key - The table couldn't be validated because it has no primary key.

  • Table error - The table wasn't validated because it's in an error state and some data wasn't migrated.

  • Validated - All rows in the table are validated. If the table is updated, the status can change from Validated.

  • Error - The table couldn't be validated because of an unexpected error.

" }, "ValidationStateDetails":{ "shape":"String", "documentation":"

Additional details about the state of validation.

" } }, - "documentation":"

" + "documentation":"

Provides a collection of table statistics in response to a request by the DescribeTableStatistics operation.

" }, "TableStatisticsList":{ "type":"list", @@ -3961,21 +4026,21 @@ "documentation":"

The table name of the table to be reloaded.

" } }, - "documentation":"

" + "documentation":"

Provides the name of the schema and table to be reloaded.

" }, "Tag":{ "type":"structure", "members":{ "Key":{ "shape":"String", - "documentation":"

A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and cannot be prefixed with \"aws:\" or \"dms:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

" + "documentation":"

A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with \"aws:\" or \"dms:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

" }, "Value":{ "shape":"String", - "documentation":"

A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and cannot be prefixed with \"aws:\" or \"dms:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

" + "documentation":"

A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with \"aws:\" or \"dms:\". The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-]*)$\").

" } }, - "documentation":"

" + "documentation":"

A user-defined key-value pair that describes metadata added to an AWS DMS resource and that is used by operations such as the following:

  • AddTagsToResource

  • ListTagsForResource

  • RemoveTagsFromResource

" }, "TagList":{ "type":"list", @@ -4036,7 +4101,7 @@ "documentation":"

The status of the VPC security group.

" } }, - "documentation":"

" + "documentation":"

Describes status of a security group associated with the virtual private cloud hosting your replication and DB instances.

" }, "VpcSecurityGroupMembershipList":{ "type":"list", diff --git a/botocore/data/docdb/2014-10-31/service-2.json b/botocore/data/docdb/2014-10-31/service-2.json index 995b2c3e..aa6e0d30 100644 --- a/botocore/data/docdb/2014-10-31/service-2.json +++ b/botocore/data/docdb/2014-10-31/service-2.json @@ -299,7 +299,7 @@ "errors":[ {"shape":"CertificateNotFoundFault"} ], - "documentation":"

Returns a list of certificate authority (CA) certificates provided by Amazon DocumentDB for this AWS account. For certain management features such as cluster and instance lifecycle management, Amazon DocumentDB leverages operational technology that is shared with Amazon RDS and Amazon Neptune. Use the filterName=engine,Values=docdb filter parameter to return only Amazon DocumentDB clusters.

" + "documentation":"

Returns a list of certificate authority (CA) certificates provided by Amazon DocumentDB for this AWS account.

" }, "DescribeDBClusterParameterGroups":{ "name":"DescribeDBClusterParameterGroups", @@ -379,7 +379,7 @@ "errors":[ {"shape":"DBClusterNotFoundFault"} ], - "documentation":"

Returns information about provisioned Amazon DocumentDB clusters. This API operation supports pagination.

" + "documentation":"

Returns information about provisioned Amazon DocumentDB clusters. This API operation supports pagination. For certain management features such as cluster and instance lifecycle management, Amazon DocumentDB leverages operational technology that is shared with Amazon RDS and Amazon Neptune. Use the filterName=engine,Values=docdb filter parameter to return only Amazon DocumentDB clusters.

" }, "DescribeDBEngineVersions":{ "name":"DescribeDBEngineVersions", @@ -1130,7 +1130,7 @@ "members":{ "DBClusterParameterGroupName":{ "shape":"String", - "documentation":"

The name of the cluster parameter group.

Constraints:

  • Must match the name of an existing DBClusterParameterGroup.

This value is stored as a lowercase string.

" + "documentation":"

The name of the cluster parameter group.

Constraints:

  • Must not match the name of an existing DBClusterParameterGroup.

This value is stored as a lowercase string.

" }, "DBParameterGroupFamily":{ "shape":"String", diff --git a/botocore/data/ds/2015-04-16/service-2.json b/botocore/data/ds/2015-04-16/service-2.json index e63eb765..6c4d33a0 100644 --- a/botocore/data/ds/2015-04-16/service-2.json +++ b/botocore/data/ds/2015-04-16/service-2.json @@ -1236,6 +1236,10 @@ "State":{ "shape":"CertificateState", "documentation":"

The state of the certificate.

" + }, + "ExpiryDateTime":{ + "shape":"CertificateExpiryDateTime", + "documentation":"

The date and time when the certificate will expire.

" } }, "documentation":"

Contains general information about a certificate.

" @@ -2007,7 +2011,7 @@ }, "Type":{ "shape":"LDAPSType", - "documentation":"

The type of LDAP security the customer wants to enable, either server or client. Currently supports only Client, (the default).

" + "documentation":"

The type of LDAP security to enable. Currently only the value Client is supported.

" }, "NextToken":{ "shape":"NextToken", @@ -2510,7 +2514,7 @@ }, "Type":{ "shape":"LDAPSType", - "documentation":"

The type of LDAP security that the customer wants to enable. The security can be either server or client, but currently only the default Client is supported.

" + "documentation":"

The type of LDAP security to enable. Currently only the value Client is supported.

" } } }, @@ -2658,7 +2662,7 @@ }, "Type":{ "shape":"LDAPSType", - "documentation":"

The type of LDAP security the customer wants to enable. The security can be either server or client, but currently only the default Client is supported.

" + "documentation":"

The type of LDAP security to enable. Currently only the value Client is supported.

" } } }, diff --git a/botocore/data/dynamodb/2012-08-10/service-2.json b/botocore/data/dynamodb/2012-08-10/service-2.json index 0582c36b..28bd407a 100644 --- a/botocore/data/dynamodb/2012-08-10/service-2.json +++ b/botocore/data/dynamodb/2012-08-10/service-2.json @@ -2814,7 +2814,7 @@ }, "Limit":{ "shape":"PositiveIntegerObject", - "documentation":"

The maximum number of table names to return.

" + "documentation":"

The maximum number of table names to return, if the parameter is not specified DynamoDB defaults to 100.

If the number of global tables DynamoDB finds reaches this limit, it stops the operation and returns the table names collected up to that point, with a table name in the LastEvaluatedGlobalTableName to apply in a subsequent operation to the ExclusiveStartGlobalTableName parameter.

" }, "RegionName":{ "shape":"RegionName", @@ -3823,6 +3823,10 @@ "ProvisionedThroughputOverride":{ "shape":"ProvisionedThroughput", "documentation":"

Provisioned throughput settings for the restored table.

" + }, + "SSESpecificationOverride":{ + "shape":"SSESpecification", + "documentation":"

The new server-side encryption settings for the restored table.

" } } }, @@ -3837,11 +3841,12 @@ }, "RestoreTableToPointInTimeInput":{ "type":"structure", - "required":[ - "SourceTableName", - "TargetTableName" - ], + "required":["TargetTableName"], "members":{ + "SourceTableArn":{ + "shape":"TableArn", + "documentation":"

The DynamoDB table that will be restored. This value is an Amazon Resource Name (ARN).

" + }, "SourceTableName":{ "shape":"TableName", "documentation":"

Name of the source table that is being restored.

" @@ -3873,6 +3878,10 @@ "ProvisionedThroughputOverride":{ "shape":"ProvisionedThroughput", "documentation":"

Provisioned throughput settings for the restored table.

" + }, + "SSESpecificationOverride":{ + "shape":"SSESpecification", + "documentation":"

The new server-side encryption settings for the restored table.

" } } }, diff --git a/botocore/data/ec2/2016-11-15/paginators-1.json b/botocore/data/ec2/2016-11-15/paginators-1.json index 9368ad56..da37086b 100644 --- a/botocore/data/ec2/2016-11-15/paginators-1.json +++ b/botocore/data/ec2/2016-11-15/paginators-1.json @@ -439,6 +439,90 @@ "limit_key": "MaxResults", "output_token": "NextToken", "result_key": "Ipv6CidrAssociations" + }, + "DescribeCoipPools": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "CoipPools" + }, + "DescribeInstanceTypeOfferings": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "InstanceTypeOfferings" + }, + "DescribeInstanceTypes": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "InstanceTypes" + }, + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "LocalGatewayRouteTableVirtualInterfaceGroupAssociations" + }, + "DescribeLocalGatewayRouteTableVpcAssociations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "LocalGatewayRouteTableVpcAssociations" + }, + "DescribeLocalGatewayRouteTables": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "LocalGatewayRouteTables" + }, + "DescribeLocalGatewayVirtualInterfaceGroups": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "LocalGatewayVirtualInterfaceGroups" + }, + "DescribeLocalGatewayVirtualInterfaces": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "LocalGatewayVirtualInterfaces" + }, + "DescribeLocalGateways": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "LocalGateways" + }, + "DescribeTransitGatewayMulticastDomains": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "TransitGatewayMulticastDomains" + }, + "DescribeTransitGatewayPeeringAttachments": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "TransitGatewayPeeringAttachments" + }, + "GetTransitGatewayMulticastDomainAssociations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "MulticastDomainAssociations" + }, + "SearchLocalGatewayRoutes": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Routes" + }, + "SearchTransitGatewayMulticastGroups": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "MulticastGroups" } } } diff --git a/botocore/data/ec2/2016-11-15/service-2.json b/botocore/data/ec2/2016-11-15/service-2.json index 78612fb0..21b7803c 100644 --- a/botocore/data/ec2/2016-11-15/service-2.json +++ b/botocore/data/ec2/2016-11-15/service-2.json @@ -110,7 +110,7 @@ }, "input":{"shape":"AssignIpv6AddressesRequest"}, "output":{"shape":"AssignIpv6AddressesResult"}, - "documentation":"

Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies per instance type. For information, see IP Addresses Per Network Interface Per Instance Type in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Assigns one or more IPv6 addresses to the specified network interface. You can specify one or more specific IPv6 addresses, or you can specify the number of IPv6 addresses to be automatically assigned from within the subnet's IPv6 CIDR block range. You can assign as many IPv6 addresses to a network interface as you can assign private IPv4 addresses, and the limit varies per instance type. For information, see IP Addresses Per Network Interface Per Instance Type in the Amazon Elastic Compute Cloud User Guide.

You must specify either the IPv6 addresses or the IPv6 address count in the request.

" }, "AssignPrivateIpAddresses":{ "name":"AssignPrivateIpAddresses", @@ -120,7 +120,7 @@ }, "input":{"shape":"AssignPrivateIpAddressesRequest"}, "output":{"shape":"AssignPrivateIpAddressesResult"}, - "documentation":"

Assigns one or more secondary private IP addresses to the specified network interface.

You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

When you move a secondary private IP address to another network interface, any Elastic IP address that is associated with the IP address is also moved.

Remapping an IP address is an asynchronous operation. When you move an IP address from one network interface to another, check network/interfaces/macs/mac/local-ipv4s in the instance metadata to confirm that the remapping is complete.

" + "documentation":"

Assigns one or more secondary private IP addresses to the specified network interface.

You can specify one or more specific secondary IP addresses, or you can specify the number of secondary IP addresses to be automatically assigned within the subnet's CIDR block range. The number of secondary IP addresses that you can assign to an instance varies by instance type. For information about instance types, see Instance Types in the Amazon Elastic Compute Cloud User Guide. For more information about Elastic IP addresses, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

When you move a secondary private IP address to another network interface, any Elastic IP address that is associated with the IP address is also moved.

Remapping an IP address is an asynchronous operation. When you move an IP address from one network interface to another, check network/interfaces/macs/mac/local-ipv4s in the instance metadata to confirm that the remapping is complete.

You must specify either the IP addresses or the IP address count in the request.

" }, "AssociateAddress":{ "name":"AssociateAddress", @@ -140,7 +140,7 @@ }, "input":{"shape":"AssociateClientVpnTargetNetworkRequest"}, "output":{"shape":"AssociateClientVpnTargetNetworkResult"}, - "documentation":"

Associates a target network with a Client VPN endpoint. A target network is a subnet in a VPC. You can associate multiple subnets from the same VPC with a Client VPN endpoint. You can associate only one subnet in each Availability Zone. We recommend that you associate at least two subnets to provide Availability Zone redundancy.

" + "documentation":"

Associates a target network with a Client VPN endpoint. A target network is a subnet in a VPC. You can associate multiple subnets from the same VPC with a Client VPN endpoint. You can associate only one subnet in each Availability Zone. We recommend that you associate at least two subnets to provide Availability Zone redundancy.

If you specified a VPC when you created the Client VPN endpoint or if you have previous subnet associations, the specified subnet must be in the same VPC. To specify a subnet that's in a different VPC, you must first modify the Client VPN endpoint (ModifyClientVpnEndpoint) and change the VPC that's associated with it.

" }, "AssociateDhcpOptions":{ "name":"AssociateDhcpOptions", @@ -209,7 +209,7 @@ }, "input":{"shape":"AssociateVpcCidrBlockRequest"}, "output":{"shape":"AssociateVpcCidrBlockResult"}, - "documentation":"

Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP). The IPv6 CIDR block size is fixed at /56.

For more information about associating CIDR blocks with your VPC and applicable restrictions, see VPC and Subnet Sizing in the Amazon Virtual Private Cloud User Guide.

" + "documentation":"

Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block, an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP). The IPv6 CIDR block size is fixed at /56.

You must specify one of the following in the request: an IPv4 CIDR block, an IPv6 pool, or an Amazon-provided IPv6 CIDR block.

For more information about associating CIDR blocks with your VPC and applicable restrictions, see VPC and Subnet Sizing in the Amazon Virtual Private Cloud User Guide.

" }, "AttachClassicLinkVpc":{ "name":"AttachClassicLinkVpc", @@ -1390,7 +1390,7 @@ "requestUri":"/" }, "input":{"shape":"DeleteVpnGatewayRequest"}, - "documentation":"

Deletes the specified virtual private gateway. We recommend that before you delete a virtual private gateway, you detach it from the VPC and delete the VPN connection. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.

" + "documentation":"

Deletes the specified virtual private gateway. You must first detach the virtual private gateway from the VPC. Note that you don't need to delete the virtual private gateway if you plan to delete and recreate the VPN connection between your VPC and your network.

" }, "DeprovisionByoipCidr":{ "name":"DeprovisionByoipCidr", @@ -2199,7 +2199,7 @@ }, "input":{"shape":"DescribeSnapshotsRequest"}, "output":{"shape":"DescribeSnapshotsResult"}, - "documentation":"

Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.

The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other AWS accounts for which you have explicit create volume permissions.

The create volume permissions fall into the following categories:

  • public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All AWS accounts have create volume permissions for these snapshots.

  • explicit: The owner of the snapshot granted create volume permissions to a specific AWS account.

  • implicit: An AWS account has implicit create volume permissions for all snapshots it owns.

The list of snapshots returned can be modified by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results.

For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.

The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other AWS accounts for which you have explicit create volume permissions.

The create volume permissions fall into the following categories:

  • public: The owner of the snapshot granted create volume permissions for the snapshot to the all group. All AWS accounts have create volume permissions for these snapshots.

  • explicit: The owner of the snapshot granted create volume permissions to a specific AWS account.

  • implicit: An AWS account has implicit create volume permissions for all snapshots it owns.

The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, you can paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results.

To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.

For more information about EBS snapshots, see Amazon EBS Snapshots in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeSpotDatafeedSubscription":{ "name":"DescribeSpotDatafeedSubscription", @@ -2753,7 +2753,7 @@ }, "input":{"shape":"EnableFastSnapshotRestoresRequest"}, "output":{"shape":"EnableFastSnapshotRestoresResult"}, - "documentation":"

Enables fast snapshot restores for the specified snapshots in the specified Availability Zones.

You get the full benefit of fast snapshot restores after they enter the enabled state. To get the current state of fast snapshot restores, use DescribeFastSnapshotRestores. To disable fast snapshot restores, use DisableFastSnapshotRestores.

" + "documentation":"

Enables fast snapshot restores for the specified snapshots in the specified Availability Zones.

You get the full benefit of fast snapshot restores after they enter the enabled state. To get the current state of fast snapshot restores, use DescribeFastSnapshotRestores. To disable fast snapshot restores, use DisableFastSnapshotRestores.

For more information, see Amazon EBS Fast Snapshot Restore in the Amazon Elastic Compute Cloud User Guide.

" }, "EnableTransitGatewayRouteTablePropagation":{ "name":"EnableTransitGatewayRouteTablePropagation", @@ -2841,7 +2841,7 @@ }, "input":{"shape":"ExportTransitGatewayRoutesRequest"}, "output":{"shape":"ExportTransitGatewayRoutesResult"}, - "documentation":"

Exports routes from the specified transit gateway route table to the specified S3 bucket. By default, all routes are exported. Alternatively, you can filter by CIDR range.

" + "documentation":"

Exports routes from the specified transit gateway route table to the specified S3 bucket. By default, all routes are exported. Alternatively, you can filter by CIDR range.

The routes are saved to the specified bucket in a JSON file. For more information, see Export Route Tables to Amazon S3 in Transit Gateways.

" }, "GetAssociatedIpv6PoolCidrs":{ "name":"GetAssociatedIpv6PoolCidrs", @@ -3063,6 +3063,16 @@ "output":{"shape":"ImportVolumeResult"}, "documentation":"

Creates an import volume task using metadata from the specified disk image.For more information, see Importing Disks to Amazon EBS.

For information about the import manifest referenced by this API action, see VM Import Manifest.

" }, + "ModifyAvailabilityZoneGroup":{ + "name":"ModifyAvailabilityZoneGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyAvailabilityZoneGroupRequest"}, + "output":{"shape":"ModifyAvailabilityZoneGroupResult"}, + "documentation":"

Enables or disables an Availability Zone group for your account.

Use describe-availability-zones to view the value for GroupName.

" + }, "ModifyCapacityReservation":{ "name":"ModifyCapacityReservation", "http":{ @@ -3081,7 +3091,7 @@ }, "input":{"shape":"ModifyClientVpnEndpointRequest"}, "output":{"shape":"ModifyClientVpnEndpointResult"}, - "documentation":"

Modifies the specified Client VPN endpoint. You can only modify an endpoint's server certificate information, client connection logging information, DNS server, and description. Modifying the DNS server resets existing client connections.

" + "documentation":"

Modifies the specified Client VPN endpoint. Modifying the DNS server resets existing client connections.

" }, "ModifyDefaultCreditSpecification":{ "name":"ModifyDefaultCreditSpecification", @@ -3412,7 +3422,7 @@ }, "input":{"shape":"ModifyVpnConnectionRequest"}, "output":{"shape":"ModifyVpnConnectionResult"}, - "documentation":"

Modifies the target gateway of an AWS Site-to-Site VPN connection. The following migration options are available:

  • An existing virtual private gateway to a new virtual private gateway

  • An existing virtual private gateway to a transit gateway

  • An existing transit gateway to a new transit gateway

  • An existing transit gateway to a virtual private gateway

Before you perform the migration to the new gateway, you must configure the new gateway. Use CreateVpnGateway to create a virtual private gateway, or CreateTransitGateway to create a transit gateway.

This step is required when you migrate from a virtual private gateway with static routes to a transit gateway.

You must delete the static routes before you migrate to the new gateway.

Keep a copy of the static route before you delete it. You will need to add back these routes to the transit gateway after the VPN connection migration is complete.

After you migrate to the new gateway, you might need to modify your VPC route table. Use CreateRoute and DeleteRoute to make the changes described in VPN Gateway Target Modification Required VPC Route Table Updates in the AWS Site-to-Site VPN User Guide.

When the new gateway is a transit gateway, modify the transit gateway route table to allow traffic between the VPC and the AWS Site-to-Site VPN connection. Use CreateTransitGatewayRoute to add the routes.

If you deleted VPN static routes, you must add the static routes to the transit gateway route table.

After you perform this operation, the AWS VPN endpoint's IP addresses on the AWS side and the tunnel options remain intact. Your s2slong; connection will be temporarily unavailable for approximately 10 minutes while we provision the new endpoints

" + "documentation":"

Modifies the target gateway of an AWS Site-to-Site VPN connection. The following migration options are available:

  • An existing virtual private gateway to a new virtual private gateway

  • An existing virtual private gateway to a transit gateway

  • An existing transit gateway to a new transit gateway

  • An existing transit gateway to a virtual private gateway

Before you perform the migration to the new gateway, you must configure the new gateway. Use CreateVpnGateway to create a virtual private gateway, or CreateTransitGateway to create a transit gateway.

This step is required when you migrate from a virtual private gateway with static routes to a transit gateway.

You must delete the static routes before you migrate to the new gateway.

Keep a copy of the static route before you delete it. You will need to add back these routes to the transit gateway after the VPN connection migration is complete.

After you migrate to the new gateway, you might need to modify your VPC route table. Use CreateRoute and DeleteRoute to make the changes described in VPN Gateway Target Modification Required VPC Route Table Updates in the AWS Site-to-Site VPN User Guide.

When the new gateway is a transit gateway, modify the transit gateway route table to allow traffic between the VPC and the AWS Site-to-Site VPN connection. Use CreateTransitGatewayRoute to add the routes.

If you deleted VPN static routes, you must add the static routes to the transit gateway route table.

After you perform this operation, the AWS VPN endpoint's IP addresses on the AWS side and the tunnel options remain intact. Your AWS Site-to-Site VPN connection will be temporarily unavailable for a brief period while we provision the new endpoints.

" }, "ModifyVpnTunnelCertificate":{ "name":"ModifyVpnTunnelCertificate", @@ -3511,7 +3521,7 @@ }, "input":{"shape":"RegisterImageRequest"}, "output":{"shape":"RegisterImageResult"}, - "documentation":"

Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating Your Own AMIs in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.

You can also use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using the block device mapping. For more information, see Launching a Linux Instance from a Backup in the Amazon Elastic Compute Cloud User Guide.

You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes.

Windows and some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2 billing product code associated with an AMI to verify the subscription status for package updates. To create a new AMI for operating systems that require a billing product code, instead of instead of registering the AMI, do the following to preserve the billing product code association:

  1. Launch an instance from an existing AMI with that billing product code.

  2. Customize the instance.

  3. Create an AMI from the instance using CreateImage.

If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched from an AMI with a billing product code, make sure that the Reserved Instance has the matching billing product code. If you purchase a Reserved Instance without the matching billing product code, the Reserved Instance will not be applied to the On-Demand Instance.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

" + "documentation":"

Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating Your Own AMIs in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.

You can also use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using the block device mapping. For more information, see Launching a Linux Instance from a Backup in the Amazon Elastic Compute Cloud User Guide.

You can't register an image where a secondary (non-root) snapshot has AWS Marketplace product codes.

Windows and some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the EC2 billing product code associated with an AMI to verify the subscription status for package updates. To create a new AMI for operating systems that require a billing product code, instead of registering the AMI, do the following to preserve the billing product code association:

  1. Launch an instance from an existing AMI with that billing product code.

  2. Customize the instance.

  3. Create an AMI from the instance using CreateImage.

If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched from an AMI with a billing product code, make sure that the Reserved Instance has the matching billing product code. If you purchase a Reserved Instance without the matching billing product code, the Reserved Instance will not be applied to the On-Demand Instance. For information about how to obtain the platform details and billing information of an AMI, see Obtaining Billing Information in the Amazon Elastic Compute Cloud User Guide.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

" }, "RegisterTransitGatewayMulticastGroupMembers":{ "name":"RegisterTransitGatewayMulticastGroupMembers", @@ -3667,7 +3677,7 @@ }, "input":{"shape":"RequestSpotFleetRequest"}, "output":{"shape":"RequestSpotFleetResponse"}, - "documentation":"

Creates a Spot Fleet request.

The Spot Fleet request specifies the total target capacity and the On-Demand target capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand capacity, and launches the difference as Spot capacity.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet.

You can specify tags for the Spot Instances. You cannot tag other resource types in a Spot Fleet request because only the instance resource type is supported.

For more information, see Spot Fleet Requests in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

Creates a Spot Fleet request.

The Spot Fleet request specifies the total target capacity and the On-Demand target capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand capacity, and launches the difference as Spot capacity.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet.

You can specify tags for the Spot Fleet request and instances launched by the fleet. You cannot tag other resource types in a Spot Fleet request because only the spot-fleet-request and instance resource types are supported.

For more information, see Spot Fleet Requests in the Amazon EC2 User Guide for Linux Instances.

" }, "RequestSpotInstances":{ "name":"RequestSpotInstances", @@ -3860,7 +3870,7 @@ }, "input":{"shape":"StopInstancesRequest"}, "output":{"shape":"StopInstancesResult"}, - "documentation":"

Stops an Amazon EBS-backed instance.

You can use the Stop action to hibernate an instance if the instance is enabled for hibernation and it meets the hibernation prerequisites. For more information, see Hibernate Your Instance in the Amazon Elastic Compute Cloud User Guide.

We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

You can't start, stop, or hibernate Spot Instances, and you can't stop or hibernate instance store-backed instances. For information about using hibernation for Spot Instances, see Hibernating Interrupted Spot Instances in the Amazon Elastic Compute Cloud User Guide.

When you stop or hibernate an instance, we shut it down. You can restart your instance at any time. Before stopping or hibernating an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM, but hibernating an instance does preserve data stored in RAM. If an instance cannot hibernate successfully, a normal shutdown occurs.

Stopping and hibernating an instance is different to rebooting or terminating it. For example, when you stop or hibernate an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, hibernating, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Stops an Amazon EBS-backed instance.

You can use the Stop action to hibernate an instance if the instance is enabled for hibernation and it meets the hibernation prerequisites. For more information, see Hibernate Your Instance in the Amazon Elastic Compute Cloud User Guide.

We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your Windows instance, Amazon EC2 charges you for a full instance hour. If you stop and restart your Windows instance, a new instance hour begins and Amazon EC2 charges you for another full instance hour even if you are still within the same 60-minute period when it was stopped. Every time you start your Linux instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage.

You can't stop or hibernate instance store-backed instances. You can't use the Stop action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate Spot Instances when they are interrupted. For more information, see Hibernating Interrupted Spot Instances in the Amazon Elastic Compute Cloud User Guide.

When you stop or hibernate an instance, we shut it down. You can restart your instance at any time. Before stopping or hibernating an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM, but hibernating an instance does preserve data stored in RAM. If an instance cannot hibernate successfully, a normal shutdown occurs.

Stopping and hibernating an instance is different to rebooting or terminating it. For example, when you stop or hibernate an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, hibernating, and terminating instances, see Instance Lifecycle in the Amazon Elastic Compute Cloud User Guide.

When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see Troubleshooting Stopping Your Instance in the Amazon Elastic Compute Cloud User Guide.

" }, "TerminateClientVpnConnections":{ "name":"TerminateClientVpnConnections", @@ -3980,7 +3990,7 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the transit gateway attachment.

" }, "DryRun":{ @@ -4004,7 +4014,7 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "DryRun":{ @@ -4035,11 +4045,11 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceId":{ - "shape":"ServiceId", + "shape":"VpcEndpointServiceId", "documentation":"

The ID of the VPC endpoint service.

" }, "VpcEndpointIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointIdList", "documentation":"

The IDs of one or more interface VPC endpoints.

", "locationName":"VpcEndpointId" } @@ -4303,7 +4313,7 @@ }, "NetworkBorderGroup":{ "shape":"String", - "documentation":"

The location from which the IP address is advertised. Use this parameter to limit the address to this location.

Use DescribeVpcs to view the network border groups.

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an InvalidParameterCombination error. For more information, see Error Codes.

" + "documentation":"

The location from which the IP address is advertised. Use this parameter to limit the address to this location.

A network border group is a unique set of Availability Zones or Local Zones from where AWS advertises IP addresses and limits the addresses to the group. IP addresses cannot move between network border groups.

Use DescribeAvailabilityZones to view the network border groups.

You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you will receive an InvalidParameterCombination error. For more information, see Error Codes.

" }, "CustomerOwnedIpv4Pool":{ "shape":"String", @@ -4418,7 +4428,7 @@ "AllocationIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"AllocationId", "locationName":"AllocationId" } }, @@ -4774,17 +4784,17 @@ "locationName":"dryRun" }, "RouteTableId":{ - "shape":"String", + "shape":"RouteTableId", "documentation":"

The ID of the route table.

", "locationName":"routeTableId" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

The ID of the subnet.

", "locationName":"subnetId" }, "GatewayId":{ - "shape":"String", + "shape":"RouteGatewayId", "documentation":"

The ID of the internet gateway or virtual private gateway.

" } } @@ -4842,11 +4852,11 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the transit gateway attachment to associate with the transit gateway multicast domain.

" }, "SubnetIds":{ @@ -4877,11 +4887,11 @@ ], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "DryRun":{ @@ -4918,17 +4928,17 @@ "documentation":"

The ID of the VPC.

", "locationName":"vpcId" }, - "Ipv6Pool":{ + "Ipv6CidrBlockNetworkBorderGroup":{ "shape":"String", + "documentation":"

The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the CiDR block to this location.

You must set AmazonProvidedIpv6CidrBlock to true to use this parameter.

You can have one IPv6 CIDR block association per network border group.

" + }, + "Ipv6Pool":{ + "shape":"Ipv6PoolEc2Id", "documentation":"

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.

" }, "Ipv6CidrBlock":{ "shape":"String", "documentation":"

An IPv6 CIDR block from the IPv6 address pool. You must also specify Ipv6Pool in the request.

To let Amazon choose the IPv6 CIDR block for you, omit this parameter.

" - }, - "Ipv6CidrBlockNetworkBorderGroup":{ - "shape":"String", - "documentation":"

The name of the location from which we advertise the IPV6 CIDR block. Use this parameter to limit the CiDR block to this location.

You must set AmazonProvidedIpv6CidrBlock to true to use this parameter.

You can have one IPv6 CIDR block association per network border group.

" } } }, @@ -4982,7 +4992,7 @@ "AssociationIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"IamInstanceProfileAssociationId", "locationName":"AssociationId" } }, @@ -5311,7 +5321,7 @@ "locationName":"dryRun" }, "GroupId":{ - "shape":"String", + "shape":"SecurityGroupId", "documentation":"

The ID of the security group.

", "locationName":"groupId" }, @@ -5364,11 +5374,11 @@ "documentation":"

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all types. If you specify all ICMP types, you must specify all codes.

Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.

" }, "GroupId":{ - "shape":"String", + "shape":"SecurityGroupId", "documentation":"

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "GroupName":{ - "shape":"String", + "shape":"SecurityGroupName", "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

" }, "IpPermissions":{ @@ -5606,7 +5616,7 @@ "BundleIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"BundleId", "locationName":"BundleId" } }, @@ -5858,7 +5868,7 @@ "required":["ExportTaskId"], "members":{ "ExportTaskId":{ - "shape":"ExportTaskId", + "shape":"ExportVmTaskId", "documentation":"

The ID of the export task. This is the ID returned by CreateInstanceExportTask.

", "locationName":"exportTaskId" } @@ -5976,7 +5986,7 @@ "locationName":"dryRun" }, "SpotFleetRequestIds":{ - "shape":"ValueStringList", + "shape":"SpotFleetRequestIdList", "documentation":"

The IDs of the Spot Fleet requests.

", "locationName":"spotFleetRequestId" }, @@ -6193,7 +6203,7 @@ "CapacityReservationIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"CapacityReservationId", "locationName":"item" } }, @@ -6292,7 +6302,7 @@ "type":"structure", "members":{ "CapacityReservationId":{ - "shape":"String", + "shape":"CapacityReservationId", "documentation":"

The ID of the Capacity Reservation.

" } }, @@ -6505,6 +6515,7 @@ }, "documentation":"

Describes the client-specific data.

" }, + "ClientVpnAssociationId":{"type":"string"}, "ClientVpnAuthentication":{ "type":"structure", "members":{ @@ -6779,11 +6790,28 @@ "shape":"TagList", "documentation":"

Any tags assigned to the Client VPN endpoint.

", "locationName":"tagSet" + }, + "SecurityGroupIds":{ + "shape":"ClientVpnSecurityGroupIdSet", + "documentation":"

The IDs of the security groups for the target network.

", + "locationName":"securityGroupIdSet" + }, + "VpcId":{ + "shape":"VpcId", + "documentation":"

The ID of the VPC.

", + "locationName":"vpcId" } }, "documentation":"

Describes a Client VPN endpoint.

" }, "ClientVpnEndpointId":{"type":"string"}, + "ClientVpnEndpointIdList":{ + "type":"list", + "member":{ + "shape":"ClientVpnEndpointId", + "locationName":"item" + } + }, "ClientVpnEndpointStatus":{ "type":"structure", "members":{ @@ -6885,7 +6913,7 @@ "ClientVpnSecurityGroupIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"SecurityGroupId", "locationName":"item" } }, @@ -6926,7 +6954,7 @@ "type":"structure", "members":{ "PoolId":{ - "shape":"String", + "shape":"CoipPoolId", "documentation":"

The ID of the address pool.

", "locationName":"poolId" }, @@ -6936,7 +6964,7 @@ "locationName":"poolCidrSet" }, "LocalGatewayRouteTableId":{ - "shape":"String", + "shape":"LocalGatewayRoutetableId", "documentation":"

The ID of the local gateway route table.

", "locationName":"localGatewayRouteTableId" }, @@ -6948,10 +6976,11 @@ }, "documentation":"

Describes a customer-owned address pool.

" }, + "CoipPoolId":{"type":"string"}, "CoipPoolIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"CoipPoolId", "locationName":"item" } }, @@ -7107,7 +7136,7 @@ "ConversionIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ConversionTaskId", "locationName":"item" } }, @@ -7174,7 +7203,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "SourceFpgaImageId":{ - "shape":"String", + "shape":"FpgaImageId", "documentation":"

The ID of the source AFI.

" }, "Description":{ @@ -7284,7 +7313,7 @@ "locationName":"encrypted" }, "KmsKeyId":{ - "shape":"String", + "shape":"KmsKeyId", "documentation":"

The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If this parameter is not specified, your AWS managed CMK for EBS is used. If KmsKeyId is specified, the encrypted state must be true.

You can specify the CMK using any of the following:

  • Key ID. For example, key/1234abcd-12ab-34cd-56ef-1234567890ab.

  • Key alias. For example, alias/ExampleAlias.

  • Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.

  • Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.

AWS authenticates the CMK asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.

", "locationName":"kmsKeyId" }, @@ -7505,6 +7534,15 @@ "shape":"TagSpecificationList", "documentation":"

The tags to apply to the Client VPN endpoint during creation.

", "locationName":"TagSpecification" + }, + "SecurityGroupIds":{ + "shape":"ClientVpnSecurityGroupIdSet", + "documentation":"

The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.

", + "locationName":"SecurityGroupId" + }, + "VpcId":{ + "shape":"VpcId", + "documentation":"

The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.

" } } }, @@ -7859,7 +7897,7 @@ "type":"structure", "members":{ "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

", "locationName":"fleetId" }, @@ -7900,7 +7938,7 @@ "documentation":"

The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs.

If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn or LogGroupName.

" }, "ResourceIds":{ - "shape":"ValueStringList", + "shape":"FlowLogResourceIds", "documentation":"

The ID of the subnet, network interface, or VPC for which you want to create a flow log.

Constraints: Maximum of 1000 resources

", "locationName":"ResourceId" }, @@ -7924,9 +7962,14 @@ "shape":"String", "documentation":"

The fields to include in the flow log record, in the order in which they should appear. For a list of available fields, see Flow Log Records. If you omit this parameter, the flow log is created using the default format. If you specify this parameter, you must specify at least one field.

Specify the fields using the ${field-id} format, separated by spaces. For the AWS CLI, use single quotation marks (' ') to surround the parameter value.

Only applicable to flow logs that are published to an Amazon S3 bucket.

" }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to apply to the flow logs.

", + "locationName":"TagSpecification" + }, "MaxAggregationInterval":{ "shape":"Integer", - "documentation":"

The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. You can specify 60 seconds (1 minute) or 600 seconds (10 minutes).

For network interfaces attached to Nitro-based instances, the aggregation interval is always 60 seconds, regardless of the value that you specify.

Default: 600

" + "documentation":"

The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. You can specify 60 seconds (1 minute) or 600 seconds (10 minutes).

When a network interface is attached to a Nitro-based instance, the aggregation interval is always 60 seconds or less, regardless of the value that you specify.

Default: 600

" } } }, @@ -8110,7 +8153,7 @@ "required":["KeyName"], "members":{ "KeyName":{ - "shape":"KeyPairName", + "shape":"String", "documentation":"

A unique name for the key pair.

Constraints: Up to 255 ASCII characters

" }, "DryRun":{ @@ -8221,11 +8264,11 @@ "documentation":"

The CIDR range used for destination matches. Routing decisions are based on the most specific match.

" }, "LocalGatewayRouteTableId":{ - "shape":"String", + "shape":"LocalGatewayRoutetableId", "documentation":"

The ID of the local gateway route table.

" }, "LocalGatewayVirtualInterfaceGroupId":{ - "shape":"String", + "shape":"LocalGatewayVirtualInterfaceGroupId", "documentation":"

The ID of the virtual interface group.

" }, "DryRun":{ @@ -8252,11 +8295,11 @@ ], "members":{ "LocalGatewayRouteTableId":{ - "shape":"String", + "shape":"LocalGatewayRoutetableId", "documentation":"

The ID of the local gateway route table.

" }, "VpcId":{ - "shape":"String", + "shape":"VpcId", "documentation":"

The ID of the VPC.

" }, "DryRun":{ @@ -8288,11 +8331,21 @@ }, "ClientToken":{ "shape":"String", - "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

Constraint: Maximum 64 ASCII characters.

" + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to Ensure Idempotency.

Constraint: Maximum 64 ASCII characters.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "SubnetId":{ "shape":"SubnetId", "documentation":"

The subnet in which to create the NAT gateway.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to assign to the NAT gateway.

", + "locationName":"TagSpecification" } } }, @@ -8556,7 +8609,7 @@ "locationName":"priceSchedules" }, "ReservedInstancesId":{ - "shape":"String", + "shape":"ReservationId", "documentation":"

The ID of the active Standard Reserved Instance.

", "locationName":"reservedInstancesId" } @@ -8599,7 +8652,7 @@ "locationName":"egressOnlyInternetGatewayId" }, "GatewayId":{ - "shape":"RouteTableGatewayId", + "shape":"RouteGatewayId", "documentation":"

The ID of an internet gateway or virtual private gateway attached to your VPC.

", "locationName":"gatewayId" }, @@ -8618,7 +8671,7 @@ "documentation":"

The ID of a transit gateway.

" }, "LocalGatewayId":{ - "shape":"String", + "shape":"LocalGatewayId", "documentation":"

The ID of the local gateway.

" }, "NetworkInterfaceId":{ @@ -9111,7 +9164,7 @@ "required":["TransitGatewayId"], "members":{ "TransitGatewayId":{ - "shape":"String", + "shape":"TransitGatewayId", "documentation":"

The ID of the transit gateway.

" }, "TagSpecifications":{ @@ -9145,11 +9198,11 @@ ], "members":{ "TransitGatewayId":{ - "shape":"String", + "shape":"TransitGatewayId", "documentation":"

The ID of the transit gateway.

" }, "PeerTransitGatewayId":{ - "shape":"String", + "shape":"TransitAssociationGatewayId", "documentation":"

The ID of the peer transit gateway with which to create the peering attachment.

" }, "PeerAccountId":{ @@ -9225,11 +9278,11 @@ "documentation":"

The CIDR range used for destination matches. Routing decisions are based on the most specific match.

" }, "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "Blackhole":{ @@ -9257,7 +9310,7 @@ "required":["TransitGatewayId"], "members":{ "TransitGatewayId":{ - "shape":"String", + "shape":"TransitGatewayId", "documentation":"

The ID of the transit gateway.

" }, "TagSpecifications":{ @@ -9289,15 +9342,15 @@ ], "members":{ "TransitGatewayId":{ - "shape":"String", + "shape":"TransitGatewayId", "documentation":"

The ID of the transit gateway.

" }, "VpcId":{ - "shape":"String", + "shape":"VpcId", "documentation":"

The ID of the VPC.

" }, "SubnetIds":{ - "shape":"ValueStringList", + "shape":"TransitGatewaySubnetIdList", "documentation":"

The IDs of one or more subnets. You can specify only one subnet per Availability Zone. You must specify at least one subnet, but we recommend that you specify two subnets for better availability. The transit gateway uses one IP address from each specified subnet.

" }, "Options":{ @@ -9402,11 +9455,11 @@ }, "Size":{ "shape":"Integer", - "documentation":"

The size of the volume, in GiBs.

Constraints: 1-16,384 for gp2, 4-16,384 for io1, 500-16,384 for st1, 500-16,384 for sc1, and 1-1,024 for standard. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

At least one of Size or SnapshotId is required.

" + "documentation":"

The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size.

Constraints: 1-16,384 for gp2, 4-16,384 for io1, 500-16,384 for st1, 500-16,384 for sc1, and 1-1,024 for standard. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size.

Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.

" }, "SnapshotId":{ "shape":"SnapshotId", - "documentation":"

The snapshot from which to create the volume.

At least one of Size or SnapshotId are required.

" + "documentation":"

The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.

" }, "VolumeType":{ "shape":"VolumeType", @@ -9421,6 +9474,10 @@ "shape":"TagSpecificationList", "documentation":"

The tags to apply to the volume during creation.

", "locationName":"TagSpecification" + }, + "MultiAttachEnabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the volume to up to 16 Nitro-based instances in the same Availability Zone. For more information, see Amazon EBS Multi-Attach in the Amazon Elastic Compute Cloud User Guide.

" } } }, @@ -9436,7 +9493,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceId":{ - "shape":"ServiceId", + "shape":"VpcEndpointServiceId", "documentation":"

The ID of the endpoint service.

" }, "VpcEndpointId":{ @@ -9500,17 +9557,17 @@ "documentation":"

A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service.

" }, "RouteTableIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointRouteTableIdList", "documentation":"

(Gateway endpoint) One or more route table IDs.

", "locationName":"RouteTableId" }, "SubnetIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointSubnetIdList", "documentation":"

(Interface endpoint) The ID of one or more subnets in which to create an endpoint network interface.

", "locationName":"SubnetId" }, "SecurityGroupIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointSecurityGroupIdList", "documentation":"

(Interface endpoint) The ID of one or more security groups to associate with the endpoint network interface.

", "locationName":"SecurityGroupId" }, @@ -9646,7 +9703,7 @@ "locationName":"amazonProvidedIpv6CidrBlock" }, "Ipv6Pool":{ - "shape":"String", + "shape":"Ipv6PoolEc2Id", "documentation":"

The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.

" }, "Ipv6CidrBlock":{ @@ -9856,7 +9913,7 @@ "CustomerGatewayIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"CustomerGatewayId", "locationName":"CustomerGatewayId" } }, @@ -10057,7 +10114,7 @@ "locationName":"error" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

", "locationName":"fleetId" } @@ -10085,7 +10142,7 @@ "locationName":"previousFleetState" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

", "locationName":"fleetId" } @@ -10145,7 +10202,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "FlowLogIds":{ - "shape":"ValueStringList", + "shape":"FlowLogIdList", "documentation":"

One or more flow log IDs.

Constraint: Maximum of 1000 flow log IDs.

", "locationName":"FlowLogId" } @@ -10354,7 +10411,7 @@ "documentation":"

The CIDR range for the route. This must match the CIDR for the route exactly.

" }, "LocalGatewayRouteTableId":{ - "shape":"String", + "shape":"LocalGatewayRoutetableId", "documentation":"

The ID of the local gateway route table.

" }, "DryRun":{ @@ -10378,7 +10435,7 @@ "required":["LocalGatewayRouteTableVpcAssociationId"], "members":{ "LocalGatewayRouteTableVpcAssociationId":{ - "shape":"String", + "shape":"LocalGatewayRouteTableVpcAssociationId", "documentation":"

The ID of the association.

" }, "DryRun":{ @@ -10401,6 +10458,10 @@ "type":"structure", "required":["NatGatewayId"], "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, "NatGatewayId":{ "shape":"NatGatewayId", "documentation":"

The ID of the NAT gateway.

" @@ -10468,7 +10529,7 @@ "required":["NetworkInterfacePermissionId"], "members":{ "NetworkInterfacePermissionId":{ - "shape":"String", + "shape":"NetworkInterfacePermissionId", "documentation":"

The ID of the network interface permission.

" }, "Force":{ @@ -10520,7 +10581,7 @@ "locationName":"dryRun" }, "GroupName":{ - "shape":"String", + "shape":"PlacementGroupName", "documentation":"

The name of the placement group.

", "locationName":"groupName" } @@ -10553,7 +10614,7 @@ "DeleteQueuedReservedInstancesIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ReservationId", "locationName":"item" }, "max":100, @@ -10625,7 +10686,7 @@ "locationName":"dryRun" }, "RouteTableId":{ - "shape":"String", + "shape":"RouteTableId", "documentation":"

The ID of the route table.

", "locationName":"routeTableId" } @@ -10635,11 +10696,11 @@ "type":"structure", "members":{ "GroupId":{ - "shape":"String", + "shape":"SecurityGroupId", "documentation":"

The ID of the security group. Required for a nondefault VPC.

" }, "GroupName":{ - "shape":"String", + "shape":"SecurityGroupName", "documentation":"

[EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.

" }, "DryRun":{ @@ -10812,7 +10873,7 @@ "required":["TransitGatewayMulticastDomainId"], "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "DryRun":{ @@ -10836,7 +10897,7 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the transit gateway peering attachment.

" }, "DryRun":{ @@ -10860,7 +10921,7 @@ "required":["TransitGatewayId"], "members":{ "TransitGatewayId":{ - "shape":"String", + "shape":"TransitGatewayId", "documentation":"

The ID of the transit gateway.

" }, "DryRun":{ @@ -10887,7 +10948,7 @@ ], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "DestinationCidrBlock":{ @@ -10915,7 +10976,7 @@ "required":["TransitGatewayRouteTableId"], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "DryRun":{ @@ -10939,7 +11000,7 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "DryRun":{ @@ -11007,7 +11068,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointServiceIdList", "documentation":"

The IDs of one or more services.

", "locationName":"ServiceId" } @@ -11032,7 +11093,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "VpcEndpointIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointIdList", "documentation":"

One or more VPC endpoint IDs.

", "locationName":"VpcEndpointId" } @@ -11185,7 +11246,7 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "GroupIpAddress":{ @@ -11193,7 +11254,7 @@ "documentation":"

The IP address assigned to the transit gateway multicast group.

" }, "NetworkInterfaceIds":{ - "shape":"ValueStringList", + "shape":"TransitGatewayNetworkInterfaceIdList", "documentation":"

The IDs of the group members' network interfaces.

" }, "DryRun":{ @@ -11216,7 +11277,7 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "GroupIpAddress":{ @@ -11224,7 +11285,7 @@ "documentation":"

The IP address assigned to the transit gateway multicast group.

" }, "NetworkInterfaceIds":{ - "shape":"ValueStringList", + "shape":"TransitGatewayNetworkInterfaceIdList", "documentation":"

The IDs of the group sources' network interfaces.

" }, "DryRun":{ @@ -11457,7 +11518,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

", + "documentation":"

One or more filters.

  • instance-type - The type of instance for which the Capacity Reservation reserves capacity.

  • owner-id - The ID of the AWS account that owns the Capacity Reservation.

  • availability-zone-id - The Availability Zone ID of the Capacity Reservation.

  • instance-platform - The type of operating system for which the Capacity Reservation reserves capacity.

  • availability-zone - The Availability Zone ID of the Capacity Reservation.

  • tenancy - Indicates the tenancy of the Capacity Reservation. A Capacity Reservation can have one of the following tenancy settings:

    • default - The Capacity Reservation is created on hardware that is shared with other AWS accounts.

    • dedicated - The Capacity Reservation is created on single-tenant hardware that is dedicated to a single AWS account.

  • state - The current state of the Capacity Reservation. A Capacity Reservation can be in one of the following states:

    • active- The Capacity Reservation is active and the capacity is available for your use.

    • expired - The Capacity Reservation expired automatically at the date and time specified in your request. The reserved capacity is no longer available for your use.

    • cancelled - The Capacity Reservation was manually cancelled. The reserved capacity is no longer available for your use.

    • pending - The Capacity Reservation request was successful but the capacity provisioning is still pending.

    • failed - The Capacity Reservation request has failed. A request might fail due to invalid request parameters, capacity constraints, or instance limit constraints. Failed requests are retained for 60 minutes.

  • end-date - The date and time at which the Capacity Reservation expires. When a Capacity Reservation expires, the reserved capacity is released and you can no longer launch instances into it. The Capacity Reservation's state changes to expired when it reaches its end date and time.

  • end-date-type - Indicates the way in which the Capacity Reservation ends. A Capacity Reservation can have one of the following end types:

    • unlimited - The Capacity Reservation remains active until you explicitly cancel it.

    • limited - The Capacity Reservation expires automatically at a specified date and time.

  • instance-match-criteria - Indicates the type of instance launches that the Capacity Reservation accepts. The options include:

    • open - The Capacity Reservation accepts all instances that have matching attributes (instance type, platform, and Availability Zone). Instances that have matching attributes launch into the Capacity Reservation automatically without specifying any additional parameters.

    • targeted - The Capacity Reservation only accepts instances that have matching attributes (instance type, platform, and Availability Zone), and explicitly target the Capacity Reservation. This ensures that only permitted instances can use the reserved capacity.

", "locationName":"Filter" }, "DryRun":{ @@ -11541,7 +11602,7 @@ "required":["ClientVpnEndpointId"], "members":{ "ClientVpnEndpointId":{ - "shape":"String", + "shape":"ClientVpnEndpointId", "documentation":"

The ID of the Client VPN endpoint.

" }, "DryRun":{ @@ -11588,7 +11649,7 @@ "required":["ClientVpnEndpointId"], "members":{ "ClientVpnEndpointId":{ - "shape":"String", + "shape":"ClientVpnEndpointId", "documentation":"

The ID of the Client VPN endpoint.

" }, "Filters":{ @@ -11634,7 +11695,7 @@ "type":"structure", "members":{ "ClientVpnEndpointIds":{ - "shape":"ValueStringList", + "shape":"ClientVpnEndpointIdList", "documentation":"

The ID of the Client VPN endpoint.

", "locationName":"ClientVpnEndpointId" }, @@ -11682,7 +11743,7 @@ "required":["ClientVpnEndpointId"], "members":{ "ClientVpnEndpointId":{ - "shape":"String", + "shape":"ClientVpnEndpointId", "documentation":"

The ID of the Client VPN endpoint.

" }, "Filters":{ @@ -11729,7 +11790,7 @@ "required":["ClientVpnEndpointId"], "members":{ "ClientVpnEndpointId":{ - "shape":"String", + "shape":"ClientVpnEndpointId", "documentation":"

The ID of the Client VPN endpoint.

" }, "AssociationIds":{ @@ -12255,7 +12316,7 @@ "documentation":"

The token for the next set of results.

" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

" }, "StartTime":{ @@ -12283,7 +12344,7 @@ "locationName":"nextToken" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC Fleet.

", "locationName":"fleetId" }, @@ -12311,7 +12372,7 @@ "documentation":"

The token for the next set of results.

" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

" }, "Filters":{ @@ -12335,7 +12396,7 @@ "locationName":"nextToken" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

", "locationName":"fleetId" } @@ -12437,10 +12498,10 @@ }, "Filter":{ "shape":"FilterList", - "documentation":"

One or more filters.

  • deliver-log-status - The status of the logs delivery (SUCCESS | FAILED).

  • log-destination-type - The type of destination to which the flow log publishes data. Possible destination types include cloud-watch-logs and S3.

  • flow-log-id - The ID of the flow log.

  • log-group-name - The name of the log group.

  • resource-id - The ID of the VPC, subnet, or network interface.

  • traffic-type - The type of traffic (ACCEPT | REJECT | ALL).

" + "documentation":"

One or more filters.

  • deliver-log-status - The status of the logs delivery (SUCCESS | FAILED).

  • log-destination-type - The type of destination to which the flow log publishes data. Possible destination types include cloud-watch-logs and S3.

  • flow-log-id - The ID of the flow log.

  • log-group-name - The name of the log group.

  • resource-id - The ID of the VPC, subnet, or network interface.

  • traffic-type - The type of traffic (ACCEPT | REJECT | ALL).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

" }, "FlowLogIds":{ - "shape":"ValueStringList", + "shape":"FlowLogIdList", "documentation":"

One or more flow log IDs.

Constraint: Maximum of 1000 flow log IDs.

", "locationName":"FlowLogId" }, @@ -12481,7 +12542,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "FpgaImageId":{ - "shape":"String", + "shape":"FpgaImageId", "documentation":"

The ID of the AFI.

" }, "Attribute":{ @@ -12576,7 +12637,7 @@ "documentation":"

The token to use to retrieve the next page of results.

" }, "OfferingId":{ - "shape":"String", + "shape":"OfferingId", "documentation":"

The ID of the reservation offering.

" } } @@ -12777,7 +12838,7 @@ "documentation":"

The AMI attribute.

Note: Depending on your account privileges, the blockDeviceMapping attribute may return a Client.AuthFailure error. If this happens, use DescribeImages to get information about the block device mapping for the AMI.

" }, "ImageId":{ - "shape":"String", + "shape":"ImageId", "documentation":"

The ID of the AMI.

" }, "DryRun":{ @@ -12881,7 +12942,7 @@ "documentation":"

The filters.

" }, "ImportTaskIds":{ - "shape":"ImportTaskIdList", + "shape":"ImportSnapshotTaskIdList", "documentation":"

A list of import snapshot task IDs.

", "locationName":"ImportTaskId" }, @@ -12928,7 +12989,7 @@ "locationName":"dryRun" }, "InstanceId":{ - "shape":"String", + "shape":"InstanceId", "documentation":"

The ID of the instance.

", "locationName":"instanceId" } @@ -13084,7 +13145,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters. Filter names and values are case-sensitive.

  • auto-recovery-supported - Indicates whether auto recovery is supported. (true | false)

  • bare-metal - Indicates whether it is a bare metal instance type. (true | false)

  • burstable-performance-supported - Indicates whether it is a burstable performance instance type. (true | false)

  • current-generation - Indicates whether this instance type is the latest generation instance type of an instance family. (true | false)

  • ebs-info.ebs-optimized-support - Indicates whether the instance type is EBS-optimized. (true | false)

  • ebs-info.encryption-support - Indicates whether EBS encryption is supported. (true | false)

  • free-tier-eligible - Indicates whether the instance type is eligible to use in the free tier. (true | false)

  • hibernation-supported - Indicates whether On-Demand hibernation is supported. (true | false)

  • hypervisor - The hypervisor used. (nitro | xen)

  • instance-storage-info.disk.count - The number of local disks.

  • instance-storage-info.disk.size-in-gb - The storage size of each instance storage disk, in GB.

  • instance-storage-info.disk.type - The storage technology for the local instance storage disks. (hdd | ssd)

  • instance-storage-info.total-size-in-gb - The total amount of storage available from all local instance storage, in GB.

  • instance-storage-supported - Indicates whether the instance type has local instance storage. (true | false)

  • memory-info.size-in-mib - The memory size.

  • network-info.ena-support - Indicates whether Elastic Network Adapter (ENA) is supported or required. (required | supported | unsupported)

  • network-info.ipv4-addresses-per-interface - The maximum number of private IPv4 addresses per network interface.

  • network-info.ipv6-addresses-per-interface - The maximum number of private IPv6 addresses per network interface.

  • network-info.ipv6-supported - Indicates whether the instance type supports IPv6. (true | false)

  • network-info.maximum-network-interfaces - The maximum number of network interfaces per instance.

  • network-info.network-performance - Describes the network performance.

  • processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in GHz.

  • vcpu-info.default-cores - The default number of cores for the instance type.

  • vcpu-info.default-threads-per-core - The default number of threads per core for the instance type.

  • vcpu-info.default-vcpus - The default number of vCPUs for the instance type.

", + "documentation":"

One or more filters. Filter names and values are case-sensitive.

  • auto-recovery-supported - Indicates whether auto recovery is supported. (true | false)

  • bare-metal - Indicates whether it is a bare metal instance type. (true | false)

  • burstable-performance-supported - Indicates whether it is a burstable performance instance type. (true | false)

  • current-generation - Indicates whether this instance type is the latest generation instance type of an instance family. (true | false)

  • ebs-info.ebs-optimized-support - Indicates whether the instance type is EBS-optimized. (supported | unsupported | default)

  • ebs-info.encryption-support - Indicates whether EBS encryption is supported. (supported | unsupported)

  • free-tier-eligible - Indicates whether the instance type is eligible to use in the free tier. (true | false)

  • hibernation-supported - Indicates whether On-Demand hibernation is supported. (true | false)

  • hypervisor - The hypervisor used. (nitro | xen)

  • instance-storage-info.disk.count - The number of local disks.

  • instance-storage-info.disk.size-in-gb - The storage size of each instance storage disk, in GB.

  • instance-storage-info.disk.type - The storage technology for the local instance storage disks. (hdd | ssd)

  • instance-storage-info.total-size-in-gb - The total amount of storage available from all local instance storage, in GB.

  • instance-storage-supported - Indicates whether the instance type has local instance storage. (true | false)

  • memory-info.size-in-mib - The memory size.

  • network-info.ena-support - Indicates whether Elastic Network Adapter (ENA) is supported or required. (required | supported | unsupported)

  • network-info.ipv4-addresses-per-interface - The maximum number of private IPv4 addresses per network interface.

  • network-info.ipv6-addresses-per-interface - The maximum number of private IPv6 addresses per network interface.

  • network-info.ipv6-supported - Indicates whether the instance type supports IPv6. (true | false)

  • network-info.maximum-network-interfaces - The maximum number of network interfaces per instance.

  • network-info.network-performance - Describes the network performance.

  • processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in GHz.

  • vcpu-info.default-cores - The default number of cores for the instance type.

  • vcpu-info.default-threads-per-core - The default number of threads per core for the instance type.

  • vcpu-info.default-vcpus - The default number of vCPUs for the instance type.

", "locationName":"Filter" }, "MaxResults":{ @@ -13117,7 +13178,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

The filters.

  • affinity - The affinity setting for an instance running on a Dedicated Host (default | host).

  • architecture - The instance architecture (i386 | x86_64 | arm64).

  • availability-zone - The Availability Zone of the instance.

  • block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z.

  • block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh).

  • block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).

  • block-device-mapping.volume-id - The volume ID of the EBS volume.

  • client-token - The idempotency token you provided when you launched the instance.

  • dns-name - The public DNS name of the instance.

  • group-id - The ID of the security group for the instance. EC2-Classic only.

  • group-name - The name of the security group for the instance. EC2-Classic only.

  • hibernation-options.configured - A Boolean that indicates whether the instance is enabled for hibernation. A value of true means that the instance is enabled for hibernation.

  • host-id - The ID of the Dedicated Host on which the instance is running, if applicable.

  • hypervisor - The hypervisor type of the instance (ovm | xen).

  • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

  • image-id - The ID of the image used to launch the instance.

  • instance-id - The ID of the instance.

  • instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled).

  • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-type - The type of instance (for example, t2.micro).

  • instance.group-id - The ID of the security group for the instance.

  • instance.group-name - The name of the security group for the instance.

  • ip-address - The public IPv4 address of the instance.

  • kernel-id - The kernel ID.

  • key-name - The name of the key pair used when the instance was launched.

  • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

  • launch-time - The time when the instance was launched.

  • metadata-options.http-tokens - The metadata request authorization state (optional | required)

  • metadata-options.http-put-response-hop-limit - The http metadata request put response hop limit (integer, possible values 1 to 64)

  • metadata-options.http-endpoint - Enable or disable metadata access on http endpoint (enabled | disabled)

  • monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled).

  • network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface.

  • network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.

  • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface.

  • network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface.

  • network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

  • network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

  • network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

  • network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

  • network-interface.attachment.attachment-id - The ID of the interface attachment.

  • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

  • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • network-interface.attachment.device-index - The device index to which the network interface is attached.

  • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

  • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

  • network-interface.availability-zone - The Availability Zone for the network interface.

  • network-interface.description - The description of the network interface.

  • network-interface.group-id - The ID of a security group associated with the network interface.

  • network-interface.group-name - The name of a security group associated with the network interface.

  • network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface.

  • network-interface.mac-address - The MAC address of the network interface.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.owner-id - The ID of the owner of the network interface.

  • network-interface.private-dns-name - The private DNS name of the network interface.

  • network-interface.requester-id - The requester ID for the network interface.

  • network-interface.requester-managed - Indicates whether the network interface is being managed by AWS.

  • network-interface.status - The status of the network interface (available) | in-use).

  • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

  • network-interface.subnet-id - The ID of the subnet for the network interface.

  • network-interface.vpc-id - The ID of the VPC for the network interface.

  • owner-id - The AWS account ID of the instance owner.

  • placement-group-name - The name of the placement group for the instance.

  • placement-partition-number - The partition in which the instance is located.

  • platform - The platform. To list only Windows instances, use windows.

  • private-dns-name - The private IPv4 DNS name of the instance.

  • private-ip-address - The private IPv4 address of the instance.

  • product-code - The product code associated with the AMI used to launch the instance.

  • product-code.type - The type of product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you get one reservation ID. If you launch ten instances using the same launch request, you also get one reservation ID.

  • root-device-name - The device name of the root device volume (for example, /dev/sda1).

  • root-device-type - The type of the root device volume (ebs | instance-store).

  • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

  • spot-instance-request-id - The ID of the Spot Instance request.

  • state-reason-code - The reason code for the state change.

  • state-reason-message - A message that describes the state change.

  • subnet-id - The ID of the subnet for the instance.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

  • tenancy - The tenancy of an instance (dedicated | default | host).

  • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

  • vpc-id - The ID of the VPC that the instance is running in.

", + "documentation":"

The filters.

  • affinity - The affinity setting for an instance running on a Dedicated Host (default | host).

  • architecture - The instance architecture (i386 | x86_64 | arm64).

  • availability-zone - The Availability Zone of the instance.

  • block-device-mapping.attach-time - The attach time for an EBS volume mapped to the instance, for example, 2010-09-15T17:15:20.000Z.

  • block-device-mapping.delete-on-termination - A Boolean that indicates whether the EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh).

  • block-device-mapping.status - The status for the EBS volume (attaching | attached | detaching | detached).

  • block-device-mapping.volume-id - The volume ID of the EBS volume.

  • client-token - The idempotency token you provided when you launched the instance.

  • dns-name - The public DNS name of the instance.

  • group-id - The ID of the security group for the instance. EC2-Classic only.

  • group-name - The name of the security group for the instance. EC2-Classic only.

  • hibernation-options.configured - A Boolean that indicates whether the instance is enabled for hibernation. A value of true means that the instance is enabled for hibernation.

  • host-id - The ID of the Dedicated Host on which the instance is running, if applicable.

  • hypervisor - The hypervisor type of the instance (ovm | xen). The value xen is used for both Xen and Nitro hypervisors.

  • iam-instance-profile.arn - The instance profile associated with the instance. Specified as an ARN.

  • image-id - The ID of the image used to launch the instance.

  • instance-id - The ID of the instance.

  • instance-lifecycle - Indicates whether this is a Spot Instance or a Scheduled Instance (spot | scheduled).

  • instance-state-code - The state of the instance, as a 16-bit unsigned integer. The high byte is used for internal purposes and should be ignored. The low byte is set based on the state represented. The valid values are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping), and 80 (stopped).

  • instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped).

  • instance-type - The type of instance (for example, t2.micro).

  • instance.group-id - The ID of the security group for the instance.

  • instance.group-name - The name of the security group for the instance.

  • ip-address - The public IPv4 address of the instance.

  • kernel-id - The kernel ID.

  • key-name - The name of the key pair used when the instance was launched.

  • launch-index - When launching multiple instances, this is the index for the instance in the launch group (for example, 0, 1, 2, and so on).

  • launch-time - The time when the instance was launched.

  • metadata-options.http-tokens - The metadata request authorization state (optional | required)

  • metadata-options.http-put-response-hop-limit - The http metadata request put response hop limit (integer, possible values 1 to 64)

  • metadata-options.http-endpoint - Enable or disable metadata access on http endpoint (enabled | disabled)

  • monitoring-state - Indicates whether detailed monitoring is enabled (disabled | enabled).

  • network-interface.addresses.private-ip-address - The private IPv4 address associated with the network interface.

  • network-interface.addresses.primary - Specifies whether the IPv4 address of the network interface is the primary private IPv4 address.

  • network-interface.addresses.association.public-ip - The ID of the association of an Elastic IP address (IPv4) with a network interface.

  • network-interface.addresses.association.ip-owner-id - The owner ID of the private IPv4 address associated with the network interface.

  • network-interface.association.public-ip - The address of the Elastic IP address (IPv4) bound to the network interface.

  • network-interface.association.ip-owner-id - The owner of the Elastic IP address (IPv4) associated with the network interface.

  • network-interface.association.allocation-id - The allocation ID returned when you allocated the Elastic IP address (IPv4) for your network interface.

  • network-interface.association.association-id - The association ID returned when the network interface was associated with an IPv4 address.

  • network-interface.attachment.attachment-id - The ID of the interface attachment.

  • network-interface.attachment.instance-id - The ID of the instance to which the network interface is attached.

  • network-interface.attachment.instance-owner-id - The owner ID of the instance to which the network interface is attached.

  • network-interface.attachment.device-index - The device index to which the network interface is attached.

  • network-interface.attachment.status - The status of the attachment (attaching | attached | detaching | detached).

  • network-interface.attachment.attach-time - The time that the network interface was attached to an instance.

  • network-interface.attachment.delete-on-termination - Specifies whether the attachment is deleted when an instance is terminated.

  • network-interface.availability-zone - The Availability Zone for the network interface.

  • network-interface.description - The description of the network interface.

  • network-interface.group-id - The ID of a security group associated with the network interface.

  • network-interface.group-name - The name of a security group associated with the network interface.

  • network-interface.ipv6-addresses.ipv6-address - The IPv6 address associated with the network interface.

  • network-interface.mac-address - The MAC address of the network interface.

  • network-interface.network-interface-id - The ID of the network interface.

  • network-interface.owner-id - The ID of the owner of the network interface.

  • network-interface.private-dns-name - The private DNS name of the network interface.

  • network-interface.requester-id - The requester ID for the network interface.

  • network-interface.requester-managed - Indicates whether the network interface is being managed by AWS.

  • network-interface.status - The status of the network interface (available) | in-use).

  • network-interface.source-dest-check - Whether the network interface performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the network interface to perform network address translation (NAT) in your VPC.

  • network-interface.subnet-id - The ID of the subnet for the network interface.

  • network-interface.vpc-id - The ID of the VPC for the network interface.

  • owner-id - The AWS account ID of the instance owner.

  • placement-group-name - The name of the placement group for the instance.

  • placement-partition-number - The partition in which the instance is located.

  • platform - The platform. To list only Windows instances, use windows.

  • private-dns-name - The private IPv4 DNS name of the instance.

  • private-ip-address - The private IPv4 address of the instance.

  • product-code - The product code associated with the AMI used to launch the instance.

  • product-code.type - The type of product code (devpay | marketplace).

  • ramdisk-id - The RAM disk ID.

  • reason - The reason for the current state of the instance (for example, shows \"User Initiated [date]\" when you stop or terminate the instance). Similar to the state-reason-code filter.

  • requester-id - The ID of the entity that launched the instance on your behalf (for example, AWS Management Console, Auto Scaling, and so on).

  • reservation-id - The ID of the instance's reservation. A reservation ID is created any time you launch an instance. A reservation ID has a one-to-one relationship with an instance launch request, but can be associated with more than one instance if you launch multiple instances using the same launch request. For example, if you launch one instance, you get one reservation ID. If you launch ten instances using the same launch request, you also get one reservation ID.

  • root-device-name - The device name of the root device volume (for example, /dev/sda1).

  • root-device-type - The type of the root device volume (ebs | instance-store).

  • source-dest-check - Indicates whether the instance performs source/destination checking. A value of true means that checking is enabled, and false means that checking is disabled. The value must be false for the instance to perform network address translation (NAT) in your VPC.

  • spot-instance-request-id - The ID of the Spot Instance request.

  • state-reason-code - The reason code for the state change.

  • state-reason-message - A message that describes the state change.

  • subnet-id - The ID of the subnet for the instance.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

  • tenancy - The tenancy of an instance (dedicated | default | host).

  • virtualization-type - The virtualization type of the instance (paravirtual | hvm).

  • vpc-id - The ID of the VPC that the instance is running in.

", "locationName":"Filter" }, "InstanceIds":{ @@ -13176,7 +13237,7 @@ "locationName":"dryRun" }, "InternetGatewayIds":{ - "shape":"ValueStringList", + "shape":"InternetGatewayIdList", "documentation":"

One or more internet gateway IDs.

Default: Describes all your internet gateways.

", "locationName":"internetGatewayId" }, @@ -13209,7 +13270,7 @@ "type":"structure", "members":{ "PoolIds":{ - "shape":"ValueStringList", + "shape":"Ipv6PoolIdList", "documentation":"

The IDs of the IPv6 address pools.

", "locationName":"PoolId" }, @@ -13290,7 +13351,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "LaunchTemplateId":{ - "shape":"String", + "shape":"LaunchTemplateId", "documentation":"

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

" }, "LaunchTemplateName":{ @@ -13353,7 +13414,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "LaunchTemplateIds":{ - "shape":"ValueStringList", + "shape":"LaunchTemplateIdStringList", "documentation":"

One or more launch template IDs.

", "locationName":"LaunchTemplateId" }, @@ -13702,6 +13763,10 @@ "DescribeNatGatewaysRequest":{ "type":"structure", "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, "Filter":{ "shape":"FilterList", "documentation":"

One or more filters.

  • nat-gateway-id - The ID of the NAT gateway.

  • state - The state of the NAT gateway (pending | failed | available | deleting | deleted).

  • subnet-id - The ID of the subnet in which the NAT gateway resides.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • vpc-id - The ID of the VPC in which the NAT gateway resides.

" @@ -13711,7 +13776,7 @@ "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" }, "NatGatewayIds":{ - "shape":"ValueStringList", + "shape":"NatGatewayIdStringList", "documentation":"

One or more NAT gateway IDs.

", "locationName":"NatGatewayId" }, @@ -13755,7 +13820,7 @@ "locationName":"dryRun" }, "NetworkAclIds":{ - "shape":"ValueStringList", + "shape":"NetworkAclIdStringList", "documentation":"

One or more network ACL IDs.

Default: Describes all your network ACLs.

", "locationName":"NetworkAclId" }, @@ -13799,7 +13864,7 @@ "locationName":"dryRun" }, "NetworkInterfaceId":{ - "shape":"String", + "shape":"NetworkInterfaceId", "documentation":"

The ID of the network interface.

", "locationName":"networkInterfaceId" } @@ -13988,7 +14053,7 @@ "documentation":"

The token for the next page of results.

" }, "PrefixListIds":{ - "shape":"ValueStringList", + "shape":"PrefixListResourceIdStringList", "documentation":"

One or more prefix list IDs.

", "locationName":"PrefixListId" } @@ -14055,7 +14120,7 @@ "type":"structure", "members":{ "PoolIds":{ - "shape":"ValueStringList", + "shape":"PublicIpv4PoolIdStringList", "documentation":"

The IDs of the address pools.

", "locationName":"PoolId" }, @@ -14066,6 +14131,11 @@ "MaxResults":{ "shape":"PoolMaxResults", "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

", + "locationName":"Filter" } } }, @@ -14127,12 +14197,12 @@ "locationName":"Filter" }, "ReservedInstancesId":{ - "shape":"String", + "shape":"ReservationId", "documentation":"

One or more Reserved Instance IDs.

", "locationName":"reservedInstancesId" }, "ReservedInstancesListingId":{ - "shape":"String", + "shape":"ReservedInstancesListingId", "documentation":"

One or more Reserved Instance listing IDs.

", "locationName":"reservedInstancesListingId" } @@ -14336,7 +14406,7 @@ "locationName":"dryRun" }, "RouteTableIds":{ - "shape":"ValueStringList", + "shape":"RouteTableIdStringList", "documentation":"

One or more route table IDs.

Default: Describes all your route tables.

", "locationName":"RouteTableId" }, @@ -14567,7 +14637,7 @@ "documentation":"

The snapshot attribute you would like to view.

" }, "SnapshotId":{ - "shape":"String", + "shape":"SnapshotId", "documentation":"

The ID of the EBS snapshot.

" }, "DryRun":{ @@ -14697,7 +14767,7 @@ "locationName":"nextToken" }, "SpotFleetRequestId":{ - "shape":"String", + "shape":"SpotFleetRequestId", "documentation":"

The ID of the Spot Fleet request.

", "locationName":"spotFleetRequestId" } @@ -14758,7 +14828,7 @@ "locationName":"nextToken" }, "SpotFleetRequestId":{ - "shape":"String", + "shape":"SpotFleetRequestId", "documentation":"

The ID of the Spot Fleet request.

", "locationName":"spotFleetRequestId" }, @@ -14820,7 +14890,7 @@ "locationName":"nextToken" }, "SpotFleetRequestIds":{ - "shape":"ValueStringList", + "shape":"SpotFleetRequestIdList", "documentation":"

The IDs of the Spot Fleet requests.

", "locationName":"spotFleetRequestId" } @@ -15060,7 +15130,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

The filters.

  • key - The tag key.

  • resource-id - The ID of the resource.

  • resource-type - The resource type (customer-gateway | dedicated-host | dhcp-options | elastic-ip | fleet | fpga-image | image | instance | host-reservation | internet-gateway | launch-template | natgateway | network-acl | network-interface | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpc-peering-connection | vpn-connection | vpn-gateway).

  • tag:<key> - The key/value combination of the tag. For example, specify \"tag:Owner\" for the filter name and \"TeamA\" for the filter value to find resources with the tag \"Owner=TeamA\".

  • value - The tag value.

", + "documentation":"

The filters.

  • key - The tag key.

  • resource-id - The ID of the resource.

  • resource-type - The resource type (customer-gateway | dedicated-host | dhcp-options | elastic-ip | fleet | fpga-image | image | instance | host-reservation | internet-gateway | launch-template | natgateway | network-acl | network-interface | placement-group | reserved-instances | route-table | security-group | snapshot | spot-instances-request | subnet | volume | vpc | vpc-endpoint | vpc-endpoint-service | vpc-peering-connection | vpn-connection | vpn-gateway).

  • tag:<key> - The key/value combination of the tag. For example, specify \"tag:Owner\" for the filter name and \"TeamA\" for the filter value to find resources with the tag \"Owner=TeamA\".

  • value - The tag value.

", "locationName":"Filter" }, "MaxResults":{ @@ -15094,7 +15164,7 @@ "type":"structure", "members":{ "TrafficMirrorFilterIds":{ - "shape":"ValueStringList", + "shape":"TrafficMirrorFilterIdList", "documentation":"

The ID of the Traffic Mirror filter.

", "locationName":"TrafficMirrorFilterId" }, @@ -15136,7 +15206,7 @@ "type":"structure", "members":{ "TrafficMirrorSessionIds":{ - "shape":"ValueStringList", + "shape":"TrafficMirrorSessionIdList", "documentation":"

The ID of the Traffic Mirror session.

", "locationName":"TrafficMirrorSessionId" }, @@ -15178,7 +15248,7 @@ "type":"structure", "members":{ "TrafficMirrorTargetIds":{ - "shape":"ValueStringList", + "shape":"TrafficMirrorTargetIdList", "documentation":"

The ID of the Traffic Mirror targets.

", "locationName":"TrafficMirrorTargetId" }, @@ -15307,7 +15377,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

", + "documentation":"

One or more filters. The possible values are:

  • transit-gateway-attachment-id - The ID of the transit gateway attachment.

  • local-owner-id - The ID of your AWS account.

  • remote-owner-id - The ID of the AWS account in the remote Region that owns the transit gateway.

  • state - The state of the peering attachment (available | deleted | deleting | failed | modifying | pendingAcceptance | pending | rollingBack | rejected | rejecting).

  • transit-gateway-id - The ID of the transit gateway.

", "locationName":"Filter" }, "MaxResults":{ @@ -15474,7 +15544,7 @@ "documentation":"

The attribute of the volume. This parameter is required.

" }, "VolumeId":{ - "shape":"String", + "shape":"VolumeId", "documentation":"

The ID of the volume.

" }, "DryRun":{ @@ -15561,7 +15631,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

The filters. Supported filters: volume-id, modification-state, target-size, target-iops, target-volume-type, original-size, original-iops, original-volume-type, start-time.

", + "documentation":"

The filters. Supported filters: volume-id | modification-state | target-size | target-iops | target-volume-type | original-size | original-iops | original-volume-type | start-time | originalMultiAttachEnabled | targetMultiAttachEnabled.

", "locationName":"Filter" }, "NextToken":{ @@ -15594,7 +15664,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

The filters.

  • attachment.attach-time - The time stamp when the attachment initiated.

  • attachment.delete-on-termination - Whether the volume is deleted on instance termination.

  • attachment.device - The device name specified in the block device mapping (for example, /dev/sda1).

  • attachment.instance-id - The ID of the instance the volume is attached to.

  • attachment.status - The attachment state (attaching | attached | detaching).

  • availability-zone - The Availability Zone in which the volume was created.

  • create-time - The time stamp when the volume was created.

  • encrypted - Indicates whether the volume is encrypted (true | false)

  • size - The size of the volume, in GiB.

  • snapshot-id - The snapshot from which the volume was created.

  • status - The status of the volume (creating | available | in-use | deleting | deleted | error).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • volume-id - The volume ID.

  • volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.

", + "documentation":"

The filters.

  • attachment.attach-time - The time stamp when the attachment initiated.

  • attachment.delete-on-termination - Whether the volume is deleted on instance termination.

  • attachment.device - The device name specified in the block device mapping (for example, /dev/sda1).

  • attachment.instance-id - The ID of the instance the volume is attached to.

  • attachment.status - The attachment state (attaching | attached | detaching).

  • availability-zone - The Availability Zone in which the volume was created.

  • create-time - The time stamp when the volume was created.

  • encrypted - Indicates whether the volume is encrypted (true | false)

  • multi-attach-enabled - Indicates whether the volume is enabled for Multi-Attach (true | false)

  • fast-restored - Indicates whether the volume was created from a snapshot that is enabled for fast snapshot restore (true | false).

  • size - The size of the volume, in GiB.

  • snapshot-id - The snapshot from which the volume was created.

  • status - The status of the volume (creating | available | in-use | deleting | deleted | error).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • volume-id - The volume ID.

  • volume-type - The Amazon EBS volume type. This can be gp2 for General Purpose SSD, io1 for Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for Magnetic volumes.

", "locationName":"Filter" }, "VolumeIds":{ @@ -15646,7 +15716,7 @@ "documentation":"

The VPC attribute.

" }, "VpcId":{ - "shape":"String", + "shape":"VpcId", "documentation":"

The ID of the VPC.

" }, "DryRun":{ @@ -15758,7 +15828,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ConnectionNotificationId":{ - "shape":"String", + "shape":"ConnectionNotificationId", "documentation":"

The ID of the notification.

" }, "Filters":{ @@ -15836,7 +15906,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointServiceIdList", "documentation":"

The IDs of one or more services.

", "locationName":"ServiceId" }, @@ -15879,7 +15949,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceId":{ - "shape":"String", + "shape":"VpcEndpointServiceId", "documentation":"

The ID of the service.

" }, "Filters":{ @@ -15969,7 +16039,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "VpcEndpointIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointIdList", "documentation":"

One or more endpoint IDs.

", "locationName":"VpcEndpointId" }, @@ -16024,7 +16094,7 @@ "locationName":"dryRun" }, "VpcPeeringConnectionIds":{ - "shape":"ValueStringList", + "shape":"VpcPeeringConnectionIdList", "documentation":"

One or more VPC peering connection IDs.

Default: Describes all your VPC peering connections.

", "locationName":"VpcPeeringConnectionId" }, @@ -16259,7 +16329,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

The ID of the instance.

" + "documentation":"

The ID of the instance. If you are detaching a Multi-Attach enabled volume, you must specify an instance ID.

" }, "VolumeId":{ "shape":"VolumeId", @@ -16362,7 +16432,7 @@ "DhcpOptionsIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"DhcpOptionsId", "locationName":"DhcpOptionsId" } }, @@ -16589,11 +16659,11 @@ ], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the propagation route table.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "DryRun":{ @@ -16626,6 +16696,10 @@ "RouteTableId":{ "shape":"RouteTableId", "documentation":"

The ID of the route table.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" } }, "documentation":"

Contains the parameters for DisableVgwRoutePropagation.

" @@ -16705,7 +16779,7 @@ "documentation":"

The ID of the Client VPN endpoint from which to disassociate the target network.

" }, "AssociationId":{ - "shape":"String", + "shape":"ClientVpnAssociationId", "documentation":"

The ID of the target network association.

" }, "DryRun":{ @@ -16734,7 +16808,7 @@ "required":["AssociationId"], "members":{ "AssociationId":{ - "shape":"String", + "shape":"IamInstanceProfileAssociationId", "documentation":"

The ID of the IAM instance profile association.

" } } @@ -16795,11 +16869,11 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "SubnetIds":{ @@ -16830,11 +16904,11 @@ ], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "DryRun":{ @@ -17113,7 +17187,7 @@ }, "Encrypted":{ "shape":"Boolean", - "documentation":"

Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

In no case can you remove encryption from an encrypted volume.

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported Instance Types.

", + "documentation":"

Indicates whether the encryption state of an EBS volume is changed while being restored from a backing snapshot. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

In no case can you remove encryption from an encrypted volume.

Encrypted volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported Instance Types.

This parameter is not returned by .

", "locationName":"encrypted" } }, @@ -17272,10 +17346,11 @@ }, "documentation":"

Describes the status of an Elastic Graphics accelerator.

" }, + "ElasticGpuId":{"type":"string"}, "ElasticGpuIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"ElasticGpuId", "locationName":"item" } }, @@ -17644,11 +17719,11 @@ ], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the propagation route table.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "DryRun":{ @@ -17681,6 +17756,10 @@ "RouteTableId":{ "shape":"RouteTableId", "documentation":"

The ID of the route table. The routing table must be associated with the same VPC that the virtual private gateway is attached to.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" } }, "documentation":"

Contains the parameters for EnableVgwRoutePropagation.

" @@ -18005,10 +18084,11 @@ }, "documentation":"

Describes an export image task.

" }, + "ExportImageTaskId":{"type":"string"}, "ExportImageTaskIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ExportImageTaskId", "locationName":"ExportImageTaskId" } }, @@ -18064,7 +18144,7 @@ "ExportTaskIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ExportTaskId", "locationName":"ExportTaskId" } }, @@ -18175,7 +18255,7 @@ ], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the route table.

" }, "Filters":{ @@ -18203,6 +18283,7 @@ } } }, + "ExportVmTaskId":{"type":"string"}, "FailedQueuedPurchaseDeletion":{ "type":"structure", "members":{ @@ -18285,7 +18366,7 @@ "locationName":"createTime" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

", "locationName":"fleetId" }, @@ -18392,11 +18473,11 @@ "termination" ] }, + "FleetId":{"type":"string"}, "FleetIdSet":{ "type":"list", - "member":{"shape":"FleetIdentifier"} + "member":{"shape":"FleetId"} }, - "FleetIdentifier":{"type":"string"}, "FleetLaunchTemplateConfig":{ "type":"structure", "members":{ @@ -18510,8 +18591,8 @@ "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance.

" }, "SubnetId":{ - "shape":"String", - "documentation":"

The ID of the subnet in which to launch the instances.

" + "shape":"SubnetId", + "documentation":"

The IDs of the subnets in which to launch the instances. Separate multiple subnet IDs using commas (for example, subnet-1234abcdeexample1, subnet-0987cdef6example2). A request of type instant can have only one subnet ID.

" }, "AvailabilityZone":{ "shape":"String", @@ -18557,7 +18638,7 @@ "type":"structure", "members":{ "LaunchTemplateId":{ - "shape":"String", + "shape":"LaunchTemplateId", "documentation":"

The ID of the launch template.

" }, "LaunchTemplateName":{ @@ -18610,7 +18691,7 @@ "type":"structure", "members":{ "CreationTime":{ - "shape":"DateTime", + "shape":"MillisecondDateTime", "documentation":"

The date and time the flow log was created.

", "locationName":"creationTime" }, @@ -18669,14 +18750,34 @@ "documentation":"

The format of the flow log record.

", "locationName":"logFormat" }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags for the flow log.

", + "locationName":"tagSet" + }, "MaxAggregationInterval":{ "shape":"Integer", - "documentation":"

The maximum interval of time, in seconds, during which a flow of packets is captured and aggregated into a flow log record.

For network interfaces attached to Nitro-based instances, the aggregation interval is always 60 seconds (1 minute), regardless of the specified value.

", + "documentation":"

The maximum interval of time, in seconds, during which a flow of packets is captured and aggregated into a flow log record.

When a network interface is attached to a Nitro-based instance, the aggregation interval is always 60 seconds (1 minute) or less, regardless of the specified value.

Valid Values: 60 | 600

", "locationName":"maxAggregationInterval" } }, "documentation":"

Describes a flow log.

" }, + "FlowLogIdList":{ + "type":"list", + "member":{ + "shape":"VpcFlowLogId", + "locationName":"item" + } + }, + "FlowLogResourceId":{"type":"string"}, + "FlowLogResourceIds":{ + "type":"list", + "member":{ + "shape":"FlowLogResourceId", + "locationName":"item" + } + }, "FlowLogSet":{ "type":"list", "member":{ @@ -18865,7 +18966,7 @@ "FpgaImageIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"FpgaImageId", "locationName":"item" } }, @@ -18927,7 +19028,7 @@ "required":["PoolId"], "members":{ "PoolId":{ - "shape":"String", + "shape":"Ipv6PoolEc2Id", "documentation":"

The ID of the IPv6 address pool.

" }, "NextToken":{ @@ -19031,7 +19132,7 @@ "required":["PoolId"], "members":{ "PoolId":{ - "shape":"String", + "shape":"CoipPoolId", "documentation":"

The ID of the address pool.

" }, "Filters":{ @@ -19385,7 +19486,7 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "Filters":{ @@ -19426,7 +19527,7 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "Filters":{ @@ -19468,7 +19569,7 @@ "required":["TransitGatewayRouteTableId"], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "Filters":{ @@ -19510,7 +19611,7 @@ "required":["TransitGatewayRouteTableId"], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "Filters":{ @@ -19651,14 +19752,14 @@ "GroupIds":{ "type":"list", "member":{ - "shape":"String", + "shape":"SecurityGroupId", "locationName":"item" } }, "GroupNameStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"SecurityGroupName", "locationName":"GroupName" } }, @@ -20028,10 +20129,11 @@ }, "documentation":"

Details about the Dedicated Host Reservation and associated Dedicated Hosts.

" }, + "HostReservationId":{"type":"string"}, "HostReservationIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"HostReservationId", "locationName":"item" } }, @@ -20145,6 +20247,7 @@ }, "documentation":"

Describes an association between an IAM instance profile and an instance.

" }, + "IamInstanceProfileAssociationId":{"type":"string"}, "IamInstanceProfileAssociationSet":{ "type":"list", "member":{ @@ -20271,12 +20374,12 @@ }, "PlatformDetails":{ "shape":"String", - "documentation":"

The platform details associated with the billing code of the AMI. For more information, see AMI Billing Information in the Amazon Elastic Compute Cloud User Guide.

", + "documentation":"

The platform details associated with the billing code of the AMI. For more information, see Obtaining Billing Information in the Amazon Elastic Compute Cloud User Guide.

", "locationName":"platformDetails" }, "UsageOperation":{ "shape":"String", - "documentation":"

The operation of the Amazon EC2 instance and the billing code associated with the AMI. usageOperation corresponds to the lineitem/Operation column on your AWS Cost and Usage Report. For more information, see AMI Billing Information in the Amazon Elastic Compute Cloud User Guide.

", + "documentation":"

The operation of the Amazon EC2 instance and the billing code that is associated with the AMI. usageOperation corresponds to the lineitem/Operation column on your AWS Cost and Usage Report and in the AWS Price List API. For the list of UsageOperation codes, see Platform Details and Usage Operation Billing Codes in the Amazon Elastic Compute Cloud User Guide.

", "locationName":"usageOperation" }, "ProductCodes":{ @@ -20431,7 +20534,7 @@ "documentation":"

The format of the disk image being imported.

Valid values: VHD | VMDK | OVA

" }, "SnapshotId":{ - "shape":"String", + "shape":"SnapshotId", "documentation":"

The ID of the EBS snapshot to be used for importing the snapshot.

" }, "Url":{ @@ -20456,7 +20559,7 @@ "ImageIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ImageId", "locationName":"ImageId" } }, @@ -20767,6 +20870,7 @@ }, "documentation":"

Describes an import image task.

" }, + "ImportImageTaskId":{"type":"string"}, "ImportImageTaskList":{ "type":"list", "member":{ @@ -20823,7 +20927,7 @@ "locationName":"privateIpAddress" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

[EC2-VPC] The ID of the subnet in which to launch the instance.

", "locationName":"subnetId" }, @@ -20963,7 +21067,7 @@ "locationName":"dryRun" }, "KeyName":{ - "shape":"KeyPairName", + "shape":"String", "documentation":"

A unique name for the key pair.

", "locationName":"keyName" }, @@ -21072,6 +21176,14 @@ }, "documentation":"

Describes an import snapshot task.

" }, + "ImportSnapshotTaskId":{"type":"string"}, + "ImportSnapshotTaskIdList":{ + "type":"list", + "member":{ + "shape":"ImportSnapshotTaskId", + "locationName":"ImportTaskId" + } + }, "ImportSnapshotTaskList":{ "type":"list", "member":{ @@ -21083,7 +21195,7 @@ "ImportTaskIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ImportImageTaskId", "locationName":"ImportTaskId" } }, @@ -21333,7 +21445,7 @@ }, "Hypervisor":{ "shape":"HypervisorType", - "documentation":"

The hypervisor type of the instance.

", + "documentation":"

The hypervisor type of the instance. The value xen is used for both Xen and Nitro hypervisors.

", "locationName":"hypervisor" }, "IamInstanceProfile":{ @@ -21678,7 +21790,7 @@ "type":"structure", "members":{ "InstanceId":{ - "shape":"String", + "shape":"InstanceId", "documentation":"

The ID of the instance.

" }, "CpuCredits":{ @@ -21739,7 +21851,7 @@ "InstanceIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"InstanceId", "locationName":"InstanceId" } }, @@ -22102,7 +22214,7 @@ }, "NetworkInterfaceId":{ "shape":"String", - "documentation":"

The ID of the network interface.

", + "documentation":"

The ID of the network interface.

If you are creating a Spot Fleet, omit this parameter because you can’t specify a network interface ID in a launch specification.

", "locationName":"networkInterfaceId" }, "PrivateIpAddress":{ @@ -22177,7 +22289,7 @@ "type":"structure", "members":{ "InstanceId":{ - "shape":"String", + "shape":"InstanceId", "documentation":"

The instance to specify which volumes should be snapshotted.

" }, "ExcludeBootVolume":{ @@ -22913,6 +23025,13 @@ } }, "InternetGatewayId":{"type":"string"}, + "InternetGatewayIdList":{ + "type":"list", + "member":{ + "shape":"InternetGatewayId", + "locationName":"item" + } + }, "InternetGatewayList":{ "type":"list", "member":{ @@ -22998,6 +23117,7 @@ "locationName":"item" } }, + "Ipv4PoolEc2Id":{"type":"string"}, "Ipv6Address":{"type":"string"}, "Ipv6AddressList":{ "type":"list", @@ -23074,6 +23194,14 @@ }, "documentation":"

Describes an IPv6 address pool.

" }, + "Ipv6PoolEc2Id":{"type":"string"}, + "Ipv6PoolIdList":{ + "type":"list", + "member":{ + "shape":"Ipv6PoolEc2Id", + "locationName":"item" + } + }, "Ipv6PoolMaxResults":{ "type":"integer", "max":1000, @@ -23120,7 +23248,7 @@ "KeyNameStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"KeyPairName", "locationName":"KeyName" } }, @@ -23150,10 +23278,11 @@ }, "documentation":"

Describes a key pair.

" }, + "KeyPairId":{"type":"string"}, "KeyPairIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"KeyPairId", "locationName":"KeyPairId" } }, @@ -23553,12 +23682,12 @@ "locationName":"iops" }, "KmsKeyId":{ - "shape":"String", + "shape":"KmsKeyId", "documentation":"

The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption.

", "locationName":"kmsKeyId" }, "SnapshotId":{ - "shape":"String", + "shape":"SnapshotId", "documentation":"

The ID of the snapshot.

", "locationName":"snapshotId" }, @@ -23591,11 +23720,11 @@ "documentation":"

The number of I/O operations per second (IOPS) that the volume supports. For io1, this represents the number of IOPS that are provisioned for the volume. For gp2, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about General Purpose SSD baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Condition: This parameter is required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.

" }, "KmsKeyId":{ - "shape":"String", + "shape":"KmsKeyId", "documentation":"

The ARN of the symmetric AWS Key Management Service (AWS KMS) CMK used for encryption.

" }, "SnapshotId":{ - "shape":"String", + "shape":"SnapshotId", "documentation":"

The ID of the snapshot.

" }, "VolumeSize":{ @@ -23728,6 +23857,13 @@ "documentation":"

An IAM instance profile.

" }, "LaunchTemplateId":{"type":"string"}, + "LaunchTemplateIdStringList":{ + "type":"list", + "member":{ + "shape":"LaunchTemplateId", + "locationName":"item" + } + }, "LaunchTemplateInstanceMarketOptions":{ "type":"structure", "members":{ @@ -23860,7 +23996,7 @@ "locationName":"ipv6AddressesSet" }, "NetworkInterfaceId":{ - "shape":"String", + "shape":"NetworkInterfaceId", "documentation":"

The ID of the network interface.

", "locationName":"networkInterfaceId" }, @@ -23880,7 +24016,7 @@ "locationName":"secondaryPrivateIpAddressCount" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

The ID of the subnet for the network interface.

", "locationName":"subnetId" } @@ -23931,7 +24067,7 @@ "documentation":"

One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses.

" }, "NetworkInterfaceId":{ - "shape":"String", + "shape":"NetworkInterfaceId", "documentation":"

The ID of the network interface.

" }, "PrivateIpAddress":{ @@ -23947,7 +24083,7 @@ "documentation":"

The number of secondary private IPv4 addresses to assign to a network interface.

" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

The ID of the subnet for the network interface.

" } }, @@ -24109,11 +24245,11 @@ "documentation":"

The affinity setting for an instance on a Dedicated Host.

" }, "GroupName":{ - "shape":"String", + "shape":"PlacementGroupName", "documentation":"

The name of the placement group for the instance.

" }, "HostId":{ - "shape":"String", + "shape":"DedicatedHostId", "documentation":"

The ID of the Dedicated Host for the instance.

" }, "Tenancy":{ @@ -24146,7 +24282,7 @@ "type":"structure", "members":{ "LaunchTemplateId":{ - "shape":"String", + "shape":"LaunchTemplateId", "documentation":"

The ID of the launch template.

" }, "LaunchTemplateName":{ @@ -24467,7 +24603,7 @@ "type":"structure", "members":{ "LocalGatewayId":{ - "shape":"String", + "shape":"LocalGatewayId", "documentation":"

The ID of the local gateway.

", "locationName":"localGatewayId" }, @@ -24494,10 +24630,11 @@ }, "documentation":"

Describes a local gateway.

" }, + "LocalGatewayId":{"type":"string"}, "LocalGatewayIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"LocalGatewayId", "locationName":"item" } }, @@ -24515,7 +24652,7 @@ "locationName":"destinationCidrBlock" }, "LocalGatewayVirtualInterfaceGroupId":{ - "shape":"String", + "shape":"LocalGatewayVirtualInterfaceGroupId", "documentation":"

The ID of the virtual interface group.

", "locationName":"localGatewayVirtualInterfaceGroupId" }, @@ -24530,7 +24667,7 @@ "locationName":"state" }, "LocalGatewayRouteTableId":{ - "shape":"String", + "shape":"LocalGatewayRoutetableId", "documentation":"

The ID of the local gateway route table.

", "locationName":"localGatewayRouteTableId" } @@ -24563,7 +24700,7 @@ "locationName":"localGatewayRouteTableId" }, "LocalGatewayId":{ - "shape":"String", + "shape":"LocalGatewayId", "documentation":"

The ID of the local gateway.

", "locationName":"localGatewayId" }, @@ -24588,7 +24725,7 @@ "LocalGatewayRouteTableIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"LocalGatewayRoutetableId", "locationName":"item" } }, @@ -24603,12 +24740,12 @@ "type":"structure", "members":{ "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId":{ - "shape":"String", + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociationId", "documentation":"

The ID of the association.

", "locationName":"localGatewayRouteTableVirtualInterfaceGroupAssociationId" }, "LocalGatewayVirtualInterfaceGroupId":{ - "shape":"String", + "shape":"LocalGatewayVirtualInterfaceGroupId", "documentation":"

The ID of the virtual interface group.

", "locationName":"localGatewayVirtualInterfaceGroupId" }, @@ -24618,7 +24755,7 @@ "locationName":"localGatewayId" }, "LocalGatewayRouteTableId":{ - "shape":"String", + "shape":"LocalGatewayId", "documentation":"

The ID of the local gateway route table.

", "locationName":"localGatewayRouteTableId" }, @@ -24635,10 +24772,11 @@ }, "documentation":"

Describes an association between a local gateway route table and a virtual interface group.

" }, + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId":{"type":"string"}, "LocalGatewayRouteTableVirtualInterfaceGroupAssociationIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociationId", "locationName":"item" } }, @@ -24653,7 +24791,7 @@ "type":"structure", "members":{ "LocalGatewayRouteTableVpcAssociationId":{ - "shape":"String", + "shape":"LocalGatewayRouteTableVpcAssociationId", "documentation":"

The ID of the association.

", "locationName":"localGatewayRouteTableVpcAssociationId" }, @@ -24685,10 +24823,11 @@ }, "documentation":"

Describes an association between a local gateway route table and a VPC.

" }, + "LocalGatewayRouteTableVpcAssociationId":{"type":"string"}, "LocalGatewayRouteTableVpcAssociationIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"LocalGatewayRouteTableVpcAssociationId", "locationName":"item" } }, @@ -24706,6 +24845,7 @@ "propagated" ] }, + "LocalGatewayRoutetableId":{"type":"string"}, "LocalGatewaySet":{ "type":"list", "member":{ @@ -24717,7 +24857,7 @@ "type":"structure", "members":{ "LocalGatewayVirtualInterfaceId":{ - "shape":"String", + "shape":"LocalGatewayVirtualInterfaceId", "documentation":"

The ID of the virtual interface.

", "locationName":"localGatewayVirtualInterfaceId" }, @@ -24763,7 +24903,7 @@ "type":"structure", "members":{ "LocalGatewayVirtualInterfaceGroupId":{ - "shape":"String", + "shape":"LocalGatewayVirtualInterfaceGroupId", "documentation":"

The ID of the virtual interface group.

", "locationName":"localGatewayVirtualInterfaceGroupId" }, @@ -24785,10 +24925,11 @@ }, "documentation":"

Describes a local gateway virtual interface group.

" }, + "LocalGatewayVirtualInterfaceGroupId":{"type":"string"}, "LocalGatewayVirtualInterfaceGroupIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"LocalGatewayVirtualInterfaceGroupId", "locationName":"item" } }, @@ -24799,10 +24940,11 @@ "locationName":"item" } }, + "LocalGatewayVirtualInterfaceId":{"type":"string"}, "LocalGatewayVirtualInterfaceIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"LocalGatewayVirtualInterfaceId", "locationName":"item" } }, @@ -24858,6 +25000,44 @@ }, "MemorySize":{"type":"long"}, "MillisecondDateTime":{"type":"timestamp"}, + "ModifyAvailabilityZoneGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "OptInStatus" + ], + "members":{ + "GroupName":{ + "shape":"String", + "documentation":"

The name of the Availability Zone Group.

" + }, + "OptInStatus":{ + "shape":"ModifyAvailabilityZoneOptInStatus", + "documentation":"

Indicates whether to enable or disable membership. The valid values are opted-in. You must contact AWS Support to disable an Availability Zone group.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ModifyAvailabilityZoneGroupResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "documentation":"

Is true if the request succeeds, and an error otherwise.

", + "locationName":"return" + } + } + }, + "ModifyAvailabilityZoneOptInStatus":{ + "type":"string", + "enum":[ + "opted-in", + "not-opted-in" + ] + }, "ModifyCapacityReservationRequest":{ "type":"structure", "required":["CapacityReservationId"], @@ -24929,6 +25109,15 @@ "DryRun":{ "shape":"Boolean", "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "SecurityGroupIds":{ + "shape":"ClientVpnSecurityGroupIdSet", + "documentation":"

The IDs of one or more security groups to apply to the target network.

", + "locationName":"SecurityGroupId" + }, + "VpcId":{ + "shape":"VpcId", + "documentation":"

The ID of the VPC to associate with the Client VPN endpoint.

" } } }, @@ -25013,7 +25202,7 @@ "documentation":"

Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.

" }, "FleetId":{ - "shape":"FleetIdentifier", + "shape":"FleetId", "documentation":"

The ID of the EC2 Fleet.

" }, "TargetCapacitySpecification":{ @@ -25417,7 +25606,7 @@ "required":["InstanceId"], "members":{ "InstanceId":{ - "shape":"String", + "shape":"InstanceId", "documentation":"

The ID of the instance.

" }, "HttpTokens":{ @@ -25860,15 +26049,15 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "AddSubnetIds":{ - "shape":"ValueStringList", + "shape":"TransitGatewaySubnetIdList", "documentation":"

The IDs of one or more subnets to add. You can specify at most one subnet per Availability Zone.

" }, "RemoveSubnetIds":{ - "shape":"ValueStringList", + "shape":"TransitGatewaySubnetIdList", "documentation":"

The IDs of one or more subnets to remove.

" }, "Options":{ @@ -26032,32 +26221,32 @@ "documentation":"

A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format.

" }, "AddRouteTableIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointRouteTableIdList", "documentation":"

(Gateway endpoint) One or more route tables IDs to associate with the endpoint.

", "locationName":"AddRouteTableId" }, "RemoveRouteTableIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointRouteTableIdList", "documentation":"

(Gateway endpoint) One or more route table IDs to disassociate from the endpoint.

", "locationName":"RemoveRouteTableId" }, "AddSubnetIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointSubnetIdList", "documentation":"

(Interface endpoint) One or more subnet IDs in which to serve the endpoint.

", "locationName":"AddSubnetId" }, "RemoveSubnetIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointSubnetIdList", "documentation":"

(Interface endpoint) One or more subnets IDs in which to remove the endpoint.

", "locationName":"RemoveSubnetId" }, "AddSecurityGroupIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointSecurityGroupIdList", "documentation":"

(Interface endpoint) One or more security group IDs to associate with the network interface.

", "locationName":"AddSecurityGroupId" }, "RemoveSecurityGroupIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointSecurityGroupIdList", "documentation":"

(Interface endpoint) One or more security group IDs to disassociate from the network interface.

", "locationName":"RemoveSecurityGroupId" }, @@ -26087,7 +26276,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceId":{ - "shape":"ServiceId", + "shape":"VpcEndpointServiceId", "documentation":"

The ID of the service.

" }, "PrivateDnsName":{ @@ -26133,7 +26322,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceId":{ - "shape":"String", + "shape":"VpcEndpointServiceId", "documentation":"

The ID of the service.

" }, "AddAllowedPrincipals":{ @@ -26606,6 +26795,13 @@ } }, "NatGatewayId":{"type":"string"}, + "NatGatewayIdStringList":{ + "type":"list", + "member":{ + "shape":"NatGatewayId", + "locationName":"item" + } + }, "NatGatewayList":{ "type":"list", "member":{ @@ -26747,6 +26943,13 @@ } }, "NetworkAclId":{"type":"string"}, + "NetworkAclIdStringList":{ + "type":"list", + "member":{ + "shape":"NetworkAclId", + "locationName":"item" + } + }, "NetworkAclList":{ "type":"list", "member":{ @@ -26977,7 +27180,7 @@ "type":"structure", "members":{ "AttachmentId":{ - "shape":"String", + "shape":"NetworkInterfaceAttachmentId", "documentation":"

The ID of the network interface attachment.

", "locationName":"attachmentId" }, @@ -27007,7 +27210,7 @@ "NetworkInterfaceIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"NetworkInterfaceId", "locationName":"item" } }, @@ -27072,9 +27275,10 @@ }, "documentation":"

Describes a permission for a network interface.

" }, + "NetworkInterfacePermissionId":{"type":"string"}, "NetworkInterfacePermissionIdList":{ "type":"list", - "member":{"shape":"String"} + "member":{"shape":"NetworkInterfacePermissionId"} }, "NetworkInterfacePermissionList":{ "type":"list", @@ -27626,12 +27830,12 @@ "members":{ "AvailabilityZone":{ "shape":"String", - "documentation":"

The Availability Zone of the instance.

If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region.

", + "documentation":"

The Availability Zone of the instance.

If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region.

This parameter is not supported by .

", "locationName":"availabilityZone" }, "Affinity":{ "shape":"String", - "documentation":"

The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the ImportInstance command.

", + "documentation":"

The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the ImportInstance command.

This parameter is not supported by .

", "locationName":"affinity" }, "GroupName":{ @@ -27641,27 +27845,27 @@ }, "PartitionNumber":{ "shape":"Integer", - "documentation":"

The number of the partition the instance is in. Valid only if the placement group strategy is set to partition.

", + "documentation":"

The number of the partition the instance is in. Valid only if the placement group strategy is set to partition.

This parameter is not supported by .

", "locationName":"partitionNumber" }, "HostId":{ "shape":"String", - "documentation":"

The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the ImportInstance command.

", + "documentation":"

The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the ImportInstance command.

This parameter is not supported by .

", "locationName":"hostId" }, "Tenancy":{ "shape":"Tenancy", - "documentation":"

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the ImportInstance command.

", + "documentation":"

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the ImportInstance command.

This parameter is not supported by .

", "locationName":"tenancy" }, "SpreadDomain":{ "shape":"String", - "documentation":"

Reserved for future use.

", + "documentation":"

Reserved for future use.

This parameter is not supported by .

", "locationName":"spreadDomain" }, "HostResourceGroupArn":{ "shape":"String", - "documentation":"

The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the Tenancy parameter or set it to host.

", + "documentation":"

The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the Tenancy parameter or set it to host.

This parameter is not supported by .

", "locationName":"hostResourceGroupArn" } }, @@ -27703,10 +27907,11 @@ }, "documentation":"

Describes a placement group.

" }, + "PlacementGroupId":{"type":"string"}, "PlacementGroupIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"PlacementGroupId", "locationName":"GroupId" } }, @@ -27755,7 +27960,7 @@ }, "PlacementGroupStringList":{ "type":"list", - "member":{"shape":"String"} + "member":{"shape":"PlacementGroupName"} }, "PlacementResponse":{ "type":"structure", @@ -27870,6 +28075,14 @@ "locationName":"item" } }, + "PrefixListResourceId":{"type":"string"}, + "PrefixListResourceIdStringList":{ + "type":"list", + "member":{ + "shape":"PrefixListResourceId", + "locationName":"item" + } + }, "PrefixListSet":{ "type":"list", "member":{ @@ -28235,10 +28448,22 @@ "shape":"Integer", "documentation":"

The total number of available addresses.

", "locationName":"totalAvailableAddressCount" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Any tags for the address pool.

", + "locationName":"tagSet" } }, "documentation":"

Describes an IPv4 address pool.

" }, + "PublicIpv4PoolIdStringList":{ + "type":"list", + "member":{ + "shape":"Ipv4PoolEc2Id", + "locationName":"item" + } + }, "PublicIpv4PoolRange":{ "type":"structure", "members":{ @@ -28422,7 +28647,7 @@ "documentation":"

The number of Reserved Instances to purchase.

" }, "ReservedInstancesOfferingId":{ - "shape":"String", + "shape":"ReservedInstancesOfferingId", "documentation":"

The ID of the Reserved Instance offering to purchase.

" }, "DryRun":{ @@ -28680,7 +28905,7 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "GroupIpAddress":{ @@ -28688,7 +28913,7 @@ "documentation":"

The IP address assigned to the transit gateway multicast group.

" }, "NetworkInterfaceIds":{ - "shape":"ValueStringList", + "shape":"TransitGatewayNetworkInterfaceIdList", "documentation":"

The group members' network interface IDs to register with the transit gateway multicast group.

" }, "DryRun":{ @@ -28711,7 +28936,7 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "GroupIpAddress":{ @@ -28719,7 +28944,7 @@ "documentation":"

The IP address assigned to the transit gateway multicast group.

" }, "NetworkInterfaceIds":{ - "shape":"ValueStringList", + "shape":"TransitGatewayNetworkInterfaceIdList", "documentation":"

The group sources' network interface IDs to register with the transit gateway multicast group.

" }, "DryRun":{ @@ -28743,7 +28968,7 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the transit gateway peering attachment.

" }, "DryRun":{ @@ -28767,7 +28992,7 @@ "required":["TransitGatewayAttachmentId"], "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "DryRun":{ @@ -28798,11 +29023,11 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceId":{ - "shape":"ServiceId", + "shape":"VpcEndpointServiceId", "documentation":"

The ID of the service.

" }, "VpcEndpointIds":{ - "shape":"ValueStringList", + "shape":"VpcEndpointIdList", "documentation":"

The IDs of one or more VPC endpoints.

", "locationName":"VpcEndpointId" } @@ -28904,7 +29129,7 @@ "documentation":"

The IAM instance profile.

" }, "AssociationId":{ - "shape":"String", + "shape":"IamInstanceProfileAssociationId", "documentation":"

The ID of the existing IAM instance profile association.

" } } @@ -29040,7 +29265,7 @@ "locationName":"egressOnlyInternetGatewayId" }, "GatewayId":{ - "shape":"RouteTableGatewayId", + "shape":"RouteGatewayId", "documentation":"

The ID of an internet gateway or virtual private gateway.

", "locationName":"gatewayId" }, @@ -29063,7 +29288,7 @@ "documentation":"

The ID of a transit gateway.

" }, "LocalGatewayId":{ - "shape":"String", + "shape":"LocalGatewayId", "documentation":"

The ID of the local gateway.

" }, "NetworkInterfaceId":{ @@ -29134,11 +29359,11 @@ "documentation":"

The CIDR range used for the destination match. Routing decisions are based on the most specific match.

" }, "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the route table.

" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

" }, "Blackhole":{ @@ -29230,7 +29455,7 @@ "RequestHostIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"DedicatedHostId", "locationName":"item" } }, @@ -29251,7 +29476,7 @@ "type":"structure", "members":{ "KernelId":{ - "shape":"String", + "shape":"KernelId", "documentation":"

The ID of the kernel.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User Provided Kernels in the Amazon Elastic Compute Cloud User Guide.

" }, "EbsOptimized":{ @@ -29273,7 +29498,7 @@ "locationName":"NetworkInterface" }, "ImageId":{ - "shape":"String", + "shape":"ImageId", "documentation":"

The ID of the AMI.

" }, "InstanceType":{ @@ -29281,7 +29506,7 @@ "documentation":"

The instance type. For more information, see Instance Types in the Amazon Elastic Compute Cloud User Guide.

" }, "KeyName":{ - "shape":"String", + "shape":"KeyPairName", "documentation":"

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.

" }, "Monitoring":{ @@ -29293,7 +29518,7 @@ "documentation":"

The placement for the instance.

" }, "RamDiskId":{ - "shape":"String", + "shape":"RamdiskId", "documentation":"

The ID of the RAM disk.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User Provided Kernels in the Amazon Elastic Compute Cloud User Guide.

" }, "DisableApiTermination":{ @@ -29472,12 +29697,12 @@ "type":"structure", "members":{ "SecurityGroupIds":{ - "shape":"ValueStringList", + "shape":"RequestSpotLaunchSpecificationSecurityGroupIdList", "documentation":"

One or more security group IDs.

", "locationName":"SecurityGroupId" }, "SecurityGroups":{ - "shape":"ValueStringList", + "shape":"RequestSpotLaunchSpecificationSecurityGroupList", "documentation":"

One or more security groups. When requesting instances in a VPC, you must specify the IDs of the security groups. When requesting instances in EC2-Classic, you can specify the names or the IDs of the security groups.

", "locationName":"SecurityGroup" }, @@ -29502,7 +29727,7 @@ "locationName":"iamInstanceProfile" }, "ImageId":{ - "shape":"String", + "shape":"ImageId", "documentation":"

The ID of the AMI.

", "locationName":"imageId" }, @@ -29512,12 +29737,12 @@ "locationName":"instanceType" }, "KernelId":{ - "shape":"String", + "shape":"KernelId", "documentation":"

The ID of the kernel.

", "locationName":"kernelId" }, "KeyName":{ - "shape":"String", + "shape":"KeyPairName", "documentation":"

The name of the key pair.

", "locationName":"keyName" }, @@ -29537,12 +29762,12 @@ "locationName":"placement" }, "RamdiskId":{ - "shape":"String", + "shape":"RamdiskId", "documentation":"

The ID of the RAM disk.

", "locationName":"ramdiskId" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

The IDs of the subnets in which to launch the instance. To specify multiple subnets, separate them using commas; for example, \"subnet-1234abcdeexample1, subnet-0987cdef6example2\".

", "locationName":"subnetId" }, @@ -29554,6 +29779,20 @@ }, "documentation":"

Describes the launch specification for an instance.

" }, + "RequestSpotLaunchSpecificationSecurityGroupIdList":{ + "type":"list", + "member":{ + "shape":"SecurityGroupId", + "locationName":"item" + } + }, + "RequestSpotLaunchSpecificationSecurityGroupList":{ + "type":"list", + "member":{ + "shape":"SecurityGroupName", + "locationName":"item" + } + }, "Reservation":{ "type":"structure", "members":{ @@ -29585,6 +29824,7 @@ }, "documentation":"

Describes a reservation.

" }, + "ReservationId":{"type":"string"}, "ReservationList":{ "type":"list", "member":{ @@ -29625,7 +29865,7 @@ "ReservedInstanceIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"ReservationId", "locationName":"ReservedInstanceId" } }, @@ -29827,7 +30067,7 @@ "ReservedInstancesIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ReservationId", "locationName":"ReservedInstancesId" } }, @@ -29953,10 +30193,11 @@ }, "documentation":"

Describes a Reserved Instance modification.

" }, + "ReservedInstancesModificationId":{"type":"string"}, "ReservedInstancesModificationIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"ReservedInstancesModificationId", "locationName":"ReservedInstancesModificationId" } }, @@ -30071,9 +30312,10 @@ }, "documentation":"

Describes a Reserved Instance offering.

" }, + "ReservedInstancesOfferingId":{"type":"string"}, "ReservedInstancesOfferingIdStringList":{ "type":"list", - "member":{"shape":"String"} + "member":{"shape":"ReservedInstancesOfferingId"} }, "ReservedInstancesOfferingList":{ "type":"list", @@ -30237,7 +30479,7 @@ }, "ResourceIdList":{ "type":"list", - "member":{"shape":"String"} + "member":{"shape":"TaggableResourceId"} }, "ResourceList":{ "type":"list", @@ -30284,7 +30526,8 @@ "vpc", "vpc-peering-connection", "vpn-connection", - "vpn-gateway" + "vpn-gateway", + "vpc-flow-log" ] }, "ResponseError":{ @@ -30537,7 +30780,7 @@ "locationName":"dryRun" }, "GroupId":{ - "shape":"String", + "shape":"SecurityGroupId", "documentation":"

The ID of the security group.

", "locationName":"groupId" }, @@ -30590,11 +30833,11 @@ "documentation":"

The start of port range for the TCP and UDP protocols, or an ICMP type number. For the ICMP type number, use -1 to specify all ICMP types.

" }, "GroupId":{ - "shape":"String", + "shape":"SecurityGroupId", "documentation":"

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "GroupName":{ - "shape":"String", + "shape":"SecurityGroupName", "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

" }, "IpPermissions":{ @@ -30714,6 +30957,7 @@ }, "documentation":"

Describes a route in a route table.

" }, + "RouteGatewayId":{"type":"string"}, "RouteList":{ "type":"list", "member":{ @@ -30847,8 +31091,14 @@ "failed" ] }, - "RouteTableGatewayId":{"type":"string"}, "RouteTableId":{"type":"string"}, + "RouteTableIdStringList":{ + "type":"list", + "member":{ + "shape":"RouteTableId", + "locationName":"item" + } + }, "RouteTableList":{ "type":"list", "member":{ @@ -30905,11 +31155,11 @@ "locationName":"Ipv6Address" }, "KernelId":{ - "shape":"String", + "shape":"KernelId", "documentation":"

The ID of the kernel.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

" }, "KeyName":{ - "shape":"String", + "shape":"KeyPairName", "documentation":"

The name of the key pair. You can create a key pair using CreateKeyPair or ImportKeyPair.

If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.

" }, "MaxCount":{ @@ -30929,7 +31179,7 @@ "documentation":"

The placement for the instance.

" }, "RamdiskId":{ - "shape":"String", + "shape":"RamdiskId", "documentation":"

The ID of the RAM disk to select. Some kernels require additional drivers at launch. Check the kernel requirements for information about whether you need to specify a RAM disk. To find kernel requirements, go to the AWS Resource Center and search for the kernel ID.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see PV-GRUB in the Amazon Elastic Compute Cloud User Guide.

" }, "SecurityGroupIds":{ @@ -30943,7 +31193,7 @@ "locationName":"SecurityGroup" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

[EC2-VPC] The ID of the subnet to launch the instance into.

If you specify a network interface, you must specify any subnets as part of the network interface.

" }, "UserData":{ @@ -30957,7 +31207,7 @@ }, "ClientToken":{ "shape":"String", - "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

Constraints: Maximum 64 ASCII characters

", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, a randomly generated token is used for the request to ensure idempotency.

For more information, see Ensuring Idempotency.

Constraints: Maximum 64 ASCII characters

", "locationName":"clientToken" }, "DisableApiTermination":{ @@ -31279,7 +31529,7 @@ "ScheduledInstanceIdRequestSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"ScheduledInstanceId", "locationName":"ScheduledInstanceId" } }, @@ -31393,7 +31643,7 @@ "documentation":"

The number of I/O operations per second (IOPS) that the volume supports. For io1 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. For more information about gp2 baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types in the Amazon Elastic Compute Cloud User Guide.

Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for gp2 volumes.

Condition: This parameter is required for requests to create io1volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes.

" }, "SnapshotId":{ - "shape":"String", + "shape":"SnapshotId", "documentation":"

The ID of the snapshot.

" }, "VolumeSize":{ @@ -31456,7 +31706,7 @@ "documentation":"

The IAM instance profile.

" }, "ImageId":{ - "shape":"String", + "shape":"ImageId", "documentation":"

The ID of the Amazon Machine Image (AMI).

" }, "InstanceType":{ @@ -31464,11 +31714,11 @@ "documentation":"

The instance type.

" }, "KernelId":{ - "shape":"String", + "shape":"KernelId", "documentation":"

The ID of the kernel.

" }, "KeyName":{ - "shape":"String", + "shape":"KeyPairName", "documentation":"

The name of the key pair.

" }, "Monitoring":{ @@ -31485,7 +31735,7 @@ "documentation":"

The placement information.

" }, "RamdiskId":{ - "shape":"String", + "shape":"RamdiskId", "documentation":"

The ID of the RAM disk.

" }, "SecurityGroupIds":{ @@ -31494,7 +31744,7 @@ "locationName":"SecurityGroupId" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

The ID of the subnet in which to launch the instances.

" }, "UserData":{ @@ -31548,7 +31798,7 @@ "locationName":"Ipv6Address" }, "NetworkInterfaceId":{ - "shape":"String", + "shape":"NetworkInterfaceId", "documentation":"

The ID of the network interface.

" }, "PrivateIpAddress":{ @@ -31565,7 +31815,7 @@ "documentation":"

The number of secondary private IPv4 addresses.

" }, "SubnetId":{ - "shape":"String", + "shape":"SubnetId", "documentation":"

The ID of the subnet.

" } }, @@ -31586,7 +31836,7 @@ "documentation":"

The Availability Zone.

" }, "GroupName":{ - "shape":"String", + "shape":"PlacementGroupName", "documentation":"

The name of the placement group.

" } }, @@ -31609,7 +31859,7 @@ "ScheduledInstancesSecurityGroupIdSet":{ "type":"list", "member":{ - "shape":"String", + "shape":"SecurityGroupId", "locationName":"SecurityGroupId" } }, @@ -31621,7 +31871,7 @@ ], "members":{ "LocalGatewayRouteTableId":{ - "shape":"String", + "shape":"LocalGatewayRoutetableId", "documentation":"

The ID of the local gateway route table.

" }, "Filters":{ @@ -31662,7 +31912,7 @@ "type":"structure", "members":{ "TransitGatewayMulticastDomainId":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "documentation":"

The ID of the transit gateway multicast domain.

" }, "Filters":{ @@ -31707,7 +31957,7 @@ ], "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

" }, "Filters":{ @@ -31786,10 +32036,11 @@ }, "documentation":"

Describes a security group

" }, + "SecurityGroupId":{"type":"string"}, "SecurityGroupIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"SecurityGroupId", "locationName":"SecurityGroupId" } }, @@ -31816,6 +32067,7 @@ "locationName":"item" } }, + "SecurityGroupName":{"type":"string"}, "SecurityGroupReference":{ "type":"structure", "members":{ @@ -31847,7 +32099,7 @@ "SecurityGroupStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"SecurityGroupName", "locationName":"SecurityGroup" } }, @@ -32015,7 +32267,6 @@ "locationName":"item" } }, - "ServiceId":{"type":"string"}, "ServiceState":{ "type":"string", "enum":[ @@ -32262,7 +32513,7 @@ "SnapshotIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"SnapshotId", "locationName":"SnapshotId" } }, @@ -32560,7 +32811,7 @@ "locationName":"activityStatus" }, "CreateTime":{ - "shape":"DateTime", + "shape":"MillisecondDateTime", "documentation":"

The creation date and time of the request.

", "locationName":"createTime" }, @@ -32578,6 +32829,11 @@ "shape":"BatchState", "documentation":"

The state of the Spot Fleet request.

", "locationName":"spotFleetRequestState" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags for a Spot Fleet resource.

", + "locationName":"tagSet" } }, "documentation":"

Describes a Spot Fleet request.

" @@ -32698,6 +32954,11 @@ "shape":"Integer", "documentation":"

The number of Spot pools across which to allocate your target Spot capacity. Valid only when Spot AllocationStrategy is set to lowest-price. Spot Fleet selects the cheapest Spot pools and evenly allocates your target Spot capacity across the number of Spot pools that you specify.

", "locationName":"instancePoolsToUseCount" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The key-value pair for tagging the Spot Fleet request on creation. The value for ResourceType must be spot-fleet-request, otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the launch template (valid only if you use LaunchTemplateConfigs) or in the SpotFleetTagSpecification (valid only if you use LaunchSpecifications). For information about tagging after launch, see Tagging Your Resources.

", + "locationName":"TagSpecification" } }, "documentation":"

Describes the configuration of a Spot Fleet request.

" @@ -32710,12 +32971,19 @@ } }, "SpotFleetRequestId":{"type":"string"}, + "SpotFleetRequestIdList":{ + "type":"list", + "member":{ + "shape":"SpotFleetRequestId", + "locationName":"item" + } + }, "SpotFleetTagSpecification":{ "type":"structure", "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

The type of resource. Currently, the only resource type that is supported is instance.

", + "documentation":"

The type of resource. Currently, the only resource type that is supported is instance. To tag the Spot Fleet request on creation, use the TagSpecifications parameter in SpotFleetRequestConfigData .

", "locationName":"resourceType" }, "Tags":{ @@ -32770,7 +33038,7 @@ "locationName":"fault" }, "InstanceId":{ - "shape":"String", + "shape":"InstanceId", "documentation":"

The instance ID, if an instance has been launched to fulfill the Spot Instance request.

", "locationName":"instanceId" }, @@ -32842,10 +33110,11 @@ }, "documentation":"

Describes a Spot Instance request.

" }, + "SpotInstanceRequestId":{"type":"string"}, "SpotInstanceRequestIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"SpotInstanceRequestId", "locationName":"SpotInstanceRequestId" } }, @@ -33196,7 +33465,7 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "ServiceId":{ - "shape":"ServiceId", + "shape":"VpcEndpointServiceId", "documentation":"

The ID of the endpoint service.

" } } @@ -33457,7 +33726,7 @@ "SubnetIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"SubnetId", "locationName":"SubnetId" } }, @@ -33610,7 +33879,7 @@ "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

The type of resource to tag. Currently, the resource types that support tagging on creation are: capacity-reservation | client-vpn-endpoint | dedicated-host | fleet | fpga-image | instance | key-pair | launch-template | placement-group | snapshot | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-route-table | volume.

To tag a resource after it has been created, see CreateTags.

", + "documentation":"

The type of resource to tag. Currently, the resource types that support tagging on creation are: capacity-reservation | client-vpn-endpoint | dedicated-host | fleet | fpga-image | instance | key-pair | launch-template | | natgateway | spot-fleet-request | placement-group | snapshot | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target | transit-gateway | transit-gateway-attachment | transit-gateway-route-table | vpc-endpoint (for interface VPC endpoints)| vpc-endpoint-service (for gateway VPC endpoints) | volume | vpc-flow-log.

To tag a resource after it has been created, see CreateTags.

", "locationName":"resourceType" }, "Tags":{ @@ -33628,6 +33897,7 @@ "locationName":"item" } }, + "TaggableResourceId":{"type":"string"}, "TargetCapacitySpecification":{ "type":"structure", "members":{ @@ -33702,7 +33972,7 @@ "documentation":"

The number of instances the Covertible Reserved Instance offering can be applied to. This parameter is reserved and cannot be specified in a request

" }, "OfferingId":{ - "shape":"String", + "shape":"ReservedInstancesOfferingId", "documentation":"

The Convertible Reserved Instance offering ID.

" } }, @@ -33836,7 +34106,7 @@ "documentation":"

The ID of the Client VPN endpoint to which the client is connected.

" }, "ConnectionId":{ - "shape":"String", + "shape":"VpnConnectionId", "documentation":"

The ID of the client connection to be terminated.

" }, "Username":{ @@ -33975,6 +34245,13 @@ "documentation":"

Describes the Traffic Mirror filter.

" }, "TrafficMirrorFilterId":{"type":"string"}, + "TrafficMirrorFilterIdList":{ + "type":"list", + "member":{ + "shape":"TrafficMirrorFilterId", + "locationName":"item" + } + }, "TrafficMirrorFilterRule":{ "type":"structure", "members":{ @@ -34181,6 +34458,13 @@ "member":{"shape":"TrafficMirrorSessionField"} }, "TrafficMirrorSessionId":{"type":"string"}, + "TrafficMirrorSessionIdList":{ + "type":"list", + "member":{ + "shape":"TrafficMirrorSessionId", + "locationName":"item" + } + }, "TrafficMirrorSessionSet":{ "type":"list", "member":{ @@ -34230,6 +34514,13 @@ "documentation":"

Describes a Traffic Mirror target.

" }, "TrafficMirrorTargetId":{"type":"string"}, + "TrafficMirrorTargetIdList":{ + "type":"list", + "member":{ + "shape":"TrafficMirrorTargetId", + "locationName":"item" + } + }, "TrafficMirrorTargetSet":{ "type":"list", "member":{ @@ -34257,6 +34548,7 @@ "ALL" ] }, + "TransitAssociationGatewayId":{"type":"string"}, "TransitGateway":{ "type":"structure", "members":{ @@ -34307,12 +34599,12 @@ "type":"structure", "members":{ "TransitGatewayRouteTableId":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the transit gateway route table.

", "locationName":"transitGatewayRouteTableId" }, "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

", "locationName":"transitGatewayAttachmentId" }, @@ -34415,9 +34707,10 @@ }, "documentation":"

Describes an association.

" }, + "TransitGatewayAttachmentId":{"type":"string"}, "TransitGatewayAttachmentIdStringList":{ "type":"list", - "member":{"shape":"String"} + "member":{"shape":"TransitGatewayAttachmentId"} }, "TransitGatewayAttachmentList":{ "type":"list", @@ -34479,7 +34772,7 @@ "TransitGatewayIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"TransitGatewayId", "locationName":"item" } }, @@ -34641,10 +34934,11 @@ }, "documentation":"

Describes the multicast domain associations.

" }, + "TransitGatewayMulticastDomainId":{"type":"string"}, "TransitGatewayMulticastDomainIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"TransitGatewayMulticastDomainId", "locationName":"item" } }, @@ -34769,6 +35063,13 @@ }, "documentation":"

Describes the members registered with the transit gateway multicast group.

" }, + "TransitGatewayNetworkInterfaceIdList":{ + "type":"list", + "member":{ + "shape":"NetworkInterfaceId", + "locationName":"item" + } + }, "TransitGatewayOptions":{ "type":"structure", "members":{ @@ -34872,7 +35173,7 @@ "type":"structure", "members":{ "TransitGatewayAttachmentId":{ - "shape":"String", + "shape":"TransitGatewayAttachmentId", "documentation":"

The ID of the attachment.

", "locationName":"transitGatewayAttachmentId" }, @@ -35087,10 +35388,11 @@ "locationName":"item" } }, + "TransitGatewayRouteTableId":{"type":"string"}, "TransitGatewayRouteTableIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"TransitGatewayRouteTableId", "locationName":"item" } }, @@ -35160,6 +35462,13 @@ "deleted" ] }, + "TransitGatewaySubnetIdList":{ + "type":"list", + "member":{ + "shape":"SubnetId", + "locationName":"item" + } + }, "TransitGatewayVpcAttachment":{ "type":"structure", "members":{ @@ -35228,7 +35537,7 @@ }, "Ipv6Support":{ "shape":"Ipv6SupportValue", - "documentation":"

Indicates whether IPv6 support is enabled.

", + "documentation":"

Indicates whether IPv6 support is disabled.

", "locationName":"ipv6Support" } }, @@ -35525,11 +35834,11 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "GroupId":{ - "shape":"String", + "shape":"SecurityGroupId", "documentation":"

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "GroupName":{ - "shape":"String", + "shape":"SecurityGroupName", "documentation":"

[Default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

" }, "IpPermissions":{ @@ -35557,11 +35866,11 @@ "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" }, "GroupId":{ - "shape":"String", + "shape":"SecurityGroupId", "documentation":"

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "GroupName":{ - "shape":"String", + "shape":"SecurityGroupName", "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

" }, "IpPermissions":{ @@ -35877,6 +36186,11 @@ "shape":"Boolean", "documentation":"

Indicates whether the volume was created using fast snapshot restore.

", "locationName":"fastRestored" + }, + "MultiAttachEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether Amazon EBS Multi-Attach is enabled.

", + "locationName":"multiAttachEnabled" } }, "documentation":"

Describes a volume.

" @@ -35957,7 +36271,7 @@ "VolumeIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"VolumeId", "locationName":"VolumeId" } }, @@ -36094,6 +36408,29 @@ "locationName":"item" } }, + "VolumeStatusAttachmentStatus":{ + "type":"structure", + "members":{ + "IoPerformance":{ + "shape":"String", + "documentation":"

The maximum IOPS supported by the attached instance.

", + "locationName":"ioPerformance" + }, + "InstanceId":{ + "shape":"String", + "documentation":"

The ID of the attached instance.

", + "locationName":"instanceId" + } + }, + "documentation":"

Information about the instances to which the volume is attached.

" + }, + "VolumeStatusAttachmentStatusList":{ + "type":"list", + "member":{ + "shape":"VolumeStatusAttachmentStatus", + "locationName":"item" + } + }, "VolumeStatusDetails":{ "type":"structure", "members":{ @@ -36144,6 +36481,11 @@ "shape":"MillisecondDateTime", "documentation":"

The earliest start time of the event.

", "locationName":"notBefore" + }, + "InstanceId":{ + "shape":"String", + "documentation":"

The ID of the instance associated with the event.

", + "locationName":"instanceId" } }, "documentation":"

Describes a volume status event.

" @@ -36211,6 +36553,11 @@ "shape":"VolumeStatusInfo", "documentation":"

The volume status.

", "locationName":"volumeStatus" + }, + "AttachmentStatuses":{ + "shape":"VolumeStatusAttachmentStatusList", + "documentation":"

Information about the instances to which the volume is attached.

", + "locationName":"attachmentStatuses" } }, "documentation":"

Describes the volume status.

" @@ -36405,7 +36752,7 @@ "VpcClassicLinkIdList":{ "type":"list", "member":{ - "shape":"String", + "shape":"VpcId", "locationName":"VpcId" } }, @@ -36556,6 +36903,35 @@ } }, "VpcEndpointId":{"type":"string"}, + "VpcEndpointIdList":{ + "type":"list", + "member":{ + "shape":"VpcEndpointId", + "locationName":"item" + } + }, + "VpcEndpointRouteTableIdList":{ + "type":"list", + "member":{ + "shape":"RouteTableId", + "locationName":"item" + } + }, + "VpcEndpointSecurityGroupIdList":{ + "type":"list", + "member":{ + "shape":"SecurityGroupId", + "locationName":"item" + } + }, + "VpcEndpointServiceId":{"type":"string"}, + "VpcEndpointServiceIdList":{ + "type":"list", + "member":{ + "shape":"VpcEndpointServiceId", + "locationName":"item" + } + }, "VpcEndpointSet":{ "type":"list", "member":{ @@ -36563,6 +36939,13 @@ "locationName":"item" } }, + "VpcEndpointSubnetIdList":{ + "type":"list", + "member":{ + "shape":"SubnetId", + "locationName":"item" + } + }, "VpcEndpointType":{ "type":"string", "enum":[ @@ -36570,11 +36953,12 @@ "Gateway" ] }, + "VpcFlowLogId":{"type":"string"}, "VpcId":{"type":"string"}, "VpcIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"VpcId", "locationName":"VpcId" } }, @@ -36596,15 +36980,15 @@ "documentation":"

Information about the state of the CIDR block.

", "locationName":"ipv6CidrBlockState" }, - "Ipv6Pool":{ - "shape":"String", - "documentation":"

The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.

", - "locationName":"ipv6Pool" - }, "NetworkBorderGroup":{ "shape":"String", "documentation":"

The name of the location from which we advertise the IPV6 CIDR block.

", "locationName":"networkBorderGroup" + }, + "Ipv6Pool":{ + "shape":"String", + "documentation":"

The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.

", + "locationName":"ipv6Pool" } }, "documentation":"

Describes an IPv6 CIDR block associated with a VPC.

" @@ -36660,6 +37044,13 @@ "documentation":"

Describes a VPC peering connection.

" }, "VpcPeeringConnectionId":{"type":"string"}, + "VpcPeeringConnectionIdList":{ + "type":"list", + "member":{ + "shape":"VpcPeeringConnectionId", + "locationName":"item" + } + }, "VpcPeeringConnectionList":{ "type":"list", "member":{ @@ -36840,7 +37231,7 @@ "VpnConnectionIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"VpnConnectionId", "locationName":"VpnConnectionId" } }, @@ -36943,7 +37334,7 @@ "VpnGatewayIdStringList":{ "type":"list", "member":{ - "shape":"String", + "shape":"VpnGatewayId", "locationName":"VpnGatewayId" } }, @@ -37070,7 +37461,7 @@ "locationName":"IKEVersion" } }, - "documentation":"

The tunnel options for a VPN connection.

" + "documentation":"

The tunnel options for a single VPN tunnel.

" }, "VpnTunnelOptionsSpecificationsList":{ "type":"list", diff --git a/botocore/data/ecs/2014-11-13/service-2.json b/botocore/data/ecs/2014-11-13/service-2.json index 44764a5d..b4b62e39 100644 --- a/botocore/data/ecs/2014-11-13/service-2.json +++ b/botocore/data/ecs/2014-11-13/service-2.json @@ -62,7 +62,7 @@ {"shape":"PlatformTaskDefinitionIncompatibilityException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see UpdateService.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they're in the RUNNING state and the container instance that they're hosted on is reported as healthy by the load balancer.

There are two service scheduler strategies available:

  • REPLICA - The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service Scheduler Concepts in the Amazon Elastic Container Service Developer Guide.

  • DAEMON - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service Scheduler Concepts in the Amazon Elastic Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. The deployment is triggered by changing properties, such as the task definition or the desired count of a service, with an UpdateService operation. The default value for a replica service for minimumHealthyPercent is 100%. The default value for a daemon service for minimumHealthyPercent is 0%.

If a service is using the ECS deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment, as a percentage of the desired number of tasks (rounded up to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they're in the RUNNING state and they're reported as healthy by the load balancer. The default value for minimum healthy percent is 100%.

If a service is using the ECS deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desired number of tasks (rounded down to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used, although they're currently visible when describing your service.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic:

  • Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes).

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy) with the placementStrategy parameter):

    • Sort the valid container instances, giving priority to instances that have the fewest number of running tasks for this service in their respective Availability Zone. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.

" + "documentation":"

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they're in the RUNNING state and the container instance that they're hosted on is reported as healthy by the load balancer.

There are two service scheduler strategies available:

  • REPLICA - The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service Scheduler Concepts in the Amazon Elastic Container Service Developer Guide.

  • DAEMON - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service Scheduler Concepts in the Amazon Elastic Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. The deployment is triggered by changing properties, such as the task definition or the desired count of a service, with an UpdateService operation. The default value for a replica service for minimumHealthyPercent is 100%. The default value for a daemon service for minimumHealthyPercent is 0%.

If a service is using the ECS deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment, as a percentage of the desired number of tasks (rounded up to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they're in the RUNNING state and they're reported as healthy by the load balancer. The default value for minimum healthy percent is 100%.

If a service is using the ECS deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desired number of tasks (rounded down to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used, although they're currently visible when describing your service.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic:

  • Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes).

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy) with the placementStrategy parameter):

    • Sort the valid container instances, giving priority to instances that have the fewest number of running tasks for this service in their respective Availability Zone. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.

" }, "CreateTaskSet":{ "name":"CreateTaskSet", @@ -1362,11 +1362,11 @@ }, "startTimeout":{ "shape":"BoxedInteger", - "documentation":"

Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS, or HEALTHY status. If a startTimeout value is specified for containerB and it does not reach the desired status within that time then containerA will give up and not start. This results in the task transitioning to a STOPPED state.

For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to enable a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

For tasks using the Fargate launch type, the task or service requires platform version 1.3.0 or later.

" + "documentation":"

Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a COMPLETE, SUCCESS, or HEALTHY status. If a startTimeout value is specified for containerB and it does not reach the desired status within that time then containerA will give up and not start. This results in the task transitioning to a STOPPED state.

For tasks using the Fargate launch type, this parameter requires that the task or service uses platform version 1.3.0 or later. If this parameter is not specified, the default value of 3 minutes is used.

For tasks using the EC2 launch type, if the startTimeout parameter is not specified, the value set for the Amazon ECS container agent configuration variable ECS_CONTAINER_START_TIMEOUT is used by default. If neither the startTimeout parameter or the ECS_CONTAINER_START_TIMEOUT agent configuration variable are set, then the default values of 3 minutes for Linux containers and 8 minutes on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to enable a container start timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" }, "stopTimeout":{ "shape":"BoxedInteger", - "documentation":"

Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.

For tasks using the Fargate launch type, the max stopTimeout value is 2 minutes and the task or service requires platform version 1.3.0 or later.

For tasks using the EC2 launch type, the stop timeout value for the container takes precedence over the ECS_CONTAINER_STOP_TIMEOUT container agent configuration parameter, if used. Container instances require at least version 1.26.0 of the container agent to enable a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.

For tasks using the Fargate launch type, the task or service requires platform version 1.3.0 or later. The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.

For tasks using the EC2 launch type, if the stopTimeout parameter is not specified, the value set for the Amazon ECS container agent configuration variable ECS_CONTAINER_STOP_TIMEOUT is used by default. If neither the stopTimeout parameter or the ECS_CONTAINER_STOP_TIMEOUT agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to enable a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you are using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

" }, "hostname":{ "shape":"String", @@ -1779,7 +1779,7 @@ }, "healthCheckGracePeriodSeconds":{ "shape":"BoxedInteger", - "documentation":"

The period of time, in seconds, that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. This is only valid if your service is configured to use a load balancer. If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds. During that time, the ECS service scheduler ignores health check status. This grace period can prevent the ECS service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

" + "documentation":"

The period of time, in seconds, that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of 0 is used.

If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

" }, "schedulingStrategy":{ "shape":"SchedulingStrategy", @@ -3066,11 +3066,11 @@ "members":{ "targetGroupArn":{ "shape":"String", - "documentation":"

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are using a Classic Load Balancer this should be omitted.

For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service Developer Guide.

For services using the CODE_DEPLOY deployment controller, you are required to define two target groups for the load balancer. For more information, see Blue/Green Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

If your service's task definition uses the awsvpc network mode (which is required for the Fargate launch type), you must choose ip as the target type, not instance, when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

" + "documentation":"

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are using a Classic Load Balancer the target group ARN should be omitted.

For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service Developer Guide.

For services using the CODE_DEPLOY deployment controller, you are required to define two target groups for the load balancer. For more information, see Blue/Green Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

If your service's task definition uses the awsvpc network mode (which is required for the Fargate launch type), you must choose ip as the target type, not instance, when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

" }, "loadBalancerName":{ "shape":"String", - "documentation":"

The name of the load balancer to associate with the Amazon ECS service or task set.

A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load Balancer or a Network Load Balancer this should be omitted.

" + "documentation":"

The name of the load balancer to associate with the Amazon ECS service or task set.

A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.

" }, "containerName":{ "shape":"String", @@ -3081,7 +3081,7 @@ "documentation":"

The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they are launched on must allow ingress traffic on the hostPort of the port mapping.

" } }, - "documentation":"

Details on the load balancer or load balancers to use with a service or task set.

" + "documentation":"

The load balancer configuration to use with a service or task set.

For specific notes and restrictions regarding the use of load balancers with services and task sets, see the CreateService and CreateTaskSet actions.

" }, "LoadBalancers":{ "type":"list", @@ -5140,6 +5140,14 @@ "documentation":"

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

" }, "networkConfiguration":{"shape":"NetworkConfiguration"}, + "placementConstraints":{ + "shape":"PlacementConstraints", + "documentation":"

An array of task placement constraint objects to update the service to use. If no value is specified, the existing placement constraints for the service will remain unchanged. If this value is specified, it will override any existing placement constraints defined for the service. To remove all existing placement constraints, specify an empty array.

You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at runtime).

" + }, + "placementStrategy":{ + "shape":"PlacementStrategies", + "documentation":"

The task placement strategy objects to update the service to use. If no value is specified, the existing placement strategy for the service will remain unchanged. If this value is specified, it will override the existing placement strategy defined for the service. To remove an existing placement strategy, specify an empty object.

You can specify a maximum of five strategy rules per service.

" + }, "platformVersion":{ "shape":"String", "documentation":"

The platform version on which your tasks in the service are running. A platform version is only specified for tasks using the Fargate launch type. If a platform version is not specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

" diff --git a/botocore/data/efs/2015-02-01/service-2.json b/botocore/data/efs/2015-02-01/service-2.json index fe0e7e9a..68374320 100644 --- a/botocore/data/efs/2015-02-01/service-2.json +++ b/botocore/data/efs/2015-02-01/service-2.json @@ -337,7 +337,7 @@ {"shape":"InvalidPolicyException"}, {"shape":"IncorrectFileSystemLifeCycleState"} ], - "documentation":"

Applies an Amazon EFS FileSystemPolicy to an Amazon EFS file system. A file system policy is an IAM resource-based policy and can contain multiple policy statements. A file system always has exactly one file system policy, which can be the default policy or an explicit policy set or updated using this API operation. When an explicit policy is set, it overrides the default policy. For more information about the default file system policy, see Using Resource-based Policies with EFS.

This operation requires permissions for the elasticfilesystem:PutFileSystemPolicy action.

" + "documentation":"

Applies an Amazon EFS FileSystemPolicy to an Amazon EFS file system. A file system policy is an IAM resource-based policy and can contain multiple policy statements. A file system always has exactly one file system policy, which can be the default policy or an explicit policy set or updated using this API operation. When an explicit policy is set, it overrides the default policy. For more information about the default file system policy, see Default EFS File System Policy.

This operation requires permissions for the elasticfilesystem:PutFileSystemPolicy action.

" }, "PutLifecycleConfiguration":{ "name":"PutLifecycleConfiguration", @@ -568,7 +568,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The ID of the AWS KMS CMK to be used to protect the encrypted file system. This parameter is only required if you want to use a nondefault CMK. If this parameter is not specified, the default CMK for Amazon EFS is used. This ID can be in one of the following formats:

  • Key ID - A unique identifier of the key, for example 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An Amazon Resource Name (ARN) for the key, for example arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  • Key alias - A previously created display name for a key, for example alias/projectKey1.

  • Key alias ARN - An ARN for a key alias, for example arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

If KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter must be set to true.

" + "documentation":"

The ID of the AWS KMS CMK to be used to protect the encrypted file system. This parameter is only required if you want to use a nondefault CMK. If this parameter is not specified, the default CMK for Amazon EFS is used. This ID can be in one of the following formats:

  • Key ID - A unique identifier of the key, for example 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - An Amazon Resource Name (ARN) for the key, for example arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  • Key alias - A previously created display name for a key, for example alias/projectKey1.

  • Key alias ARN - An ARN for a key alias, for example arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

If KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter must be set to true.

EFS accepts only symmetric CMKs. You cannot use asymmetric CMKs with EFS file systems.

" }, "ThroughputMode":{ "shape":"ThroughputMode", diff --git a/botocore/data/eks/2017-11-01/service-2.json b/botocore/data/eks/2017-11-01/service-2.json index 8d9b1ac7..38ce3f80 100644 --- a/botocore/data/eks/2017-11-01/service-2.json +++ b/botocore/data/eks/2017-11-01/service-2.json @@ -495,6 +495,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster.

" + }, + "encryptionConfig":{ + "shape":"EncryptionConfigList", + "documentation":"

The encryption configuration for the cluster.

" } }, "documentation":"

An object representing an Amazon EKS cluster.

" @@ -551,6 +555,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define.

" + }, + "encryptionConfig":{ + "shape":"EncryptionConfigList", + "documentation":"

The encryption configuration for the cluster.

" } } }, @@ -890,6 +898,25 @@ } } }, + "EncryptionConfig":{ + "type":"structure", + "members":{ + "resources":{ + "shape":"StringList", + "documentation":"

Specifies the resources to be encrypted. The only supported value is \"secrets\".

" + }, + "provider":{ + "shape":"Provider", + "documentation":"

AWS Key Management Service (AWS KMS) customer master key (CMK). Either the ARN or the alias can be used.

" + } + }, + "documentation":"

The encryption configuration for the cluster.

" + }, + "EncryptionConfigList":{ + "type":"list", + "member":{"shape":"EncryptionConfig"}, + "max":1 + }, "ErrorCode":{ "type":"string", "enum":[ @@ -1481,6 +1508,16 @@ }, "documentation":"

An object representing the OpenID Connect identity provider information for the cluster.

" }, + "Provider":{ + "type":"structure", + "members":{ + "keyArn":{ + "shape":"String", + "documentation":"

Amazon Resource Name (ARN) or alias of the customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide.

" + } + }, + "documentation":"

Identifies the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the secrets.

" + }, "RemoteAccessConfig":{ "type":"structure", "members":{ diff --git a/botocore/data/elasticache/2015-02-02/paginators-1.json b/botocore/data/elasticache/2015-02-02/paginators-1.json index 9ee5996e..e0beae5a 100644 --- a/botocore/data/elasticache/2015-02-02/paginators-1.json +++ b/botocore/data/elasticache/2015-02-02/paginators-1.json @@ -83,6 +83,12 @@ "limit_key": "MaxRecords", "output_token": "Marker", "result_key": "UpdateActions" + }, + "DescribeGlobalReplicationGroups": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "GlobalReplicationGroups" } } } diff --git a/botocore/data/elasticache/2015-02-02/service-2.json b/botocore/data/elasticache/2015-02-02/service-2.json index 43631a56..9ac469cc 100644 --- a/botocore/data/elasticache/2015-02-02/service-2.json +++ b/botocore/data/elasticache/2015-02-02/service-2.json @@ -210,6 +210,26 @@ ], "documentation":"

Creates a new cache subnet group.

Use this parameter only when you are creating a cluster in an Amazon Virtual Private Cloud (Amazon VPC).

" }, + "CreateGlobalReplicationGroup":{ + "name":"CreateGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGlobalReplicationGroupMessage"}, + "output":{ + "shape":"CreateGlobalReplicationGroupResult", + "resultWrapper":"CreateGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"ReplicationGroupNotFoundFault"}, + {"shape":"InvalidReplicationGroupStateFault"}, + {"shape":"GlobalReplicationGroupAlreadyExistsFault"}, + {"shape":"ServiceLinkedRoleNotFoundFault"}, + {"shape":"InvalidParameterValueException"} + ], + "documentation":"

Global Datastore for Redis offers fully managed, fast, reliable and secure cross-region replication. Using Global Datastore for Redis, you can create cross-region read replica clusters for ElastiCache for Redis to enable low-latency reads and disaster recovery across regions. For more information, see Replication Across Regions Using Global Datastore.

  • The GlobalReplicationGroupId is the name of the Global Datastore.

  • The PrimaryReplicationGroupId represents the name of the primary cluster that accepts writes and will replicate updates to the secondary cluster.

" + }, "CreateReplicationGroup":{ "name":"CreateReplicationGroup", "http":{ @@ -235,10 +255,12 @@ {"shape":"InvalidVPCNetworkStateFault"}, {"shape":"TagQuotaPerResourceExceeded"}, {"shape":"NodeGroupsPerReplicationGroupQuotaExceededFault"}, + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, {"shape":"InvalidParameterValueException"}, {"shape":"InvalidParameterCombinationException"} ], - "documentation":"

Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group.

A Redis (cluster mode disabled) replication group is a collection of clusters, where one of the clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas.

A Redis (cluster mode enabled) replication group is a collection of 1 to 90 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards).

When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created. However, if you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' enhanced backup and restore. For more information, see Restoring From a Backup with Cluster Resizing in the ElastiCache User Guide.

This operation is valid for Redis only.

" + "documentation":"

Creates a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group.

This API can be used to create a standalone regional replication group or a secondary replication group associated with a Global Datastore.

A Redis (cluster mode disabled) replication group is a collection of clusters, where one of the clusters is a read/write primary and the others are read-only replicas. Writes to the primary are asynchronously propagated to the replicas.

A Redis (cluster mode enabled) replication group is a collection of 1 to 90 node groups (shards). Each node group (shard) has one read/write primary node and up to 5 read-only replica nodes. Writes to the primary are asynchronously propagated to the replicas. Redis (cluster mode enabled) replication groups partition the data across node groups (shards).

When a Redis (cluster mode disabled) replication group has been successfully created, you can add one or more read replicas to it, up to a total of 5 read replicas. You cannot alter a Redis (cluster mode enabled) replication group after it has been created. However, if you need to increase or decrease the number of node groups (console: shards), you can avail yourself of ElastiCache for Redis' enhanced backup and restore. For more information, see Restoring From a Backup with Cluster Resizing in the ElastiCache User Guide.

This operation is valid for Redis only.

" }, "CreateSnapshot":{ "name":"CreateSnapshot", @@ -264,6 +286,25 @@ ], "documentation":"

Creates a copy of an entire cluster or replication group at a specific moment in time.

This operation is valid for Redis only.

" }, + "DecreaseNodeGroupsInGlobalReplicationGroup":{ + "name":"DecreaseNodeGroupsInGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DecreaseNodeGroupsInGlobalReplicationGroupMessage"}, + "output":{ + "shape":"DecreaseNodeGroupsInGlobalReplicationGroupResult", + "resultWrapper":"DecreaseNodeGroupsInGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ], + "documentation":"

Decreases the number of node groups in a Global Datastore

" + }, "DecreaseReplicaCount":{ "name":"DecreaseReplicaCount", "http":{ @@ -289,7 +330,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InvalidParameterCombinationException"} ], - "documentation":"

Dynamically decreases the number of replics in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation is performed with no cluster down time.

" + "documentation":"

Dynamically decreases the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group. This operation is performed with no cluster down time.

" }, "DeleteCacheCluster":{ "name":"DeleteCacheCluster", @@ -356,6 +397,24 @@ ], "documentation":"

Deletes a cache subnet group.

You cannot delete a cache subnet group if it is associated with any clusters.

" }, + "DeleteGlobalReplicationGroup":{ + "name":"DeleteGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGlobalReplicationGroupMessage"}, + "output":{ + "shape":"DeleteGlobalReplicationGroupResult", + "resultWrapper":"DeleteGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, + {"shape":"InvalidParameterValueException"} + ], + "documentation":"

Deleting a Global Datastore is a two-step process:

  • First, you must DisassociateGlobalReplicationGroup to remove the secondary clusters in the Global Datastore.

  • Once the Global Datastore contains only the primary cluster, you can use DeleteGlobalReplicationGroup API to delete the Global Datastore while retainining the primary cluster using Retain…= true.

Since the Global Datastore has only a primary cluster, you can delete the Global Datastore while retaining the primary by setting RetainPrimaryCluster=true.

When you receive a successful response from this operation, Amazon ElastiCache immediately begins deleting the selected resources; you cannot cancel or revert this operation.

This operation is valid for Redis only.

" + }, "DeleteReplicationGroup":{ "name":"DeleteReplicationGroup", "http":{ @@ -532,6 +591,24 @@ ], "documentation":"

Returns events related to clusters, cache security groups, and cache parameter groups. You can obtain events specific to a particular cluster, cache security group, or cache parameter group by providing the name as a parameter.

By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary.

" }, + "DescribeGlobalReplicationGroups":{ + "name":"DescribeGlobalReplicationGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeGlobalReplicationGroupsMessage"}, + "output":{ + "shape":"DescribeGlobalReplicationGroupsResult", + "resultWrapper":"DescribeGlobalReplicationGroupsResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ], + "documentation":"

Returns information about a particular global replication group. If no identifier is specified, returns information about all Global Datastores.

" + }, "DescribeReplicationGroups":{ "name":"DescribeReplicationGroups", "http":{ @@ -640,6 +717,62 @@ ], "documentation":"

Returns details of the update actions

" }, + "DisassociateGlobalReplicationGroup":{ + "name":"DisassociateGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateGlobalReplicationGroupMessage"}, + "output":{ + "shape":"DisassociateGlobalReplicationGroupResult", + "resultWrapper":"DisassociateGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ], + "documentation":"

Remove a secondary cluster from the Global Datastore using the Global Datastore name. The secondary cluster will no longer receive updates from the primary cluster, but will remain as a standalone cluster in that AWS region.

" + }, + "FailoverGlobalReplicationGroup":{ + "name":"FailoverGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"FailoverGlobalReplicationGroupMessage"}, + "output":{ + "shape":"FailoverGlobalReplicationGroupResult", + "resultWrapper":"FailoverGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidParameterCombinationException"} + ], + "documentation":"

Used to failover the primary region to a selected secondary region.

" + }, + "IncreaseNodeGroupsInGlobalReplicationGroup":{ + "name":"IncreaseNodeGroupsInGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"IncreaseNodeGroupsInGlobalReplicationGroupMessage"}, + "output":{ + "shape":"IncreaseNodeGroupsInGlobalReplicationGroupResult", + "resultWrapper":"IncreaseNodeGroupsInGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, + {"shape":"InvalidParameterValueException"} + ], + "documentation":"

Increase the number of node groups in the Global Datastore

" + }, "IncreaseReplicaCount":{ "name":"IncreaseReplicaCount", "http":{ @@ -745,7 +878,8 @@ {"shape":"CacheParameterGroupNotFoundFault"}, {"shape":"InvalidCacheParameterGroupStateFault"}, {"shape":"InvalidParameterValueException"}, - {"shape":"InvalidParameterCombinationException"} + {"shape":"InvalidParameterCombinationException"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"} ], "documentation":"

Modifies the parameters of a cache parameter group. You can modify up to 20 parameters in a single request by submitting a list parameter name and value pairs.

" }, @@ -768,6 +902,24 @@ ], "documentation":"

Modifies an existing cache subnet group.

" }, + "ModifyGlobalReplicationGroup":{ + "name":"ModifyGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyGlobalReplicationGroupMessage"}, + "output":{ + "shape":"ModifyGlobalReplicationGroupResult", + "resultWrapper":"ModifyGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, + {"shape":"InvalidParameterValueException"} + ], + "documentation":"

Modifies the settings for a Global Datastore.

" + }, "ModifyReplicationGroup":{ "name":"ModifyReplicationGroup", "http":{ @@ -842,6 +994,24 @@ ], "documentation":"

Allows you to purchase a reserved cache node offering.

" }, + "RebalanceSlotsInGlobalReplicationGroup":{ + "name":"RebalanceSlotsInGlobalReplicationGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RebalanceSlotsInGlobalReplicationGroupMessage"}, + "output":{ + "shape":"RebalanceSlotsInGlobalReplicationGroupResult", + "resultWrapper":"RebalanceSlotsInGlobalReplicationGroupResult" + }, + "errors":[ + {"shape":"GlobalReplicationGroupNotFoundFault"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"}, + {"shape":"InvalidParameterValueException"} + ], + "documentation":"

Redistribute slots to ensure unifirom distribution across existing shards in the cluster.

" + }, "RebootCacheCluster":{ "name":"RebootCacheCluster", "http":{ @@ -893,7 +1063,8 @@ {"shape":"InvalidCacheParameterGroupStateFault"}, {"shape":"CacheParameterGroupNotFoundFault"}, {"shape":"InvalidParameterValueException"}, - {"shape":"InvalidParameterCombinationException"} + {"shape":"InvalidParameterCombinationException"}, + {"shape":"InvalidGlobalReplicationGroupStateFault"} ], "documentation":"

Modifies the parameters of a cache parameter group to the engine or system default value. You can reset specific parameters by submitting a list of parameter names. To reset the entire cache parameter group, specify the ResetAllParameters and CacheParameterGroupName parameters.

" }, @@ -1014,7 +1185,7 @@ }, "ScaleDownModifications":{ "shape":"NodeTypeList", - "documentation":"

A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group.

When scaling down on a Redis cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter.

" + "documentation":"

A string list, each element of which specifies a cache node type which you can use to scale your cluster or replication group. When scaling down a Redis cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, use a value from this list for the CacheNodeType parameter.

" } }, "documentation":"

Represents the allowed node types you can use to modify your cluster or replication group.

" @@ -1169,7 +1340,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The name of the compute and memory capacity node type for the cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The name of the compute and memory capacity node type for the cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", @@ -1366,7 +1537,7 @@ }, "CacheNodeStatus":{ "shape":"String", - "documentation":"

The current state of this cache node.

" + "documentation":"

The current state of this cache node, one of the following values: available, creating, rebooting, or deleting.

" }, "CacheNodeCreateTime":{ "shape":"TStamp", @@ -1389,7 +1560,7 @@ "documentation":"

The Availability Zone where this node was created and now resides.

" } }, - "documentation":"

Represents an individual cache node within a cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

Represents an individual cache node within a cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "CacheNodeIdsList":{ "type":"list", @@ -1534,6 +1705,10 @@ "Description":{ "shape":"String", "documentation":"

The description for this cache parameter group.

" + }, + "IsGlobal":{ + "shape":"Boolean", + "documentation":"

Indicates whether the parameter group is associated with a Global Datastore

" } }, "documentation":"

Represents the output of a CreateCacheParameterGroup operation.

", @@ -1984,7 +2159,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", @@ -2141,6 +2316,33 @@ "CacheSubnetGroup":{"shape":"CacheSubnetGroup"} } }, + "CreateGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupIdSuffix", + "PrimaryReplicationGroupId" + ], + "members":{ + "GlobalReplicationGroupIdSuffix":{ + "shape":"String", + "documentation":"

The suffix for name of a Global Datastore. The suffix guarantees uniqueness of the Global Datastore name across multiple regions.

" + }, + "GlobalReplicationGroupDescription":{ + "shape":"String", + "documentation":"

Provides details of the Global Datastore

" + }, + "PrimaryReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the primary cluster that accepts writes and will replicate updates to the secondary cluster.

" + } + } + }, + "CreateGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, "CreateReplicationGroupMessage":{ "type":"structure", "required":[ @@ -2156,6 +2358,10 @@ "shape":"String", "documentation":"

A user-created description for the replication group.

" }, + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, "PrimaryClusterId":{ "shape":"String", "documentation":"

The identifier of the cluster that serves as the primary for this replication group. This cluster must already exist and have a status of available.

This parameter is not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified.

" @@ -2186,7 +2392,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", @@ -2262,7 +2468,7 @@ }, "KmsKeyId":{ "shape":"String", - "documentation":"

The ID of the KMS key used to encrypt the disk on the cluster.

" + "documentation":"

The ID of the KMS key used to encrypt the disk in the cluster.

" } }, "documentation":"

Represents the input of a CreateReplicationGroup operation.

" @@ -2320,6 +2526,42 @@ "type":"list", "member":{"shape":"CustomerNodeEndpoint"} }, + "DecreaseNodeGroupsInGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupId", + "NodeGroupCount", + "ApplyImmediately" + ], + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "NodeGroupCount":{ + "shape":"Integer", + "documentation":"

The number of node groups (shards) that results from the modification of the shard configuration

" + }, + "GlobalNodeGroupsToRemove":{ + "shape":"GlobalNodeGroupIdList", + "documentation":"

If the value of NodeGroupCount is less than the current number of node groups (shards), then either NodeGroupsToRemove or NodeGroupsToRetain is required. NodeGroupsToRemove is a list of NodeGroupIds to remove from the cluster. ElastiCache for Redis will attempt to remove all node groups listed by NodeGroupsToRemove from the cluster.

" + }, + "GlobalNodeGroupsToRetain":{ + "shape":"GlobalNodeGroupIdList", + "documentation":"

If the value of NodeGroupCount is less than the current number of node groups (shards), then either NodeGroupsToRemove or NodeGroupsToRetain is required. NodeGroupsToRemove is a list of NodeGroupIds to remove from the cluster. ElastiCache for Redis will attempt to remove all node groups listed by NodeGroupsToRemove from the cluster.

" + }, + "ApplyImmediately":{ + "shape":"Boolean", + "documentation":"

Indicates that the shard reconfiguration process begins immediately. At present, the only permitted value for this parameter is true.

" + } + } + }, + "DecreaseNodeGroupsInGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, "DecreaseReplicaCountMessage":{ "type":"structure", "required":[ @@ -2409,6 +2651,29 @@ }, "documentation":"

Represents the input of a DeleteCacheSubnetGroup operation.

" }, + "DeleteGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupId", + "RetainPrimaryReplicationGroup" + ], + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "RetainPrimaryReplicationGroup":{ + "shape":"Boolean", + "documentation":"

If set to true, the primary replication is retained as a standalone replication group.

" + } + } + }, + "DeleteGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, "DeleteReplicationGroupMessage":{ "type":"structure", "required":["ReplicationGroupId"], @@ -2643,6 +2908,40 @@ }, "documentation":"

Represents the input of a DescribeEvents operation.

" }, + "DescribeGlobalReplicationGroupsMessage":{ + "type":"structure", + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a marker is included in the response so that the remaining results can be retrieved.

" + }, + "Marker":{ + "shape":"String", + "documentation":"

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + }, + "ShowMemberInfo":{ + "shape":"BooleanOptional", + "documentation":"

Returns the list of members that comprise the Global Datastore.

" + } + } + }, + "DescribeGlobalReplicationGroupsResult":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"String", + "documentation":"

An optional marker returned from a prior request. Use this marker for pagination of results from this operation. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. >

" + }, + "GlobalReplicationGroups":{ + "shape":"GlobalReplicationGroupList", + "documentation":"

Indicates the slot configuration and global identifier for each slice group.

" + } + } + }, "DescribeReplicationGroupsMessage":{ "type":"structure", "members":{ @@ -2674,7 +2973,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Duration":{ "shape":"String", @@ -2708,7 +3007,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Duration":{ "shape":"String", @@ -2847,6 +3146,34 @@ } } }, + "DisassociateGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupId", + "ReplicationGroupId", + "ReplicationGroupRegion" + ], + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "ReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the secondary cluster you wish to remove from the Global Datastore

" + }, + "ReplicationGroupRegion":{ + "shape":"String", + "documentation":"

The AWS region of secondary cluster you wish to remove from the Global Datastore

" + } + } + }, + "DisassociateGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, "Double":{"type":"double"}, "EC2SecurityGroup":{ "type":"structure", @@ -2953,6 +3280,228 @@ }, "documentation":"

Represents the output of a DescribeEvents operation.

" }, + "FailoverGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupId", + "PrimaryRegion", + "PrimaryReplicationGroupId" + ], + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "PrimaryRegion":{ + "shape":"String", + "documentation":"

The AWS region of the primary cluster of the Global Datastore

" + }, + "PrimaryReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the primary replication group

" + } + } + }, + "FailoverGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, + "GlobalNodeGroup":{ + "type":"structure", + "members":{ + "GlobalNodeGroupId":{ + "shape":"String", + "documentation":"

The name of the global node group

" + }, + "Slots":{ + "shape":"String", + "documentation":"

The keyspace for this node group

" + } + }, + "documentation":"

Indicates the slot configuration and global identifier for a slice group.

" + }, + "GlobalNodeGroupIdList":{ + "type":"list", + "member":{ + "shape":"String", + "locationName":"GlobalNodeGroupId" + } + }, + "GlobalNodeGroupList":{ + "type":"list", + "member":{ + "shape":"GlobalNodeGroup", + "locationName":"GlobalNodeGroup" + } + }, + "GlobalReplicationGroup":{ + "type":"structure", + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "GlobalReplicationGroupDescription":{ + "shape":"String", + "documentation":"

The optional description of the Global Datastore

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of the Global Datastore

" + }, + "CacheNodeType":{ + "shape":"String", + "documentation":"

The cache node type of the Global Datastore

" + }, + "Engine":{ + "shape":"String", + "documentation":"

The Elasticache engine. For preview, it is Redis only.

" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The Elasticache Redis engine version. For preview, it is Redis version 5.0.5 only.

" + }, + "Members":{ + "shape":"GlobalReplicationGroupMemberList", + "documentation":"

The replication groups that comprise the Global Datastore.

" + }, + "ClusterEnabled":{ + "shape":"BooleanOptional", + "documentation":"

A flag that indicates whether the Global Datastore is cluster enabled.

" + }, + "GlobalNodeGroups":{ + "shape":"GlobalNodeGroupList", + "documentation":"

Indicates the slot configuration and global identifier for each slice group.

" + }, + "AuthTokenEnabled":{ + "shape":"BooleanOptional", + "documentation":"

A flag that enables using an AuthToken (password) when issuing Redis commands.

Default: false

" + }, + "TransitEncryptionEnabled":{ + "shape":"BooleanOptional", + "documentation":"

A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

" + }, + "AtRestEncryptionEnabled":{ + "shape":"BooleanOptional", + "documentation":"

A flag that enables encryption at rest when set to true.

You cannot modify the value of AtRestEncryptionEnabled after the replication group is created. To enable encryption at rest on a replication group you must set AtRestEncryptionEnabled to true when you create the replication group.

Required: Only available when creating a replication group in an Amazon VPC using redis version 3.2.6, 4.x or later.

" + } + }, + "documentation":"

Consists of a primary cluster that accepts writes and an associated secondary cluster that resides in a different AWS region. The secondary cluster accepts only reads. The primary cluster automatically replicates updates to the secondary cluster.

  • The GlobalReplicationGroupId represents the name of the Global Datastore, which is what you use to associate a secondary cluster.

", + "wrapper":true + }, + "GlobalReplicationGroupAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The Global Datastore name already exists.

", + "error":{ + "code":"GlobalReplicationGroupAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "GlobalReplicationGroupInfo":{ + "type":"structure", + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "GlobalReplicationGroupMemberRole":{ + "shape":"String", + "documentation":"

The role of the replication group in a Global Datastore. Can be primary or secondary.

" + } + }, + "documentation":"

The name of the Global Datastore and role of this replication group in the Global Datastore.

" + }, + "GlobalReplicationGroupList":{ + "type":"list", + "member":{ + "shape":"GlobalReplicationGroup", + "locationName":"GlobalReplicationGroup" + } + }, + "GlobalReplicationGroupMember":{ + "type":"structure", + "members":{ + "ReplicationGroupId":{ + "shape":"String", + "documentation":"

The replication group id of the Global Datastore member.

" + }, + "ReplicationGroupRegion":{ + "shape":"String", + "documentation":"

The AWS region of the Global Datastore member.

" + }, + "Role":{ + "shape":"String", + "documentation":"

Indicates the role of the replication group, primary or secondary.

" + }, + "AutomaticFailover":{ + "shape":"AutomaticFailoverStatus", + "documentation":"

Indicates whether automatic failover is enabled for the replication group.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of the membership of the replication group.

" + } + }, + "documentation":"

A member of a Global Datastore. It contains the Replication Group Id, the AWS region and the role of the replication group.

", + "wrapper":true + }, + "GlobalReplicationGroupMemberList":{ + "type":"list", + "member":{ + "shape":"GlobalReplicationGroupMember", + "locationName":"GlobalReplicationGroupMember" + } + }, + "GlobalReplicationGroupNotFoundFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The Global Datastore does not exist

", + "error":{ + "code":"GlobalReplicationGroupNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "IncreaseNodeGroupsInGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupId", + "NodeGroupCount", + "ApplyImmediately" + ], + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "NodeGroupCount":{ + "shape":"Integer", + "documentation":"

The number of node groups you wish to add

" + }, + "RegionalConfigurations":{ + "shape":"RegionalConfigurationList", + "documentation":"

Describes the replication group IDs, the AWS regions where they are stored and the shard configuration for each that comprise the Global Datastore

" + }, + "ApplyImmediately":{ + "shape":"Boolean", + "documentation":"

Indicates that the process begins immediately. At present, the only permitted value for this parameter is true.

" + } + } + }, + "IncreaseNodeGroupsInGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, "IncreaseReplicaCountMessage":{ "type":"structure", "required":[ @@ -3046,6 +3595,18 @@ }, "exception":true }, + "InvalidGlobalReplicationGroupStateFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The Global Datastore is not available

", + "error":{ + "code":"InvalidGlobalReplicationGroupState", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidKMSKeyFault":{ "type":"structure", "members":{ @@ -3301,6 +3862,45 @@ "CacheSubnetGroup":{"shape":"CacheSubnetGroup"} } }, + "ModifyGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupId", + "ApplyImmediately" + ], + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "ApplyImmediately":{ + "shape":"Boolean", + "documentation":"

If true, this parameter causes the modifications in this request and any pending modifications to be applied, asynchronously and as soon as possible, regardless of the PreferredMaintenanceWindow setting for the replication group. If false, changes to the nodes in the replication group are applied on the next maintenance reboot, or the next failure reboot, whichever occurs first.

" + }, + "CacheNodeType":{ + "shape":"String", + "documentation":"

A valid cache node type that you want to scale this Global Datastore to.

" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The upgraded version of the cache engine to be run on the clusters in the Global Datastore.

" + }, + "GlobalReplicationGroupDescription":{ + "shape":"String", + "documentation":"

A description of the Global Datastore

" + }, + "AutomaticFailoverEnabled":{ + "shape":"BooleanOptional", + "documentation":"

Determines whether a read replica is automatically promoted to read/write primary if the existing primary encounters a failure.

" + } + } + }, + "ModifyGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, "ModifyReplicationGroupMessage":{ "type":"structure", "required":["ReplicationGroupId"], @@ -3925,6 +4525,29 @@ "ReservedCacheNode":{"shape":"ReservedCacheNode"} } }, + "RebalanceSlotsInGlobalReplicationGroupMessage":{ + "type":"structure", + "required":[ + "GlobalReplicationGroupId", + "ApplyImmediately" + ], + "members":{ + "GlobalReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the Global Datastore

" + }, + "ApplyImmediately":{ + "shape":"Boolean", + "documentation":"

If True, redistribution is applied immediately.

" + } + } + }, + "RebalanceSlotsInGlobalReplicationGroupResult":{ + "type":"structure", + "members":{ + "GlobalReplicationGroup":{"shape":"GlobalReplicationGroup"} + } + }, "RebootCacheClusterMessage":{ "type":"structure", "required":[ @@ -3971,6 +4594,36 @@ "locationName":"RecurringCharge" } }, + "RegionalConfiguration":{ + "type":"structure", + "required":[ + "ReplicationGroupId", + "ReplicationGroupRegion", + "ReshardingConfiguration" + ], + "members":{ + "ReplicationGroupId":{ + "shape":"String", + "documentation":"

The name of the secondary cluster

" + }, + "ReplicationGroupRegion":{ + "shape":"String", + "documentation":"

The AWS region where the cluster is stored

" + }, + "ReshardingConfiguration":{ + "shape":"ReshardingConfigurationList", + "documentation":"

A list of PreferredAvailabilityZones objects that specifies the configuration of a node group in the resharded cluster.

" + } + }, + "documentation":"

A list of the replication groups

" + }, + "RegionalConfigurationList":{ + "type":"list", + "member":{ + "shape":"RegionalConfiguration", + "locationName":"RegionalConfiguration" + } + }, "RemoveReplicasList":{ "type":"list", "member":{"shape":"String"} @@ -4011,6 +4664,10 @@ "shape":"String", "documentation":"

The user supplied description of the replication group.

" }, + "GlobalReplicationGroupInfo":{ + "shape":"GlobalReplicationGroupInfo", + "documentation":"

The name of the Global Datastore and role of this replication group in the Global Datastore.

" + }, "Status":{ "shape":"String", "documentation":"

The current state of this replication group - creating, available, modifying, deleting, create-failed, snapshotting.

" @@ -4188,7 +4845,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type for the reserved cache nodes.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type for the reserved cache nodes.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "StartTime":{ "shape":"TStamp", @@ -4300,7 +4957,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type for the reserved cache node.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type for the reserved cache node.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Duration":{ "shape":"Integer", @@ -4638,7 +5295,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The name of the compute and memory capacity node type for the source cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The name of the compute and memory capacity node type for the source cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", diff --git a/botocore/data/elbv2/2015-12-01/service-2.json b/botocore/data/elbv2/2015-12-01/service-2.json index facff6dd..52c0ab9d 100644 --- a/botocore/data/elbv2/2015-12-01/service-2.json +++ b/botocore/data/elbv2/2015-12-01/service-2.json @@ -760,7 +760,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

The tags. Each resource can have a maximum of 10 tags.

" + "documentation":"

The tags.

" } } }, @@ -1045,7 +1045,7 @@ }, "SslPolicy":{ "shape":"SslPolicyName", - "documentation":"

[HTTPS and TLS listeners] The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.

" + "documentation":"

[HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. The following are the possible values:

  • ELBSecurityPolicy-2016-08

  • ELBSecurityPolicy-TLS-1-0-2015-04

  • ELBSecurityPolicy-TLS-1-1-2017-01

  • ELBSecurityPolicy-TLS-1-2-2017-01

  • ELBSecurityPolicy-TLS-1-2-Ext-2018-06

  • ELBSecurityPolicy-FS-2018-06

  • ELBSecurityPolicy-FS-1-1-2019-08

  • ELBSecurityPolicy-FS-1-2-2019-08

  • ELBSecurityPolicy-FS-1-2-Res-2019-08

For more information, see Security Policies in the Application Load Balancers Guide and Security Policies in the Network Load Balancers Guide.

" }, "Certificates":{ "shape":"CertificateList", @@ -1505,7 +1505,7 @@ "members":{ "SslPolicies":{ "shape":"SslPolicies", - "documentation":"

Information about the policies.

" + "documentation":"

Information about the security policies.

" }, "NextMarker":{ "shape":"Marker", @@ -1519,7 +1519,7 @@ "members":{ "ResourceArns":{ "shape":"ResourceArns", - "documentation":"

The Amazon Resource Names (ARN) of the resources.

" + "documentation":"

The Amazon Resource Names (ARN) of the resources. You can specify up to 20 resources in a single call.

" } } }, @@ -1912,7 +1912,7 @@ }, "SslPolicy":{ "shape":"SslPolicyName", - "documentation":"

[HTTPS or TLS listener] The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.

" + "documentation":"

[HTTPS or TLS listener] The security policy that defines which protocols and ciphers are supported.

" }, "DefaultActions":{ "shape":"Actions", @@ -2028,7 +2028,7 @@ "members":{ "Key":{ "shape":"LoadBalancerAttributeKey", - "documentation":"

The name of the attribute.

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

  • access_logs.s3.enabled - Indicates whether access logs are enabled. The value is true or false. The default is false.

  • access_logs.s3.bucket - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.

  • access_logs.s3.prefix - The prefix for the location in the S3 bucket for the access logs.

  • deletion_protection.enabled - Indicates whether deletion protection is enabled. The value is true or false. The default is false.

The following attributes are supported by only Application Load Balancers:

  • idle_timeout.timeout_seconds - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.

  • routing.http.drop_invalid_header_fields.enabled - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true) or routed to targets (false). The default is false.

  • routing.http2.enabled - Indicates whether HTTP/2 is enabled. The value is true or false. The default is true.

The following attributes are supported by only Network Load Balancers:

  • load_balancing.cross_zone.enabled - Indicates whether cross-zone load balancing is enabled. The value is true or false. The default is false.

" + "documentation":"

The name of the attribute.

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

  • access_logs.s3.enabled - Indicates whether access logs are enabled. The value is true or false. The default is false.

  • access_logs.s3.bucket - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.

  • access_logs.s3.prefix - The prefix for the location in the S3 bucket for the access logs.

  • deletion_protection.enabled - Indicates whether deletion protection is enabled. The value is true or false. The default is false.

The following attributes are supported by only Application Load Balancers:

  • idle_timeout.timeout_seconds - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.

  • routing.http.drop_invalid_header_fields.enabled - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true) or routed to targets (false). The default is false.

  • routing.http2.enabled - Indicates whether HTTP/2 is enabled. The value is true or false. The default is true. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.

The following attributes are supported by only Network Load Balancers:

  • load_balancing.cross_zone.enabled - Indicates whether cross-zone load balancing is enabled. The value is true or false. The default is false.

" }, "Value":{ "shape":"LoadBalancerAttributeValue", @@ -2140,7 +2140,7 @@ }, "SslPolicy":{ "shape":"SslPolicyName", - "documentation":"

[HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see Security Policies in the Application Load Balancers Guide.

" + "documentation":"

[HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. The following are the possible values:

  • ELBSecurityPolicy-2016-08

  • ELBSecurityPolicy-TLS-1-0-2015-04

  • ELBSecurityPolicy-TLS-1-1-2017-01

  • ELBSecurityPolicy-TLS-1-2-2017-01

  • ELBSecurityPolicy-TLS-1-2-Ext-2018-06

  • ELBSecurityPolicy-FS-2018-06

  • ELBSecurityPolicy-FS-1-1-2019-08

  • ELBSecurityPolicy-FS-1-2-2019-08

  • ELBSecurityPolicy-FS-1-2-Res-2019-08

For more information, see Security Policies in the Application Load Balancers Guide and Security Policies in the Network Load Balancers Guide.

" }, "Certificates":{ "shape":"CertificateList", @@ -3006,7 +3006,7 @@ "members":{ "Key":{ "shape":"TargetGroupAttributeKey", - "documentation":"

The name of the attribute.

The following attribute is supported by both Application Load Balancers and Network Load Balancers:

  • deregistration_delay.timeout_seconds - The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.

The following attributes are supported by Application Load Balancers if the target is not a Lambda function:

  • load_balancing.algorithm.type - The load balancing algorithm determines how the load balancer selects targets when routing requests. The value is round_robin or least_outstanding_requests. The default is round_robin.

  • slow_start.duration_seconds - The time period, in seconds, during which a newly registered target receives a linearly increasing share of the traffic to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). Slow start mode is disabled by default.

  • stickiness.enabled - Indicates whether sticky sessions are enabled. The value is true or false. The default is false.

  • stickiness.type - The type of sticky sessions. The possible value is lb_cookie.

  • stickiness.lb_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

The following attribute is supported only if the target is a Lambda function.

  • lambda.multi_value_headers.enabled - Indicates whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true or false. The default is false. If the value is false and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.

The following attribute is supported only by Network Load Balancers:

  • proxy_protocol_v2.enabled - Indicates whether Proxy Protocol version 2 is enabled. The value is true or false. The default is false.

" + "documentation":"

The name of the attribute.

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

  • deregistration_delay.timeout_seconds - The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.

  • stickiness.enabled - Indicates whether sticky sessions are enabled. The value is true or false. The default is false.

  • stickiness.type - The type of sticky sessions. The possible values are lb_cookie for Application Load Balancers or source_ip for Network Load Balancers.

The following attributes are supported by Application Load Balancers if the target is not a Lambda function:

  • load_balancing.algorithm.type - The load balancing algorithm determines how the load balancer selects targets when routing requests. The value is round_robin or least_outstanding_requests. The default is round_robin.

  • slow_start.duration_seconds - The time period, in seconds, during which a newly registered target receives a linearly increasing share of the traffic to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). Slow start mode is disabled by default.

  • stickiness.lb_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

The following attribute is supported only if the target is a Lambda function.

  • lambda.multi_value_headers.enabled - Indicates whether the request and response headers exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true or false. The default is false. If the value is false and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.

The following attribute is supported only by Network Load Balancers:

  • proxy_protocol_v2.enabled - Indicates whether Proxy Protocol version 2 is enabled. The value is true or false. The default is false.

" }, "Value":{ "shape":"TargetGroupAttributeValue", diff --git a/botocore/data/endpoints.json b/botocore/data/endpoints.json index 764f65b6..cffb6ff6 100644 --- a/botocore/data/endpoints.json +++ b/botocore/data/endpoints.json @@ -429,6 +429,7 @@ }, "appmesh" : { "endpoints" : { + "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, @@ -929,6 +930,7 @@ "ap-southeast-2" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "us-east-1" : { }, @@ -937,6 +939,25 @@ "us-west-2" : { } } }, + "codestar-connections" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-1" : { }, + "us-west-2" : { } + } + }, "cognito-identity" : { "endpoints" : { "ap-northeast-1" : { }, @@ -948,6 +969,24 @@ "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "cognito-identity-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "cognito-identity-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "cognito-identity-fips.us-west-2.amazonaws.com" + }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -964,6 +1003,24 @@ "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "cognito-idp-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "cognito-idp-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "cognito-idp-fips.us-west-2.amazonaws.com" + }, "us-east-1" : { }, "us-east-2" : { }, "us-west-2" : { } @@ -989,6 +1046,9 @@ "protocols" : [ "https" ] }, "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ca-central-1" : { }, @@ -1127,6 +1187,12 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "datasync-fips.ca-central-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -1218,6 +1284,12 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ca-central-1" : { }, + "dms-fips" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "dms-fips.us-west-1.amazonaws.com" + }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-west-1" : { }, @@ -1327,6 +1399,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, @@ -1690,6 +1763,96 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ap-northeast-1" : { + "credentialScope" : { + "region" : "ap-northeast-1" + }, + "hostname" : "fms-fips.ap-northeast-1.amazonaws.com" + }, + "fips-ap-northeast-2" : { + "credentialScope" : { + "region" : "ap-northeast-2" + }, + "hostname" : "fms-fips.ap-northeast-2.amazonaws.com" + }, + "fips-ap-south-1" : { + "credentialScope" : { + "region" : "ap-south-1" + }, + "hostname" : "fms-fips.ap-south-1.amazonaws.com" + }, + "fips-ap-southeast-1" : { + "credentialScope" : { + "region" : "ap-southeast-1" + }, + "hostname" : "fms-fips.ap-southeast-1.amazonaws.com" + }, + "fips-ap-southeast-2" : { + "credentialScope" : { + "region" : "ap-southeast-2" + }, + "hostname" : "fms-fips.ap-southeast-2.amazonaws.com" + }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "fms-fips.ca-central-1.amazonaws.com" + }, + "fips-eu-central-1" : { + "credentialScope" : { + "region" : "eu-central-1" + }, + "hostname" : "fms-fips.eu-central-1.amazonaws.com" + }, + "fips-eu-west-1" : { + "credentialScope" : { + "region" : "eu-west-1" + }, + "hostname" : "fms-fips.eu-west-1.amazonaws.com" + }, + "fips-eu-west-2" : { + "credentialScope" : { + "region" : "eu-west-2" + }, + "hostname" : "fms-fips.eu-west-2.amazonaws.com" + }, + "fips-eu-west-3" : { + "credentialScope" : { + "region" : "eu-west-3" + }, + "hostname" : "fms-fips.eu-west-3.amazonaws.com" + }, + "fips-sa-east-1" : { + "credentialScope" : { + "region" : "sa-east-1" + }, + "hostname" : "fms-fips.sa-east-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "fms-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "fms-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "fms-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "fms-fips.us-west-2.amazonaws.com" + }, "sa-east-1" : { }, "us-east-1" : { }, "us-east-2" : { }, @@ -1701,7 +1864,10 @@ "endpoints" : { "ap-northeast-1" : { }, "ap-northeast-2" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, "eu-west-1" : { }, "us-east-1" : { }, "us-east-2" : { }, @@ -1711,7 +1877,11 @@ "forecastquery" : { "endpoints" : { "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, "eu-west-1" : { }, "us-east-1" : { }, "us-east-2" : { }, @@ -1768,6 +1938,36 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "hostname" : "glacier-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "glacier-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "glacier-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "glacier-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "glacier-fips.us-west-2.amazonaws.com" + }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -2286,6 +2486,14 @@ "us-east-1" : { } } }, + "managedblockchain" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { } + } + }, "marketplacecommerceanalytics" : { "endpoints" : { "us-east-1" : { } @@ -2570,6 +2778,12 @@ }, "hostname" : "rds.eu-west-2.amazonaws.com" }, + "eu-west-3" : { + "credentialScope" : { + "region" : "eu-west-3" + }, + "hostname" : "rds.eu-west-3.amazonaws.com" + }, "me-south-1" : { "credentialScope" : { "region" : "me-south-1" @@ -3483,6 +3697,7 @@ }, "servicecatalog" : { "endpoints" : { + "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, @@ -3494,6 +3709,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, "us-east-1-fips" : { @@ -3584,6 +3800,30 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "sms-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "hostname" : "sms-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "hostname" : "sms-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "sms-fips.us-west-2.amazonaws.com" + }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -4130,6 +4370,12 @@ } }, "services" : { + "acm" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "api.ecr" : { "endpoints" : { "cn-north-1" : { @@ -4180,6 +4426,12 @@ "cn-northwest-1" : { } } }, + "backup" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "batch" : { "endpoints" : { "cn-north-1" : { }, @@ -4404,6 +4656,12 @@ "cn-northwest-1" : { } } }, + "iotsecuredtunneling" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "kinesis" : { "endpoints" : { "cn-north-1" : { }, @@ -4746,6 +5004,18 @@ }, "athena" : { "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "athena-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "athena-fips.us-gov-west-1.amazonaws.com" + }, "us-gov-east-1" : { }, "us-gov-west-1" : { } } @@ -4868,6 +5138,12 @@ }, "datasync" : { "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "datasync-fips.us-gov-east-1.amazonaws.com" + }, "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" @@ -4886,6 +5162,12 @@ }, "dms" : { "endpoints" : { + "dms-fips" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "dms.us-gov-west-1.amazonaws.com" + }, "us-gov-east-1" : { }, "us-gov-west-1" : { } } @@ -4992,8 +5274,17 @@ }, "glacier" : { "endpoints" : { - "us-gov-east-1" : { }, + "us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "glacier.us-gov-east-1.amazonaws.com" + }, "us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "glacier.us-gov-west-1.amazonaws.com", "protocols" : [ "http", "https" ] } } @@ -5055,6 +5346,11 @@ "us-gov-west-1" : { } } }, + "iotsecuredtunneling" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, "kinesis" : { "endpoints" : { "us-gov-east-1" : { }, @@ -5311,6 +5607,18 @@ }, "sms" : { "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "hostname" : "sms-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "sms-fips.us-gov-west-1.amazonaws.com" + }, "us-gov-east-1" : { }, "us-gov-west-1" : { } } @@ -5352,6 +5660,7 @@ }, "storagegateway" : { "endpoints" : { + "us-gov-east-1" : { }, "us-gov-west-1" : { } } }, @@ -5439,6 +5748,12 @@ "endpoints" : { "us-gov-west-1" : { } } + }, + "xray" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } } } }, { @@ -5524,6 +5839,12 @@ }, "dms" : { "endpoints" : { + "dms-fips" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "hostname" : "dms.us-iso-east-1.c2s.ic.gov" + }, "us-iso-east-1" : { } } }, @@ -5784,6 +6105,12 @@ }, "dms" : { "endpoints" : { + "dms-fips" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "hostname" : "dms.us-isob-east-1.sc2s.sgov.gov" + }, "us-isob-east-1" : { } } }, @@ -5863,6 +6190,11 @@ "us-isob-east-1" : { } } }, + "license-manager" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "logs" : { "endpoints" : { "us-isob-east-1" : { } @@ -5914,6 +6246,11 @@ "us-isob-east-1" : { } } }, + "ssm" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "states" : { "endpoints" : { "us-isob-east-1" : { } diff --git a/botocore/data/es/2015-01-01/service-2.json b/botocore/data/es/2015-01-01/service-2.json index 38ea1937..79a65449 100644 --- a/botocore/data/es/2015-01-01/service-2.json +++ b/botocore/data/es/2015-01-01/service-2.json @@ -466,6 +466,56 @@ }, "documentation":"

Status of the advanced options for the specified Elasticsearch domain. Currently, the following advanced options are available:

  • Option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration Advanced Options for more information.
  • Option to specify the percentage of heap space that is allocated to field data. By default, this setting is unbounded.

For more information, see Configuring Advanced Options.

" }, + "AdvancedSecurityOptions":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

True if advanced security is enabled.

" + }, + "InternalUserDatabaseEnabled":{ + "shape":"Boolean", + "documentation":"

True if the internal user database is enabled.

" + } + }, + "documentation":"

Specifies the advanced security configuration: whether advanced security is enabled, whether the internal database option is enabled.

" + }, + "AdvancedSecurityOptionsInput":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

True if advanced security is enabled.

" + }, + "InternalUserDatabaseEnabled":{ + "shape":"Boolean", + "documentation":"

True if the internal user database is enabled.

" + }, + "MasterUserOptions":{ + "shape":"MasterUserOptions", + "documentation":"

Credentials for the master user: username and password, ARN, or both.

" + } + }, + "documentation":"

Specifies the advanced security configuration: whether advanced security is enabled, whether the internal database option is enabled, master username and password (if internal database is enabled), and master user ARN (if IAM is enabled).

" + }, + "AdvancedSecurityOptionsStatus":{ + "type":"structure", + "required":[ + "Options", + "Status" + ], + "members":{ + "Options":{ + "shape":"AdvancedSecurityOptions", + "documentation":"

Specifies advanced security options for the specified Elasticsearch domain.

" + }, + "Status":{ + "shape":"OptionStatus", + "documentation":"

Status of the advanced security options for the specified Elasticsearch domain.

" + } + }, + "documentation":"

Specifies the status of advanced security options for the specified Elasticsearch domain.

" + }, "BaseException":{ "type":"structure", "members":{ @@ -613,6 +663,10 @@ "DomainEndpointOptions":{ "shape":"DomainEndpointOptions", "documentation":"

Options to specify configuration that will be applied to the domain endpoint.

" + }, + "AdvancedSecurityOptions":{ + "shape":"AdvancedSecurityOptionsInput", + "documentation":"

Specifies advanced security options.

" } } }, @@ -1138,6 +1192,10 @@ "DomainEndpointOptions":{ "shape":"DomainEndpointOptionsStatus", "documentation":"

Specifies the DomainEndpointOptions for the Elasticsearch domain.

" + }, + "AdvancedSecurityOptions":{ + "shape":"AdvancedSecurityOptionsStatus", + "documentation":"

Specifies AdvancedSecurityOptions for the domain.

" } }, "documentation":"

The configuration of an Elasticsearch domain.

" @@ -1235,6 +1293,10 @@ "DomainEndpointOptions":{ "shape":"DomainEndpointOptions", "documentation":"

The current status of the Elasticsearch domain's endpoint options.

" + }, + "AdvancedSecurityOptions":{ + "shape":"AdvancedSecurityOptions", + "documentation":"

The current status of the Elasticsearch domain's advanced security options.

" } }, "documentation":"

The current status of an Elasticsearch domain.

" @@ -1634,6 +1696,24 @@ "ES_APPLICATION_LOGS" ] }, + "MasterUserOptions":{ + "type":"structure", + "members":{ + "MasterUserARN":{ + "shape":"ARN", + "documentation":"

ARN for the master user (if IAM is enabled).

" + }, + "MasterUserName":{ + "shape":"Username", + "documentation":"

The master user's username, which is stored in the Amazon Elasticsearch Service domain's internal database.

" + }, + "MasterUserPassword":{ + "shape":"Password", + "documentation":"

The master user's password, which is stored in the Amazon Elasticsearch Service domain's internal database.

" + } + }, + "documentation":"

Credentials for the master user: username and password, ARN, or both.

" + }, "MaxResults":{ "type":"integer", "documentation":"

Set this value to limit the number of results returned.

", @@ -1719,6 +1799,11 @@ }, "documentation":"

Provides the current status of the entity.

" }, + "Password":{ + "type":"string", + "min":8, + "sensitive":true + }, "PolicyDocument":{ "type":"string", "documentation":"

Access policy rules for an Elasticsearch domain service endpoints. For more information, see Configuring Access Policies in the Amazon Elasticsearch Service Developer Guide. The maximum size of a policy document is 100 KB.

" @@ -2159,6 +2244,10 @@ "DomainEndpointOptions":{ "shape":"DomainEndpointOptions", "documentation":"

Options to specify configuration that will be applied to the domain endpoint.

" + }, + "AdvancedSecurityOptions":{ + "shape":"AdvancedSecurityOptionsInput", + "documentation":"

Specifies advanced security options.

" } }, "documentation":"

Container for the parameters to the UpdateElasticsearchDomain operation. Specifies the type and number of instances in the domain cluster.

" @@ -2285,6 +2374,11 @@ "min":1, "pattern":"[\\w-]+_[0-9a-zA-Z]+" }, + "Username":{ + "type":"string", + "min":1, + "sensitive":true + }, "VPCDerivedInfo":{ "type":"structure", "members":{ diff --git a/botocore/data/events/2015-10-07/service-2.json b/botocore/data/events/2015-10-07/service-2.json index 5ca6e23b..0b9fa715 100644 --- a/botocore/data/events/2015-10-07/service-2.json +++ b/botocore/data/events/2015-10-07/service-2.json @@ -21,10 +21,11 @@ "input":{"shape":"ActivateEventSourceRequest"}, "errors":[ {"shape":"ResourceNotFoundException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"InvalidStateException"}, {"shape":"InternalException"} ], - "documentation":"

Activates a partner event source that has been deactivated. Once activated, your matching event bus will start receiving events from the event source.

This operation is performed by AWS customers, not by SaaS partners.

" + "documentation":"

Activates a partner event source that has been deactivated. Once activated, your matching event bus will start receiving events from the event source.

" }, "CreateEventBus":{ "name":"CreateEventBus", @@ -42,7 +43,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates a new event bus within your account. This can be a custom event bus which you can use to receive events from your own custom applications and services, or it can be a partner event bus which can be matched to a partner event source.

This operation is used by AWS customers, not by SaaS partners.

" + "documentation":"

Creates a new event bus within your account. This can be a custom event bus which you can use to receive events from your custom applications and services, or it can be a partner event bus which can be matched to a partner event source.

" }, "CreatePartnerEventSource":{ "name":"CreatePartnerEventSource", @@ -58,7 +59,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Called by an SaaS partner to create a partner event source.

This operation is not used by AWS customers.

Each partner event source can be used by one AWS account to create a matching partner event bus in that AWS account. A SaaS partner must create one partner event source for each AWS account that wants to receive those event types.

A partner event source creates events based on resources in the SaaS partner's service or application.

An AWS account that creates a partner event bus that matches the partner event source can use that event bus to receive events from the partner, and then process them using AWS Events rules and targets.

Partner event source names follow this format:

aws.partner/partner_name/event_namespace/event_name

  • partner_name is determined during partner registration and identifies the partner to AWS customers.

  • For event_namespace, we recommend that partners use a string that identifies the AWS customer within the partner's system. This should not be the customer's AWS account ID.

  • event_name is determined by the partner, and should uniquely identify an event-generating resource within the partner system. This should help AWS customers decide whether to create an event bus to receive these events.

" + "documentation":"

Called by an SaaS partner to create a partner event source. This operation is not used by AWS customers.

Each partner event source can be used by one AWS account to create a matching partner event bus in that AWS account. A SaaS partner must create one partner event source for each AWS account that wants to receive those event types.

A partner event source creates events based on resources within the SaaS partner's service or application.

An AWS account that creates a partner event bus that matches the partner event source can use that event bus to receive events from the partner, and then process them using AWS Events rules and targets.

Partner event source names follow this format:

partner_name/event_namespace/event_name

partner_name is determined during partner registration and identifies the partner to AWS customers. event_namespace is determined by the partner and is a way for the partner to categorize their events. event_name is determined by the partner, and should uniquely identify an event-generating resource within the partner system. The combination of event_namespace and event_name should help AWS customers decide whether to create an event bus to receive these events.

" }, "DeactivateEventSource":{ "name":"DeactivateEventSource", @@ -69,10 +70,11 @@ "input":{"shape":"DeactivateEventSourceRequest"}, "errors":[ {"shape":"ResourceNotFoundException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"InvalidStateException"}, {"shape":"InternalException"} ], - "documentation":"

An AWS customer uses this operation to temporarily stop receiving events from the specified partner event source. The matching event bus isn't deleted.

When you deactivate a partner event source, the source goes into PENDING state. If it remains in PENDING state for more than two weeks, it's deleted.

To activate a deactivated partner event source, use ActivateEventSource.

" + "documentation":"

You can use this operation to temporarily stop receiving events from the specified partner event source. The matching event bus is not deleted.

When you deactivate a partner event source, the source goes into PENDING state. If it remains in PENDING state for more than two weeks, it is deleted.

To activate a deactivated partner event source, use ActivateEventSource.

" }, "DeleteEventBus":{ "name":"DeleteEventBus", @@ -82,9 +84,10 @@ }, "input":{"shape":"DeleteEventBusRequest"}, "errors":[ - {"shape":"InternalException"} + {"shape":"InternalException"}, + {"shape":"ConcurrentModificationException"} ], - "documentation":"

Deletes the specified custom event bus or partner event bus. All rules associated with this event bus are also deleted. You can't delete your account's default event bus.

This operation is performed by AWS customers, not by SaaS partners.

" + "documentation":"

Deletes the specified custom event bus or partner event bus. All rules associated with this event bus need to be deleted. You can't delete your account's default event bus.

" }, "DeletePartnerEventSource":{ "name":"DeletePartnerEventSource", @@ -94,9 +97,10 @@ }, "input":{"shape":"DeletePartnerEventSourceRequest"}, "errors":[ - {"shape":"InternalException"} + {"shape":"InternalException"}, + {"shape":"ConcurrentModificationException"} ], - "documentation":"

This operation is used by SaaS partners to delete a partner event source. AWS customers don't use this operation.

When you delete an event source, the status of the corresponding partner event bus in the AWS customer account becomes DELETED.

" + "documentation":"

This operation is used by SaaS partners to delete a partner event source. This operation is not used by AWS customers.

When you delete an event source, the status of the corresponding partner event bus in the AWS customer account becomes DELETED.

" }, "DeleteRule":{ "name":"DeleteRule", @@ -111,7 +115,7 @@ {"shape":"InternalException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Deletes the specified rule.

Before you can delete the rule, you must remove all targets, using RemoveTargets.

When you delete a rule, incoming events might continue to match to the deleted rule. Allow a short period of time for changes to take effect.

Managed rules are rules created and managed by another AWS service on your behalf. These rules are created by those other AWS services to support functionality in those services. You can delete these rules using the Force option, but you should do so only if you're sure that the other service isn't still using that rule.

" + "documentation":"

Deletes the specified rule.

Before you can delete the rule, you must remove all targets, using RemoveTargets.

When you delete a rule, incoming events might continue to match to the deleted rule. Allow a short period of time for changes to take effect.

Managed rules are rules created and managed by another AWS service on your behalf. These rules are created by those other AWS services to support functionality in those services. You can delete these rules using the Force option, but you should do so only if you are sure the other service is not still using that rule.

" }, "DescribeEventBus":{ "name":"DescribeEventBus", @@ -139,7 +143,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalException"} ], - "documentation":"

This operation lists details about a partner event source that is shared with your account.

This operation is run by AWS customers, not by SaaS partners.

" + "documentation":"

This operation lists details about a partner event source that is shared with your account.

" }, "DescribePartnerEventSource":{ "name":"DescribePartnerEventSource", @@ -153,7 +157,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalException"} ], - "documentation":"

An SaaS partner can use this operation to list details about a partner event source that they have created.

AWS customers do not use this operation. Instead, AWS customers can use DescribeEventSource to see details about a partner event source that is shared with them.

" + "documentation":"

An SaaS partner can use this operation to list details about a partner event source that they have created. AWS customers do not use this operation. Instead, AWS customers can use DescribeEventSource to see details about a partner event source that is shared with them.

" }, "DescribeRule":{ "name":"DescribeRule", @@ -167,7 +171,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalException"} ], - "documentation":"

Describes the specified rule.

DescribeRule doesn't list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule.

" + "documentation":"

Describes the specified rule.

DescribeRule does not list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule.

" }, "DisableRule":{ "name":"DisableRule", @@ -182,7 +186,7 @@ {"shape":"ManagedRuleException"}, {"shape":"InternalException"} ], - "documentation":"

Disables the specified rule. A disabled rule won't match any events and won't self-trigger if it has a schedule expression.

When you disable a rule, incoming events might continue to match to the disabled rule. Allow a short period of time for changes to take effect.

" + "documentation":"

Disables the specified rule. A disabled rule won't match any events, and won't self-trigger if it has a schedule expression.

When you disable a rule, incoming events might continue to match to the disabled rule. Allow a short period of time for changes to take effect.

" }, "EnableRule":{ "name":"EnableRule", @@ -197,7 +201,7 @@ {"shape":"ManagedRuleException"}, {"shape":"InternalException"} ], - "documentation":"

Enables the specified rule. If the rule doesn't exist, the operation fails.

When you enable a rule, incoming events might not immediately start matching to a newly enabled rule. Allow a short period of time for changes to take effect.

" + "documentation":"

Enables the specified rule. If the rule does not exist, the operation fails.

When you enable a rule, incoming events might not immediately start matching to a newly enabled rule. Allow a short period of time for changes to take effect.

" }, "ListEventBuses":{ "name":"ListEventBuses", @@ -210,7 +214,7 @@ "errors":[ {"shape":"InternalException"} ], - "documentation":"

Lists all the event buses in your account, including the default event bus, custom event buses, and partner event buses.

This operation is run by AWS customers, not by SaaS partners.

" + "documentation":"

Lists all the event buses in your account, including the default event bus, custom event buses, and partner event buses.

" }, "ListEventSources":{ "name":"ListEventSources", @@ -223,7 +227,7 @@ "errors":[ {"shape":"InternalException"} ], - "documentation":"

You can use this to see all the partner event sources that have been shared with your AWS account. For more information about partner event sources, see CreateEventBus.

This operation is run by AWS customers, not by SaaS partners.

" + "documentation":"

You can use this to see all the partner event sources that have been shared with your AWS account. For more information about partner event sources, see CreateEventBus.

" }, "ListPartnerEventSourceAccounts":{ "name":"ListPartnerEventSourceAccounts", @@ -237,7 +241,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalException"} ], - "documentation":"

An SaaS partner can use this operation to display the AWS account ID that a particular partner event source name is associated with.

This operation is used by SaaS partners, not by AWS customers.

" + "documentation":"

An SaaS partner can use this operation to display the AWS account ID that a particular partner event source name is associated with. This operation is not used by AWS customers.

" }, "ListPartnerEventSources":{ "name":"ListPartnerEventSources", @@ -250,7 +254,7 @@ "errors":[ {"shape":"InternalException"} ], - "documentation":"

An SaaS partner can use this operation to list all the partner event source names that they have created.

This operation is not used by AWS customers.

" + "documentation":"

An SaaS partner can use this operation to list all the partner event source names that they have created. This operation is not used by AWS customers.

" }, "ListRuleNamesByTarget":{ "name":"ListRuleNamesByTarget", @@ -264,7 +268,7 @@ {"shape":"InternalException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists the rules for the specified target. You can see which rules can invoke a specific target in your account.

" + "documentation":"

Lists the rules for the specified target. You can see which of the rules in Amazon EventBridge can invoke a specific target in your account.

" }, "ListRules":{ "name":"ListRules", @@ -278,7 +282,7 @@ {"shape":"InternalException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists your EventBridge rules. You can either list all the rules or provide a prefix to match to the rule names.

ListRules doesn't list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule.

" + "documentation":"

Lists your Amazon EventBridge rules. You can either list all the rules or you can provide a prefix to match to the rule names.

ListRules does not list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -292,7 +296,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalException"} ], - "documentation":"

Displays the tags associated with an EventBridge resource. In EventBridge, rules can be tagged.

" + "documentation":"

Displays the tags associated with an EventBridge resource. In EventBridge, rules and event buses can be tagged.

" }, "ListTargetsByRule":{ "name":"ListTargetsByRule", @@ -319,7 +323,7 @@ "errors":[ {"shape":"InternalException"} ], - "documentation":"

Sends custom events to EventBridge so that they can be matched to rules. These events can be from your custom applications and services.

" + "documentation":"

Sends custom events to Amazon EventBridge so that they can be matched to rules.

" }, "PutPartnerEvents":{ "name":"PutPartnerEvents", @@ -332,7 +336,7 @@ "errors":[ {"shape":"InternalException"} ], - "documentation":"

This is used by SaaS partners to write events to a customer's partner event bus.

AWS customers do not use this operation. Instead, AWS customers can use PutEvents to write custom events from their own applications to an event bus.

" + "documentation":"

This is used by SaaS partners to write events to a customer's partner event bus. AWS customers do not use this operation.

" }, "PutPermission":{ "name":"PutPermission", @@ -347,7 +351,7 @@ {"shape":"InternalException"}, {"shape":"ConcurrentModificationException"} ], - "documentation":"

Running PutPermission permits the specified AWS account or AWS organization to put events to the specified event bus. Rules in your account are triggered by these events arriving to an event bus in your account.

For another account to send events to your account, that external account must have a rule with your account's event bus as a target.

To enable multiple AWS accounts to put events to an event bus, run PutPermission once for each of these accounts. Or, if all the accounts are members of the same AWS organization, you can run PutPermission once specifying Principal as \"*\" and specifying the AWS organization ID in Condition, to grant permissions to all accounts in that organization.

If you grant permissions using an organization, then accounts in that organization must specify a RoleArn with proper permissions when they use PutTarget to add your account's event bus as a target. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide.

The permission policy on an event bus can't exceed 10 KB in size.

" + "documentation":"

Running PutPermission permits the specified AWS account or AWS organization to put events to the specified event bus. CloudWatch Events rules in your account are triggered by these events arriving to an event bus in your account.

For another account to send events to your account, that external account must have an EventBridge rule with your account's event bus as a target.

To enable multiple AWS accounts to put events to your event bus, run PutPermission once for each of these accounts. Or, if all the accounts are members of the same AWS organization, you can run PutPermission once specifying Principal as \"*\" and specifying the AWS organization ID in Condition, to grant permissions to all accounts in that organization.

If you grant permissions using an organization, then accounts in that organization must specify a RoleArn with proper permissions when they use PutTarget to add your account's event bus as a target. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide.

The permission policy on the default event bus cannot exceed 10 KB in size.

" }, "PutRule":{ "name":"PutRule", @@ -365,7 +369,7 @@ {"shape":"InternalException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Creates or updates the specified rule. Rules are enabled by default or based on value of the state. You can disable a rule using DisableRule.

A single rule watches for events from a single event bus. Events generated by AWS services go to your account's default event bus. Events generated by SaaS partner services or applications go to the matching partner event bus. If you have custom applications or services, you can specify whether their events go to your default event bus or a custom event bus that you have created. For more information, see CreateEventBus.

If you're updating an existing rule, the rule is replaced with what you specify in this PutRule command. If you omit arguments in PutRule, the old values for those arguments aren't kept. Instead, they're replaced with null values.

When you create or update a rule, incoming events might not immediately start matching to new or updated rules. Allow a short period of time for changes to take effect.

A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression, in which case the rule triggers on matching events as well as on a schedule.

When you initially create a rule, you can optionally assign one or more tags to the rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only rules with certain tag values. To use the PutRule operation and assign tags, you must have both the events:PutRule and events:TagResource permissions.

If you are updating an existing rule, any tags you specify in the PutRule operation are ignored. To update the tags of an existing rule, use TagResource and UntagResource.

Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event that you want to match.

In EventBridge, you could create rules that lead to infinite loops, where a rule is fired repeatedly. For example, a rule might detect that ACLs have changed on an S3 bucket, and trigger software to change them to the desired state. If you don't write the rule carefully, the subsequent change to the ACLs fires the rule again, creating an infinite loop.

To prevent this, write the rules so that the triggered actions don't refire the same rule. For example, your rule could fire only if ACLs are found to be in a bad state, instead of after any change.

An infinite loop can quickly cause higher than expected charges. We recommend that you use budgeting, which alerts you when charges exceed your specified limit. For more information, see Managing Your Costs with Budgets.

" + "documentation":"

Creates or updates the specified rule. Rules are enabled by default, or based on value of the state. You can disable a rule using DisableRule.

A single rule watches for events from a single event bus. Events generated by AWS services go to your account's default event bus. Events generated by SaaS partner services or applications go to the matching partner event bus. If you have custom applications or services, you can specify whether their events go to your default event bus or a custom event bus that you have created. For more information, see CreateEventBus.

If you are updating an existing rule, the rule is replaced with what you specify in this PutRule command. If you omit arguments in PutRule, the old values for those arguments are not kept. Instead, they are replaced with null values.

When you create or update a rule, incoming events might not immediately start matching to new or updated rules. Allow a short period of time for changes to take effect.

A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression, in which case the rule triggers on matching events as well as on a schedule.

When you initially create a rule, you can optionally assign one or more tags to the rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only rules with certain tag values. To use the PutRule operation and assign tags, you must have both the events:PutRule and events:TagResource permissions.

If you are updating an existing rule, any tags you specify in the PutRule operation are ignored. To update the tags of an existing rule, use TagResource and UntagResource.

Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match.

In EventBridge, it is possible to create rules that lead to infinite loops, where a rule is fired repeatedly. For example, a rule might detect that ACLs have changed on an S3 bucket, and trigger software to change them to the desired state. If the rule is not written carefully, the subsequent change to the ACLs fires the rule again, creating an infinite loop.

To prevent this, write the rules so that the triggered actions do not re-fire the same rule. For example, your rule could fire only if ACLs are found to be in a bad state, instead of after any change.

An infinite loop can quickly cause higher than expected charges. We recommend that you use budgeting, which alerts you when charges exceed your specified limit. For more information, see Managing Your Costs with Budgets.

" }, "PutTargets":{ "name":"PutTargets", @@ -382,7 +386,7 @@ {"shape":"ManagedRuleException"}, {"shape":"InternalException"} ], - "documentation":"

Adds the specified targets to the specified rule, or updates the targets if they're already associated with the rule.

Targets are the resources that are invoked when a rule is triggered.

You can configure the following as targets in EventBridge:

  • EC2 instances

  • SSM Run Command

  • SSM Automation

  • AWS Lambda functions

  • Data streams in Amazon Kinesis Data Streams

  • Data delivery streams in Amazon Kinesis Data Firehose

  • Amazon ECS tasks

  • AWS Step Functions state machines

  • AWS Batch jobs

  • AWS CodeBuild projects

  • Pipelines in AWS CodePipeline

  • Amazon Inspector assessment templates

  • Amazon SNS topics

  • Amazon SQS queues, including FIFO queues

  • The default event bus of another AWS account

Creating rules with built-in targets is supported only on the AWS Management Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances API call, EC2 StopInstances API call, and EC2 TerminateInstances API call.

For some target types, PutTargets provides target-specific parameters. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field.

To be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource-based policies. For EC2 instances, Kinesis data streams, and AWS Step Functions state machines, EventBridge relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon EventBridge User Guide.

If another AWS account is in the same Region and has granted you permission (using PutPermission), you can send events to that account. Set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn value when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to another account is charged as a custom event. The account receiving the event isn't charged. For more information, see Amazon EventBridge Pricing.

If you're setting an event bus in another account as the target and that account granted permission to your account through an organization instead of directly by the account ID, you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide.

For more information about enabling cross-account events, see PutPermission.

Input, InputPath, and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event:

  • If none of the following arguments are specified for a target, the entire event is passed to the target in JSON format (unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target).

  • If Input is specified in the form of valid JSON, then the matched event is overridden with this constant.

  • If InputPath is specified in the form of JSONPath (for example, $.detail), only the part of the event specified in the path is passed to the target (for example, only the detail part of the event is passed).

  • If InputTransformer is specified, one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target.

When you specify InputPath or InputTransformer, you must use JSON dot notation, not bracket notation.

When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is nonzero in the response, and each entry in FailedEntries provides the ID of the failed target and the error code.

" + "documentation":"

Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule.

Targets are the resources that are invoked when a rule is triggered.

You can configure the following as targets for Events:

  • EC2 instances

  • SSM Run Command

  • SSM Automation

  • AWS Lambda functions

  • Data streams in Amazon Kinesis Data Streams

  • Data delivery streams in Amazon Kinesis Data Firehose

  • Amazon ECS tasks

  • AWS Step Functions state machines

  • AWS Batch jobs

  • AWS CodeBuild projects

  • Pipelines in AWS CodePipeline

  • Amazon Inspector assessment templates

  • Amazon SNS topics

  • Amazon SQS queues, including FIFO queues

  • The default event bus of another AWS account

Creating rules with built-in targets is supported only in the AWS Management Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances API call, EC2 StopInstances API call, and EC2 TerminateInstances API call.

For some target types, PutTargets provides target-specific parameters. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field.

To be able to make API calls against the resources that you own, Amazon CloudWatch Events needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource-based policies. For EC2 instances, Kinesis data streams, and AWS Step Functions state machines, EventBridge relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon EventBridge User Guide.

If another AWS account is in the same region and has granted you permission (using PutPermission), you can send events to that account. Set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn value when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to another account is charged as a custom event. The account receiving the event is not charged. For more information, see Amazon CloudWatch Pricing.

Input, InputPath, and InputTransformer are not available with PutTarget if the target is an event bus of a different AWS account.

If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide.

For more information about enabling cross-account events, see PutPermission.

Input, InputPath, and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event:

  • If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format (unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target).

  • If Input is specified in the form of valid JSON, then the matched event is overridden with this constant.

  • If InputPath is specified in the form of JSONPath (for example, $.detail), then only the part of the event specified in the path is passed to the target (for example, only the detail part of the event is passed).

  • If InputTransformer is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target.

When you specify InputPath or InputTransformer, you must use JSON dot notation, not bracket notation.

When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Allow a short period of time for changes to take effect.

This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code.

" }, "RemovePermission":{ "name":"RemovePermission", @@ -428,7 +432,7 @@ {"shape":"InternalException"}, {"shape":"ManagedRuleException"} ], - "documentation":"

Assigns one or more tags (key-value pairs) to the specified EventBridge resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. In EventBridge, rules can be tagged.

Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.

You can use the TagResource action with a rule that already has tags. If you specify a new tag key for the rule, this tag is appended to the list of tags associated with the rule. If you specify a tag key that is already associated with the rule, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a resource.

" + "documentation":"

Assigns one or more tags (key-value pairs) to the specified EventBridge resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. In EventBridge, rules and event buses can be tagged.

Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a resource.

" }, "TestEventPattern":{ "name":"TestEventPattern", @@ -442,7 +446,7 @@ {"shape":"InvalidEventPatternException"}, {"shape":"InternalException"} ], - "documentation":"

Tests whether the specified event pattern matches the provided event.

Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event that you want to match.

" + "documentation":"

Tests whether the specified event pattern matches the provided event.

Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match.

" }, "UntagResource":{ "name":"UntagResource", @@ -458,7 +462,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"ManagedRuleException"} ], - "documentation":"

Removes one or more tags from the specified EventBridge resource. In EventBridge, rules can be tagged.

" + "documentation":"

Removes one or more tags from the specified EventBridge resource. In CloudWatch Events, rules and event buses can be tagged.

" } }, "shapes":{ @@ -506,14 +510,14 @@ }, "SecurityGroups":{ "shape":"StringList", - "documentation":"

Specifies the security groups associated with the task. These security groups must all be in the same VPC. You can specify as many as five security groups. If you don't specify a security group, the default security group for the VPC is used.

" + "documentation":"

Specifies the security groups associated with the task. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used.

" }, "AssignPublicIp":{ "shape":"AssignPublicIp", "documentation":"

Specifies whether the task's elastic network interface receives a public IP address. You can specify ENABLED only when LaunchType in EcsParameters is set to FARGATE.

" } }, - "documentation":"

This structure specifies the VPC subnets and security groups for the task and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" + "documentation":"

This structure specifies the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" }, "BatchArrayProperties":{ "type":"structure", @@ -546,7 +550,7 @@ }, "RetryStrategy":{ "shape":"BatchRetryStrategy", - "documentation":"

The retry strategy to use for failed jobs if the target is an AWS Batch job. The retry strategy is the number of times to retry the failed job execution. Valid values are 1–10. When you specify a retry strategy here, it overrides the retry strategy defined in the job definition.

" + "documentation":"

The retry strategy to use for failed jobs, if the target is an AWS Batch job. The retry strategy is the number of times to retry the failed job execution. Valid values are 1–10. When you specify a retry strategy here, it overrides the retry strategy defined in the job definition.

" } }, "documentation":"

The custom parameters to be used when the target is an AWS Batch job.

" @@ -559,14 +563,14 @@ "documentation":"

The number of times to attempt to retry, if the job fails. Valid values are 1–10.

" } }, - "documentation":"

The retry strategy to use for failed jobs if the target is an AWS Batch job. If you specify a retry strategy here, it overrides the retry strategy defined in the job definition.

" + "documentation":"

The retry strategy to use for failed jobs, if the target is an AWS Batch job. If you specify a retry strategy here, it overrides the retry strategy defined in the job definition.

" }, "Boolean":{"type":"boolean"}, "ConcurrentModificationException":{ "type":"structure", "members":{ }, - "documentation":"

There is concurrent modification on a resource.

", + "documentation":"

There is concurrent modification on a rule or target.

", "exception":true }, "Condition":{ @@ -579,18 +583,18 @@ "members":{ "Type":{ "shape":"String", - "documentation":"

The type of condition. Currently, the only supported value is StringEquals.

" + "documentation":"

Specifies the type of condition. Currently the only supported value is StringEquals.

" }, "Key":{ "shape":"String", - "documentation":"

The key for the condition. Currently, the only supported key is aws:PrincipalOrgID.

" + "documentation":"

Specifies the key for the condition. Currently the only supported key is aws:PrincipalOrgID.

" }, "Value":{ "shape":"String", - "documentation":"

The value for the key. Currently, this must be the ID of the organization.

" + "documentation":"

Specifies the value for the key. Currently, this must be the ID of the organization.

" } }, - "documentation":"

A JSON string that you can use to limit the event bus permissions that you're granting to only accounts that fulfill the condition. Currently, the only supported condition is membership in a certain AWS organization. The string must contain Type, Key, and Value fields. The Value field specifies the ID of the AWS organization. The following is an example value for Condition:

'{\"Type\" : \"StringEquals\", \"Key\": \"aws:PrincipalOrgID\", \"Value\": \"o-1234567890\"}'

" + "documentation":"

A JSON string which you can use to limit the event bus permissions you are granting to only accounts that fulfill the condition. Currently, the only supported condition is membership in a certain AWS organization. The string must contain Type, Key, and Value fields. The Value field specifies the ID of the AWS organization. Following is an example value for Condition:

'{\"Type\" : \"StringEquals\", \"Key\": \"aws:PrincipalOrgID\", \"Value\": \"o-1234567890\"}'

" }, "CreateEventBusRequest":{ "type":"structure", @@ -598,11 +602,15 @@ "members":{ "Name":{ "shape":"EventBusName", - "documentation":"

The name of the new event bus.

The names of custom event buses can't contain the / character. You can't use the name default for a custom event bus because this name is already used for your account's default event bus.

If this is a partner event bus, the name must exactly match the name of the partner event source that this event bus is matched to. This name will include the / character.

" + "documentation":"

The name of the new event bus.

Event bus names cannot contain the / character. You can't use the name default for a custom event bus, as this name is already used for your account's default event bus.

If this is a partner event bus, the name must exactly match the name of the partner event source that this event bus is matched to.

" }, "EventSourceName":{ "shape":"EventSourceName", - "documentation":"

If you're creating a partner event bus, this specifies the partner event source that the new event bus will be matched with.

" + "documentation":"

If you are creating a partner event bus, this specifies the partner event source that the new event bus will be matched with.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags to associate with the event bus.

" } } }, @@ -628,7 +636,7 @@ }, "Account":{ "shape":"AccountId", - "documentation":"

The AWS account ID of the customer who is permitted to create a matching partner event bus for this partner event source.

" + "documentation":"

The AWS account ID that is permitted to create a matching partner event bus for this partner event source.

" } } }, @@ -749,7 +757,7 @@ }, "ExpirationTime":{ "shape":"Timestamp", - "documentation":"

The date and time that the event source will expire if you don't create a matching event bus.

" + "documentation":"

The date and time that the event source will expire if you do not create a matching event bus.

" }, "Name":{ "shape":"String", @@ -757,7 +765,7 @@ }, "State":{ "shape":"EventSourceState", - "documentation":"

The state of the event source. If it's ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it's PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it's DELETED, you have created a matching event bus, but the event source has since been deleted.

" + "documentation":"

The state of the event source. If it is ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it is PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it is DELETED, you have created a matching event bus, but the event source has since been deleted.

" } } }, @@ -811,11 +819,11 @@ }, "EventPattern":{ "shape":"EventPattern", - "documentation":"

The event pattern. For more information, see Event Patterns in the Amazon EventBridge User Guide.

" + "documentation":"

The event pattern. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" }, "ScheduleExpression":{ "shape":"ScheduleExpression", - "documentation":"

The scheduling expression: for example, \"cron(0 20 * * ? *)\" or \"rate(5 minutes)\".

" + "documentation":"

The scheduling expression. For example, \"cron(0 20 * * ? *)\", \"rate(5 minutes)\".

" }, "State":{ "shape":"RuleState", @@ -871,7 +879,7 @@ }, "NetworkConfiguration":{ "shape":"NetworkConfiguration", - "documentation":"

Use this structure if the ECS task uses the awsvpc network mode. This structure specifies the VPC subnets and security groups associated with the task and whether a public IP address is to be used. This structure is required if LaunchType is FARGATE because the awsvpc mode is required for Fargate tasks.

If you specify NetworkConfiguration when the target ECS task doesn't use the awsvpc network mode, the task fails.

" + "documentation":"

Use this structure if the ECS task uses the awsvpc network mode. This structure specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. This structure is required if LaunchType is FARGATE because the awsvpc mode is required for Fargate tasks.

If you specify NetworkConfiguration when the target ECS task does not use the awsvpc network mode, the task fails.

" }, "PlatformVersion":{ "shape":"String", @@ -948,11 +956,11 @@ }, "CreationTime":{ "shape":"Timestamp", - "documentation":"

The date and time when the event source was created.

" + "documentation":"

The date and time the event source was created.

" }, "ExpirationTime":{ "shape":"Timestamp", - "documentation":"

The date and time when the event source will expire if the AWS account doesn't create a matching event bus for it.

" + "documentation":"

The date and time that the event source will expire, if the AWS account doesn't create a matching event bus for it.

" }, "Name":{ "shape":"String", @@ -960,7 +968,7 @@ }, "State":{ "shape":"EventSourceState", - "documentation":"

The state of the event source. If it's ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it's PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it's DELETED, you have created a matching event bus, but the event source has since been deleted.

" + "documentation":"

The state of the event source. If it is ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it is PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it is DELETED, you have created a matching event bus, but the event source has since been deleted.

" } }, "documentation":"

A partner event source is created by an SaaS partner. If a customer creates a partner event bus that matches this event source, that AWS account can receive events from the partner's applications or services.

" @@ -996,11 +1004,11 @@ "members":{ "InputPathsMap":{ "shape":"TransformerPaths", - "documentation":"

Map of JSON paths to be extracted from the event. You can then insert these in the template in InputTemplate to produce the output to be sent to the target.

InputPathsMap is an array key-value pairs, where each value is a valid JSON path. You can have as many as 10 key-value pairs. You must use JSON dot notation, not bracket notation.

The keys can't start with \"AWS\".

" + "documentation":"

Map of JSON paths to be extracted from the event. You can then insert these in the template in InputTemplate to produce the output you want to be sent to the target.

InputPathsMap is an array key-value pairs, where each value is a valid JSON path. You can have as many as 10 key-value pairs. You must use JSON dot notation, not bracket notation.

The keys cannot start with \"AWS.\"

" }, "InputTemplate":{ "shape":"TransformerInput", - "documentation":"

Input template where you specify placeholders that will be filled with the values of the keys from InputPathsMap to customize the data sent to the target. Enclose each InputPathsMaps value in brackets: <value>. The InputTemplate must be valid JSON.

If InputTemplate is a JSON object (surrounded by curly braces), the following restrictions apply:

  • The placeholder can't be used as an object key

  • Object values can't include quote marks

The following example shows the syntax for using InputPathsMap and InputTemplate.

\"InputTransformer\":

{

\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},

\"InputTemplate\": \"<instance> is in state <status>\"

}

To have the InputTemplate include quote marks within a JSON string, escape each quote marks with a slash, as in the following example:

\"InputTransformer\":

{

\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},

\"InputTemplate\": \"<instance> is in state \\\"<status>\\\"\"

}

" + "documentation":"

Input template where you specify placeholders that will be filled with the values of the keys from InputPathsMap to customize the data sent to the target. Enclose each InputPathsMaps value in brackets: <value> The InputTemplate must be valid JSON.

If InputTemplate is a JSON object (surrounded by curly braces), the following restrictions apply:

  • The placeholder cannot be used as an object key.

  • Object values cannot include quote marks.

The following example shows the syntax for using InputPathsMap and InputTemplate.

\"InputTransformer\":

{

\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},

\"InputTemplate\": \"<instance> is in state <status>\"

}

To have the InputTemplate include quote marks within a JSON string, escape each quote marks with a slash, as in the following example:

\"InputTransformer\":

{

\"InputPathsMap\": {\"instance\": \"$.detail.instance\",\"status\": \"$.detail.status\"},

\"InputTemplate\": \"<instance> is in state \\\"<status>\\\"\"

}

" } }, "documentation":"

Contains the parameters needed for you to provide custom input to a target based on one or more pieces of data extracted from the event.

" @@ -1024,14 +1032,14 @@ "type":"structure", "members":{ }, - "documentation":"

The event pattern isn't valid.

", + "documentation":"

The event pattern is not valid.

", "exception":true }, "InvalidStateException":{ "type":"structure", "members":{ }, - "documentation":"

The specified state isn't a valid state for an event source.

", + "documentation":"

The specified state is not a valid state for an event source.

", "exception":true }, "KinesisParameters":{ @@ -1043,7 +1051,7 @@ "documentation":"

The JSON path to be extracted from the event and used as the partition key. For more information, see Amazon Kinesis Streams Key Concepts in the Amazon Kinesis Streams Developer Guide.

" } }, - "documentation":"

This object enables you to specify a JSON path to extract from the event and use as the partition key for the Amazon Kinesis data stream so that you can control the shard that the event goes to. If you don't include this parameter, the default is to use the eventId as the partition key.

" + "documentation":"

This object enables you to specify a JSON path to extract from the event and use as the partition key for the Amazon Kinesis data stream, so that you can control the shard to which the event goes. If you do not include this parameter, the default is to use the eventId as the partition key.

" }, "LaunchType":{ "type":"string", @@ -1056,7 +1064,7 @@ "type":"structure", "members":{ }, - "documentation":"

You tried to create more resources than is allowed.

", + "documentation":"

You tried to create more rules or add more targets to a rule than is allowed.

", "exception":true }, "LimitMax100":{ @@ -1081,7 +1089,7 @@ }, "Limit":{ "shape":"LimitMax100", - "documentation":"

Specifying this limits the number of results returned by this operation. The operation also returns a NextToken that you can use in a subsequent operation to retrieve the next set of results.

" + "documentation":"

Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.

" } } }, @@ -1111,7 +1119,7 @@ }, "Limit":{ "shape":"LimitMax100", - "documentation":"

Specifying this limits the number of results returned by this operation. The operation also returns a NextToken that you can use in a subsequent operation to retrieve the next set of results.

" + "documentation":"

Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.

" } } }, @@ -1142,7 +1150,7 @@ }, "Limit":{ "shape":"LimitMax100", - "documentation":"

Specifying this limits the number of results returned by this operation. The operation also returns a NextToken that you can use in a subsequent operation to retrieve the next set of results.

" + "documentation":"

Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.

" } } }, @@ -1173,7 +1181,7 @@ }, "Limit":{ "shape":"LimitMax100", - "documentation":"

pecifying this limits the number of results returned by this operation. The operation also returns a NextToken that you can use in a subsequent operation to retrieve the next set of results.

" + "documentation":"

pecifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.

" } } }, @@ -1265,7 +1273,7 @@ "members":{ "ResourceARN":{ "shape":"Arn", - "documentation":"

The ARN of the rule for which you want to view tags.

" + "documentation":"

The ARN of the EventBridge resource for which you want to view tags.

" } } }, @@ -1274,7 +1282,7 @@ "members":{ "Tags":{ "shape":"TagList", - "documentation":"

The list of tag keys and values associated with the rule that you specified.

" + "documentation":"

The list of tag keys and values associated with the resource you specified

" } } }, @@ -1322,7 +1330,7 @@ "type":"structure", "members":{ }, - "documentation":"

An AWS service created this rule on behalf of your account. That service manages it. If you see this error in response to DeleteRule or RemoveTargets, you can use the Force parameter in those calls to delete the rule or remove targets from the rule. You can't modify these managed rules by using DisableRule, EnableRule, PutTargets, PutRule, TagResource, or UntagResource.

", + "documentation":"

This rule was created by an AWS service on behalf of your account. It is managed by that service. If you see this error in response to DeleteRule or RemoveTargets, you can use the Force parameter in those calls to delete the rule or remove targets from the rule. You cannot modify these managed rules by using DisableRule, EnableRule, PutTargets, PutRule, TagResource, or UntagResource.

", "exception":true }, "MessageGroupId":{"type":"string"}, @@ -1331,7 +1339,7 @@ "members":{ "awsvpcConfiguration":{ "shape":"AwsVpcConfiguration", - "documentation":"

Use this structure to specify the VPC subnets and security groups for the task and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" + "documentation":"

Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" } }, "documentation":"

This structure specifies the network configuration for an ECS task.

" @@ -1370,15 +1378,15 @@ }, "CreationTime":{ "shape":"Timestamp", - "documentation":"

The date and time when the event source was created.

" + "documentation":"

The date and time the event source was created.

" }, "ExpirationTime":{ "shape":"Timestamp", - "documentation":"

The date and time when the event source will expire if the AWS account doesn't create a matching event bus for it.

" + "documentation":"

The date and time that the event source will expire, if the AWS account doesn't create a matching event bus for it.

" }, "State":{ "shape":"EventSourceState", - "documentation":"

The state of the event source. If it's ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it's PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it's DELETED, you have created a matching event bus, but the event source has since been deleted.

" + "documentation":"

The state of the event source. If it is ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it is PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it is DELETED, you have created a matching event bus, but the event source has since been deleted.

" } }, "documentation":"

The AWS account that a partner event source has been offered to.

" @@ -1425,27 +1433,27 @@ "members":{ "Time":{ "shape":"EventTime", - "documentation":"

The timestamp of the event, per RFC3339. If no timestamp is provided, the timestamp of the PutEvents call is used.

" + "documentation":"

The time stamp of the event, per RFC3339. If no time stamp is provided, the time stamp of the PutEvents call is used.

" }, "Source":{ "shape":"String", - "documentation":"

The source of the event. This field is required.

" + "documentation":"

The source of the event.

" }, "Resources":{ "shape":"EventResourceList", - "documentation":"

AWS resources, identified by Amazon Resource Name (ARN), that the event primarily concerns. Any number, including zero, can be present.

" + "documentation":"

AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present.

" }, "DetailType":{ "shape":"String", - "documentation":"

Free-form string used to decide which fields to expect in the event detail. This field is required.

" + "documentation":"

Free-form string used to decide what fields to expect in the event detail.

" }, "Detail":{ "shape":"String", - "documentation":"

A valid JSON object. There is no other schema imposed. The JSON object can contain fields and nested subobjects.

This field is required.

" + "documentation":"

A valid JSON string. There is no other schema imposed. The JSON string may contain fields and nested subobjects.

" }, "EventBusName":{ "shape":"NonPartnerEventBusName", - "documentation":"

The event bus that will receive the event. Only the rules that are associated with this event bus can match the event.

" + "documentation":"

The event bus that will receive the event. Only the rules that are associated with this event bus will be able to match the event.

" } }, "documentation":"

Represents an event to be submitted.

" @@ -1509,20 +1517,20 @@ "documentation":"

The date and time of the event.

" }, "Source":{ - "shape":"String", - "documentation":"

The event source that is generating the evntry. This field is required.

" + "shape":"EventSourceName", + "documentation":"

The event source that is generating the evntry.

" }, "Resources":{ "shape":"EventResourceList", - "documentation":"

AWS resources, identified by Amazon Resource Name (ARN), that the event primarily concerns. Any number, including zero, can be present.

" + "documentation":"

AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present.

" }, "DetailType":{ "shape":"String", - "documentation":"

A free-form string used to decide which fields to expect in the event detail. This field is required.

" + "documentation":"

A free-form string used to decide what fields to expect in the event detail.

" }, "Detail":{ "shape":"String", - "documentation":"

A valid JSON object. There is no other schema imposed. The JSON object can contain fields and nested subobjects. This field is required.

" + "documentation":"

A valid JSON string. There is no other schema imposed. The JSON string may contain fields and nested subobjects.

" } }, "documentation":"

The details about an event generated by an SaaS partner.

" @@ -1538,7 +1546,7 @@ "members":{ "FailedEntryCount":{ "shape":"Integer", - "documentation":"

The number of events from this operation that couldn't be written to the partner event bus.

" + "documentation":"

The number of events from this operation that could not be written to the partner event bus.

" }, "Entries":{ "shape":"PutPartnerEventsResultEntryList", @@ -1562,7 +1570,7 @@ "documentation":"

The error message that explains why the event submission failed.

" } }, - "documentation":"

Represents an event that a partner tried to generate but failed.

" + "documentation":"

Represents an event that a partner tried to generate, but failed.

" }, "PutPartnerEventsResultEntryList":{ "type":"list", @@ -1582,19 +1590,19 @@ }, "Action":{ "shape":"Action", - "documentation":"

The action that you're enabling the other account to perform. Currently, this must be events:PutEvents.

" + "documentation":"

The action that you are enabling the other account to perform. Currently, this must be events:PutEvents.

" }, "Principal":{ "shape":"Principal", - "documentation":"

The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify \"*\" to permit any account to put events to your default event bus.

If you specify \"*\" without specifying Condition, avoid creating rules that might match undesirable events. To create more secure rules, make sure that the event pattern for each rule contains an account field with a specific account ID to receive events from. Rules that have an account field match events sent only from accounts that are listed in the rule's account field.

" + "documentation":"

The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify \"*\" to permit any account to put events to your default event bus.

If you specify \"*\" without specifying Condition, avoid creating rules that may match undesirable events. To create more secure rules, make sure that the event pattern for each rule contains an account field with a specific account ID from which to receive events. Rules with an account field do not match any events sent from other accounts.

" }, "StatementId":{ "shape":"StatementId", - "documentation":"

An identifier string for the external account that you're granting permissions to. If you later want to revoke the permission for this external account, specify this StatementId when you run RemovePermission.

" + "documentation":"

An identifier string for the external account that you are granting permissions to. If you later want to revoke the permission for this external account, specify this StatementId when you run RemovePermission.

" }, "Condition":{ "shape":"Condition", - "documentation":"

This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization. For more information about AWS Organizations, see What Is AWS Organizations? in the AWS Organizations User Guide.

If you specify Condition with an AWS organization ID and specify \"*\" as the value for Principal, you grant permission to all the accounts in the named organization.

The Condition is a JSON string that must contain Type, Key, and Value fields.

" + "documentation":"

This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization. For more information about AWS Organizations, see What Is AWS Organizations in the AWS Organizations User Guide.

If you specify Condition with an AWS organization ID, and specify \"*\" as the value for Principal, you grant permission to all the accounts in the named organization.

The Condition is a JSON string which must contain Type, Key, and Value fields.

" } } }, @@ -1604,15 +1612,15 @@ "members":{ "Name":{ "shape":"RuleName", - "documentation":"

The name of the rule that you're creating or updating.

A rule can't have the same name as another rule in the same Region or on the same event bus.

" + "documentation":"

The name of the rule that you are creating or updating.

" }, "ScheduleExpression":{ "shape":"ScheduleExpression", - "documentation":"

The scheduling expression: for example, \"cron(0 20 * * ? *)\" or \"rate(5 minutes)\".

" + "documentation":"

The scheduling expression. For example, \"cron(0 20 * * ? *)\" or \"rate(5 minutes)\".

" }, "EventPattern":{ "shape":"EventPattern", - "documentation":"

The event pattern. For more information, see Event Patterns in the Amazon EventBridge User Guide.

" + "documentation":"

The event pattern. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" }, "State":{ "shape":"RuleState", @@ -1736,7 +1744,7 @@ }, "Force":{ "shape":"Boolean", - "documentation":"

If this is a managed rule created by an AWS service on your behalf, you must specify Force as True to remove targets. This parameter is ignored for rules that aren't managed rules. You can check whether a rule is a managed rule by using DescribeRule or ListRules and checking the ManagedBy field of the response.

" + "documentation":"

If this is a managed rule, created by an AWS service on your behalf, you must specify Force as True to remove targets. This parameter is ignored for rules that are not managed rules. You can check whether a rule is a managed rule by using DescribeRule or ListRules and checking the ManagedBy field of the response.

" } } }, @@ -1779,14 +1787,14 @@ "type":"structure", "members":{ }, - "documentation":"

The resource that you're trying to create already exists.

", + "documentation":"

The resource you are trying to create already exists.

", "exception":true }, "ResourceNotFoundException":{ "type":"structure", "members":{ }, - "documentation":"

An entity that you specified doesn't exist.

", + "documentation":"

An entity that you specified does not exist.

", "exception":true }, "RoleArn":{ @@ -1807,7 +1815,7 @@ }, "EventPattern":{ "shape":"EventPattern", - "documentation":"

The event pattern of the rule. For more information, see Event Patterns in the Amazon EventBridge User Guide.

" + "documentation":"

The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" }, "State":{ "shape":"RuleState", @@ -1819,7 +1827,7 @@ }, "ScheduleExpression":{ "shape":"ScheduleExpression", - "documentation":"

The scheduling expression: for example, \"cron(0 20 * * ? *)\" or \"rate(5 minutes)\".

" + "documentation":"

The scheduling expression. For example, \"cron(0 20 * * ? *)\", \"rate(5 minutes)\".

" }, "RoleArn":{ "shape":"RoleArn", @@ -1827,7 +1835,7 @@ }, "ManagedBy":{ "shape":"ManagedBy", - "documentation":"

If an AWS service created the rule on behalf of your account, this field displays the principal name of the service that created the rule.

" + "documentation":"

If the rule was created on behalf of your account by an AWS service, this field displays the principal name of the service that created the rule.

" }, "EventBusName":{ "shape":"EventBusName", @@ -1872,10 +1880,10 @@ "members":{ "RunCommandTargets":{ "shape":"RunCommandTargets", - "documentation":"

Currently, we support including only one RunCommandTarget block, which specifies either an array of InstanceIds or a tag.

" + "documentation":"

Currently, we support including only one RunCommandTarget block, which specifies either an array of InstanceIds or a tag.

" } }, - "documentation":"

This parameter contains the criteria (either InstanceIds or a tag) used to specify which EC2 instances are to be sent the command.

" + "documentation":"

This parameter contains the criteria (either InstanceIds or a tag) used to specify which EC2 instances are to be sent the command.

" }, "RunCommandTarget":{ "type":"structure", @@ -1893,7 +1901,7 @@ "documentation":"

If Key is tag: tag-key, Values is a list of tag values. If Key is InstanceIds, Values is a list of Amazon EC2 instance IDs.

" } }, - "documentation":"

Information about the EC2 instances that are to be sent the command, specified as key-value pairs. Each RunCommandTarget block can include only one key, but this key can specify multiple values.

" + "documentation":"

Information about the EC2 instances that are to be sent the command, specified as key-value pairs. Each RunCommandTarget block can include only one key, but this key may specify multiple values.

" }, "RunCommandTargetKey":{ "type":"string", @@ -1952,14 +1960,14 @@ "members":{ "Key":{ "shape":"TagKey", - "documentation":"

A string that you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.

" + "documentation":"

A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.

" }, "Value":{ "shape":"TagValue", "documentation":"

The value for the specified tag key.

" } }, - "documentation":"

A key-value pair associated with an AWS resource. In EventBridge, rules support tagging.

" + "documentation":"

A key-value pair associated with an AWS resource. In EventBridge, rules and event buses support tagging.

" }, "TagKey":{ "type":"string", @@ -1983,11 +1991,11 @@ "members":{ "ResourceARN":{ "shape":"Arn", - "documentation":"

The ARN of the rule that you're adding tags to.

" + "documentation":"

The ARN of the EventBridge resource that you're adding tags to.

" }, "Tags":{ "shape":"TagList", - "documentation":"

The list of key-value pairs to associate with the rule.

" + "documentation":"

The list of key-value pairs to associate with the resource.

" } } }, @@ -2010,7 +2018,7 @@ "members":{ "Id":{ "shape":"TargetId", - "documentation":"

A name for the target. Use a string that will help you identify the target. Each target associated with a rule must have an Id unique for that rule.

" + "documentation":"

The ID of the target.

" }, "Arn":{ "shape":"TargetArn", @@ -2034,7 +2042,7 @@ }, "KinesisParameters":{ "shape":"KinesisParameters", - "documentation":"

The custom parameter that you can use to control the shard assignment when the target is a Kinesis data stream. If you don't include this parameter, the default is to use the eventId as the partition key.

" + "documentation":"

The custom parameter you can use to control the shard assignment, when the target is a Kinesis data stream. If you do not include this parameter, the default is to use the eventId as the partition key.

" }, "RunCommandParameters":{ "shape":"RunCommandParameters", @@ -2042,7 +2050,7 @@ }, "EcsParameters":{ "shape":"EcsParameters", - "documentation":"

Contains the Amazon ECS task definition and task count to be used if the event target is an Amazon ECS task. For more information about Amazon ECS tasks, see Task Definitions in the Amazon EC2 Container Service Developer Guide.

" + "documentation":"

Contains the Amazon ECS task definition and task count to be used, if the event target is an Amazon ECS task. For more information about Amazon ECS tasks, see Task Definitions in the Amazon EC2 Container Service Developer Guide.

" }, "BatchParameters":{ "shape":"BatchParameters", @@ -2053,7 +2061,7 @@ "documentation":"

Contains the message group ID to use when the target is a FIFO queue.

If you specify an SQS FIFO queue as a target, the queue must have content-based deduplication enabled.

" } }, - "documentation":"

Targets are the resources to be invoked when a rule is triggered. For a complete list of services and resources that can be set as a target, see PutTargets.

If you're setting the event bus of another account as the target and that account granted permission to your account through an organization instead of directly by the account ID, you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide.

" + "documentation":"

Targets are the resources to be invoked when a rule is triggered. For a complete list of services and resources that can be set as a target, see PutTargets.

If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide.

" }, "TargetArn":{ "type":"string", @@ -2099,7 +2107,7 @@ "members":{ "EventPattern":{ "shape":"EventPattern", - "documentation":"

The event pattern. For more information, see Event Patterns in the Amazon EventBridge User Guide.

" + "documentation":"

The event pattern. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" }, "Event":{ "shape":"String", @@ -2137,7 +2145,7 @@ "members":{ "ResourceARN":{ "shape":"Arn", - "documentation":"

The ARN of the rule that you're removing tags from.

" + "documentation":"

The ARN of the EventBridge resource from which you are removing tags.

" }, "TagKeys":{ "shape":"TagKeyList", @@ -2151,5 +2159,5 @@ } } }, - "documentation":"

Amazon EventBridge helps you to respond to state changes in your AWS resources. When your resources change state, they automatically send events into an event stream. You can create rules that match selected events in the stream and route them to targets to take action. You can also use rules to take action on a predetermined schedule. For example, you can configure rules to:

  • Automatically invoke an AWS Lambda function to update DNS entries when an event notifies you that Amazon EC2 instance enters the running state

  • Direct specific API records from AWS CloudTrail to an Amazon Kinesis data stream for detailed analysis of potential security or availability risks

  • Periodically invoke a built-in target to create a snapshot of an Amazon EBS volume

For more information about the features of Amazon EventBridge, see the Amazon EventBridge User Guide.

" + "documentation":"

Amazon EventBridge helps you to respond to state changes in your AWS resources. When your resources change state, they automatically send events into an event stream. You can create rules that match selected events in the stream and route them to targets to take action. You can also use rules to take action on a predetermined schedule. For example, you can configure rules to:

  • Automatically invoke an AWS Lambda function to update DNS entries when an event notifies you that Amazon EC2 instance enters the running state.

  • Direct specific API records from AWS CloudTrail to an Amazon Kinesis data stream for detailed analysis of potential security or availability risks.

  • Periodically invoke a built-in target to create a snapshot of an Amazon EBS volume.

For more information about the features of Amazon EventBridge, see the Amazon EventBridge User Guide.

" } diff --git a/botocore/data/fsx/2018-03-01/service-2.json b/botocore/data/fsx/2018-03-01/service-2.json index 9bee19cb..b5f27a7a 100644 --- a/botocore/data/fsx/2018-03-01/service-2.json +++ b/botocore/data/fsx/2018-03-01/service-2.json @@ -85,6 +85,7 @@ {"shape":"InvalidImportPath"}, {"shape":"InvalidExportPath"}, {"shape":"InvalidNetworkSettings"}, + {"shape":"InvalidPerUnitStorageThroughput"}, {"shape":"ServiceLimitExceeded"}, {"shape":"InternalServerError"}, {"shape":"MissingFileSystemConfiguration"} @@ -651,7 +652,15 @@ }, "ImportedFileChunkSize":{ "shape":"Megabytes", - "documentation":"

(Optional) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.

The chunk size default is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

" + "documentation":"

(Optional) For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.

The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

" + }, + "DeploymentType":{ + "shape":"LustreDeploymentType", + "documentation":"

(Optional) Choose SCRATCH_1 and SCRATCH_2 deployment types when you need temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1.

Choose PERSISTENT_1 deployment type for longer-term storage and workloads and encryption of data in transit. To learn more about deployment types, see FSx for Lustre Deployment Options.

Encryption of data in-transit is automatically enabled when you access a SCRATCH_2 or PERSISTENT_1 file system from Amazon EC2 instances that support this feature. (Default = SCRATCH_1)

Encryption of data in-transit for SCRATCH_2 and PERSISTENT_1 deployment types is supported when accessed from supported instance types in supported AWS Regions. To learn more, Encrypting Data in Transit.

" + }, + "PerUnitStorageThroughput":{ + "shape":"PerUnitStorageThroughput", + "documentation":"

(Optional) For the PERSISTENT_1 deployment type, describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB. File system throughput capacity is calculated by multiplying file system storage capacity (TiB) by the PerUnitStorageThroughput (MB/s/TiB). For a 2.4 TiB file system, provisioning 50 MB/s/TiB of PerUnitStorageThroughput yields 120 MB/s of file system throughput. You pay for the amount of throughput that you provision. (Default = 200 MB/s/TiB)

Valid values are 50, 100, 200.

" } }, "documentation":"

The Lustre configuration for the file system being created. This value is required if FileSystemType is set to LUSTRE.

" @@ -671,15 +680,15 @@ }, "FileSystemType":{ "shape":"FileSystemType", - "documentation":"

The type of Amazon FSx file system to create.

" + "documentation":"

The type of Amazon FSx file system to create, either WINDOWS or LUSTRE.

" }, "StorageCapacity":{ "shape":"StorageCapacity", - "documentation":"

The storage capacity of the file system being created.

For Windows file systems, valid values are 32 GiB - 65,536 GiB.

For Lustre file systems, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3600 GiB.

" + "documentation":"

The storage capacity of the file system being created.

For Windows file systems, valid values are 32 GiB - 65,536 GiB.

For SCRATCH_1 Lustre file systems, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3600 GiB. For SCRATCH_2 and PERSISTENT_1 file systems, valid values are 1200, 2400, then continuing in increments of 2400 GiB.

" }, "SubnetIds":{ "shape":"SubnetIds", - "documentation":"

Specifies the IDs of the subnets that the file system will be accessible from. For Windows MULTI_AZ_1 file system deployment types, provide exactly two subnet IDs, one for the preferred file server and one for the standy file server. You specify one of these subnets as the preferred subnet using the WindowsConfiguration > PreferredSubnetID property.

For Windows SINGLE_AZ_1 file system deployment types and Lustre file systems, provide exactly one subnet ID. The file server is launched in that subnet's Availability Zone.

" + "documentation":"

Specifies the IDs of the subnets that the file system will be accessible from. For Windows MULTI_AZ_1 file system deployment types, provide exactly two subnet IDs, one for the preferred file server and one for the standby file server. You specify one of these subnets as the preferred subnet using the WindowsConfiguration > PreferredSubnetID property.

For Windows SINGLE_AZ_1 file system deployment types and Lustre file systems, provide exactly one subnet ID. The file server is launched in that subnet's Availability Zone.

" }, "SecurityGroupIds":{ "shape":"SecurityGroupIds", @@ -743,7 +752,7 @@ }, "CopyTagsToBackups":{ "shape":"Flag", - "documentation":"

A boolean flag indicating whether tags for the file system should be copied to backups. This value defaults to false. If it's set to true, all tags for the file system are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups.

" + "documentation":"

A boolean flag indicating whether tags for the file system should be copied to backups. This value defaults to false. If it's set to true, all tags for the file system are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value.

" } }, "documentation":"

The configuration object for the Microsoft Windows file system used in CreateFileSystem and CreateFileSystemFromBackup operations.

" @@ -1217,7 +1226,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for an Amazon FSx for Windows File Server file system. Amazon FSx for Lustre does not support KMS encryption.

" + "documentation":"

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and persistent Amazon FSx for Lustre file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The scratch Amazon FSx for Lustre file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see Encrypt in the AWS Key Management Service API Reference.

" }, "ResourceARN":{ "shape":"ResourceARN", @@ -1402,6 +1411,14 @@ "documentation":"

One or more network settings specified in the request are invalid. InvalidVpcId means that the ID passed for the virtual private cloud (VPC) is invalid. InvalidSubnetIds returns the list of IDs for subnets that are either invalid or not part of the VPC specified. InvalidSecurityGroupIds returns the list of IDs for security groups that are either invalid or not part of the VPC specified.

", "exception":true }, + "InvalidPerUnitStorageThroughput":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

An invalid value for PerUnitStorageThroughput was provided. Please create your file system again, using a valid value.

", + "exception":true + }, "IpAddress":{ "type":"string", "max":15, @@ -1410,7 +1427,7 @@ }, "KmsKeyId":{ "type":"string", - "documentation":"

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for an Amazon FSx for Windows File Server file system at rest. Amazon FSx for Lustre does not support KMS encryption. For more information, see Encrypt in the AWS Key Management Service API Reference.

", + "documentation":"

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the file system's data for Amazon FSx for Windows File Server file systems and Amazon FSx for Lustre PERSISTENT_1 file systems at rest. In either case, if not specified, the Amazon FSx managed key is used. The Amazon FSx for Lustre SCRATCH_1 and SCRATCH_2 file systems are always encrypted at rest using Amazon FSx managed keys. For more information, see Encrypt in the AWS Key Management Service API Reference.

", "max":2048, "min":1, "pattern":"^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}|arn:aws[a-z-]{0,7}:kms:[a-z]{2}-[a-z-]{4,}-\\d+:\\d{12}:(key|alias)\\/([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}|[a-zA-Z0-9:\\/_-]+)|alias\\/[a-zA-Z0-9:\\/_-]+$" @@ -1449,6 +1466,14 @@ }, "documentation":"

The response object for ListTagsForResource operation.

" }, + "LustreDeploymentType":{ + "type":"string", + "enum":[ + "SCRATCH_1", + "SCRATCH_2", + "PERSISTENT_1" + ] + }, "LustreFileSystemConfiguration":{ "type":"structure", "members":{ @@ -1456,10 +1481,28 @@ "shape":"WeeklyTime", "documentation":"

The UTC time that you want to begin your weekly maintenance window.

" }, - "DataRepositoryConfiguration":{"shape":"DataRepositoryConfiguration"} + "DataRepositoryConfiguration":{"shape":"DataRepositoryConfiguration"}, + "DeploymentType":{ + "shape":"LustreDeploymentType", + "documentation":"

The deployment type of the FSX for Lustre file system.

" + }, + "PerUnitStorageThroughput":{ + "shape":"PerUnitStorageThroughput", + "documentation":"

Per unit storage throughput represents the megabytes per second of read or write throughput per 1 tebibyte of storage provisioned. File system throughput capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput (MB/s/TiB). This option is only valid for PERSISTENT_1 deployment types. Valid values are 50, 100, 200.

" + }, + "MountName":{ + "shape":"LustreFileSystemMountName", + "documentation":"

You use the MountName value when mounting the file system.

For the SCRATCH_1 deployment type, this value is always \"fsx\". For SCRATCH_2 and PERSISTENT_1 deployment types, this value is a string that is unique within an AWS Region.

" + } }, "documentation":"

The configuration for the Amazon FSx for Lustre file system.

" }, + "LustreFileSystemMountName":{ + "type":"string", + "max":8, + "min":1, + "pattern":"^([A-Za-z0-9_-]{1,8})$" + }, "MaxResults":{ "type":"integer", "documentation":"

The maximum number of resources to return in the response. This value must be an integer greater than zero.

", @@ -1481,7 +1524,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

File system configuration is required for this operation.

", + "documentation":"

A file system configuration is required for this operation.

", "exception":true }, "NetworkInterfaceId":{ @@ -1528,6 +1571,11 @@ "documentation":"

The name of a parameter for the request. Parameter names are returned in PascalCase.

", "min":1 }, + "PerUnitStorageThroughput":{ + "type":"integer", + "max":200, + "min":50 + }, "ProgressPercent":{ "type":"integer", "documentation":"

The current percent of progress of an asynchronous task.

", @@ -1948,7 +1996,7 @@ }, "CopyTagsToBackups":{ "shape":"Flag", - "documentation":"

A boolean flag indicating whether tags on the file system should be copied to backups. This value defaults to false. If it's set to true, all tags on the file system are copied to all automatic backups and any user-initiated backups where the user doesn't specify any tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups.

" + "documentation":"

A boolean flag indicating whether tags on the file system should be copied to backups. This value defaults to false. If it's set to true, all tags on the file system are copied to all automatic backups and any user-initiated backups where the user doesn't specify any tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, regardless of this value.

" } }, "documentation":"

The configuration for this Microsoft Windows file system.

" diff --git a/botocore/data/globalaccelerator/2018-08-08/service-2.json b/botocore/data/globalaccelerator/2018-08-08/service-2.json index 2ebe607c..6afaaf6e 100644 --- a/botocore/data/globalaccelerator/2018-08-08/service-2.json +++ b/botocore/data/globalaccelerator/2018-08-08/service-2.json @@ -13,6 +13,23 @@ "uid":"globalaccelerator-2018-08-08" }, "operations":{ + "AdvertiseByoipCidr":{ + "name":"AdvertiseByoipCidr", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdvertiseByoipCidrRequest"}, + "output":{"shape":"AdvertiseByoipCidrResponse"}, + "errors":[ + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ByoipCidrNotFoundException"}, + {"shape":"IncorrectCidrStateException"} + ], + "documentation":"

Advertises an IPv4 address range that is provisioned for use with your AWS resources through bring your own IP addresses (BYOIP). It can take a few minutes before traffic to the specified addresses starts routing to AWS because of propagation delays. To see an AWS CLI example of advertising an address range, scroll down to Example.

To stop advertising the BYOIP address range, use WithdrawByoipCidr.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + }, "CreateAccelerator":{ "name":"CreateAccelerator", "http":{ @@ -26,7 +43,7 @@ {"shape":"InvalidArgumentException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers. To see an AWS CLI example of creating an accelerator, scroll down to Example.

You must specify the US-West-2 (Oregon) Region to create or update accelerators.

" + "documentation":"

Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers. To see an AWS CLI example of creating an accelerator, scroll down to Example.

If you bring your own IP address ranges to AWS Global Accelerator (BYOIP), you can assign IP addresses from your own pool to your accelerator as the static IP address entry points. Only one IP address from each of your IP address ranges can be used for each accelerator.

You must specify the US West (Oregon) Region to create or update accelerators.

" }, "CreateEndpointGroup":{ "name":"CreateEndpointGroup", @@ -78,7 +95,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Delete an accelerator. Note: before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups).

" + "documentation":"

Delete an accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. Alternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges.

The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Authentication and Access Control in the AWS Global Accelerator Developer Guide.

" }, "DeleteEndpointGroup":{ "name":"DeleteEndpointGroup", @@ -109,6 +126,23 @@ ], "documentation":"

Delete a listener from an accelerator.

" }, + "DeprovisionByoipCidr":{ + "name":"DeprovisionByoipCidr", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeprovisionByoipCidrRequest"}, + "output":{"shape":"DeprovisionByoipCidrResponse"}, + "errors":[ + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ByoipCidrNotFoundException"}, + {"shape":"IncorrectCidrStateException"} + ], + "documentation":"

Releases the specified address range that you provisioned to use with your AWS resources through bring your own IP addresses (BYOIP) and deletes the corresponding address pool. To see an AWS CLI example of deprovisioning an address range, scroll down to Example.

Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and you must not have any accelerators that are using static IP addresses allocated from its address range.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + }, "DescribeAccelerator":{ "name":"DescribeAccelerator", "http":{ @@ -137,7 +171,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Describe the attributes of an accelerator.

" + "documentation":"

Describe the attributes of an accelerator. To see an AWS CLI example of describing the attributes of an accelerator, scroll down to Example.

" }, "DescribeEndpointGroup":{ "name":"DescribeEndpointGroup", @@ -167,7 +201,7 @@ {"shape":"ListenerNotFoundException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Describe a listener.

" + "documentation":"

Describe a listener. To see an AWS CLI example of describing a listener, scroll down to Example.

" }, "ListAccelerators":{ "name":"ListAccelerators", @@ -182,7 +216,23 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

List the accelerators for an AWS account.

" + "documentation":"

List the accelerators for an AWS account. To see an AWS CLI example of listing the accelerators for an AWS account, scroll down to Example.

" + }, + "ListByoipCidrs":{ + "name":"ListByoipCidrs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListByoipCidrsRequest"}, + "output":{"shape":"ListByoipCidrsResponse"}, + "errors":[ + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Lists the IP address ranges that were specified in calls to ProvisionByoipCidr.

To see an AWS CLI example of listing BYOIP CIDR addresses, scroll down to Example.

" }, "ListEndpointGroups":{ "name":"ListEndpointGroups", @@ -198,7 +248,7 @@ {"shape":"InvalidArgumentException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

List the endpoint groups that are associated with a listener.

" + "documentation":"

List the endpoint groups that are associated with a listener. To see an AWS CLI example of listing the endpoint groups for listener, scroll down to Example.

" }, "ListListeners":{ "name":"ListListeners", @@ -214,7 +264,69 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

List the listeners for an accelerator.

" + "documentation":"

List the listeners for an accelerator. To see an AWS CLI example of listing the listeners for an accelerator, scroll down to Example.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"AcceleratorNotFoundException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"} + ], + "documentation":"

List all tags for an accelerator. To see an AWS CLI example of listing tags for an accelerator, scroll down to Example.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + }, + "ProvisionByoipCidr":{ + "name":"ProvisionByoipCidr", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ProvisionByoipCidrRequest"}, + "output":{"shape":"ProvisionByoipCidrResponse"}, + "errors":[ + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"IncorrectCidrStateException"} + ], + "documentation":"

Provisions an IP address range to use with your AWS resources through bring your own IP addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr.

To see an AWS CLI example of provisioning an address range for BYOIP, scroll down to Example.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"AcceleratorNotFoundException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"} + ], + "documentation":"

Add tags to an accelerator resource. To see an AWS CLI example of adding tags to an accelerator, scroll down to Example.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"AcceleratorNotFoundException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"} + ], + "documentation":"

Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. To see an AWS CLI example of removing tags from an accelerator, scroll down to Example. The operation succeeds even if you attempt to remove tags from an accelerator that was already removed.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" }, "UpdateAccelerator":{ "name":"UpdateAccelerator", @@ -229,7 +341,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Update an accelerator. To see an AWS CLI example of updating an accelerator, scroll down to Example.

You must specify the US-West-2 (Oregon) Region to create or update accelerators.

" + "documentation":"

Update an accelerator. To see an AWS CLI example of updating an accelerator, scroll down to Example.

You must specify the US West (Oregon) Region to create or update accelerators.

" }, "UpdateAcceleratorAttributes":{ "name":"UpdateAcceleratorAttributes", @@ -279,7 +391,24 @@ {"shape":"InternalServiceErrorException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Update a listener.

" + "documentation":"

Update a listener. To see an AWS CLI example of updating listener, scroll down to Example.

" + }, + "WithdrawByoipCidr":{ + "name":"WithdrawByoipCidr", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"WithdrawByoipCidrRequest"}, + "output":{"shape":"WithdrawByoipCidrResponse"}, + "errors":[ + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ByoipCidrNotFoundException"}, + {"shape":"IncorrectCidrStateException"} + ], + "documentation":"

Stops advertising an address range that is provisioned as an address pool. You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time. To see an AWS CLI example of withdrawing an address range for BYOIP so it will no longer be advertised by AWS, scroll down to Example.

It can take a few minutes before traffic to the specified addresses stops routing to AWS because of propagation delays.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" } }, "shapes":{ @@ -308,7 +437,7 @@ }, "DnsName":{ "shape":"GenericString", - "documentation":"

The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

The naming convention for the DNS name is: a lower case letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.

For more information about the default DNS name, see Support for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.

For more information about the default DNS name, see Support for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

" }, "Status":{ "shape":"AcceleratorStatus", @@ -338,7 +467,7 @@ }, "FlowLogsS3Prefix":{ "shape":"GenericString", - "documentation":"

The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. If you don’t specify a prefix, the flow logs are stored in the root of the bucket.

" + "documentation":"

The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true.

If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

s3-bucket_name//AWSLogs/aws_account_id

" } }, "documentation":"

Attributes of an accelerator.

" @@ -378,6 +507,25 @@ "documentation":"

You don't have access permission.

", "exception":true }, + "AdvertiseByoipCidrRequest":{ + "type":"structure", + "required":["Cidr"], + "members":{ + "Cidr":{ + "shape":"GenericString", + "documentation":"

The address range, in CIDR notation. This must be the exact range that you provisioned. You can't advertise only a portion of the provisioned range.

" + } + } + }, + "AdvertiseByoipCidrResponse":{ + "type":"structure", + "members":{ + "ByoipCidr":{ + "shape":"ByoipCidr", + "documentation":"

Information about the address range.

" + } + } + }, "AssociatedEndpointGroupFoundException":{ "type":"structure", "members":{ @@ -394,6 +542,66 @@ "documentation":"

The accelerator that you specified has a listener associated with it. You must remove all dependent resources from an accelerator before you can delete it.

", "exception":true }, + "ByoipCidr":{ + "type":"structure", + "members":{ + "Cidr":{ + "shape":"GenericString", + "documentation":"

The address range, in CIDR notation.

" + }, + "State":{ + "shape":"ByoipCidrState", + "documentation":"

The state of the address pool.

" + } + }, + "documentation":"

Information about an IP address range that is provisioned for use with your AWS resources through bring your own IP addresses (BYOIP).

The following describes each BYOIP State that your IP address range can be in.

  • PENDING_PROVISIONING — You’ve submitted a request to provision an IP address range but it is not yet provisioned with AWS Global Accelerator.

  • READY — The address range is provisioned with AWS Global Accelerator and can be advertised.

  • PENDING_ADVERTISING — You’ve submitted a request for AWS Global Accelerator to advertise an address range but it is not yet being advertised.

  • ADVERTISING — The address range is being advertised by AWS Global Accelerator.

  • PENDING_WITHDRAWING — You’ve submitted a request to withdraw an address range from being advertised but it is still being advertised by AWS Global Accelerator.

  • PENDING_DEPROVISIONING — You’ve submitted a request to deprovision an address range from AWS Global Accelerator but it is still provisioned.

  • DEPROVISIONED — The address range is deprovisioned from AWS Global Accelerator.

  • FAILED_PROVISION — The request to provision the address range from AWS Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

  • FAILED_ADVERTISING — The request for AWS Global Accelerator to advertise the address range was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

  • FAILED_WITHDRAW — The request to withdraw the address range from advertising by AWS Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

  • FAILED_DEPROVISION — The request to deprovision the address range from AWS Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

" + }, + "ByoipCidrNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The CIDR that you specified was not found or is incorrect.

", + "exception":true + }, + "ByoipCidrState":{ + "type":"string", + "enum":[ + "PENDING_PROVISIONING", + "READY", + "PENDING_ADVERTISING", + "ADVERTISING", + "PENDING_WITHDRAWING", + "PENDING_DEPROVISIONING", + "DEPROVISIONED", + "FAILED_PROVISION", + "FAILED_ADVERTISING", + "FAILED_WITHDRAW", + "FAILED_DEPROVISION" + ] + }, + "ByoipCidrs":{ + "type":"list", + "member":{"shape":"ByoipCidr"} + }, + "CidrAuthorizationContext":{ + "type":"structure", + "required":[ + "Message", + "Signature" + ], + "members":{ + "Message":{ + "shape":"GenericString", + "documentation":"

The plain-text authorization message for the prefix and account.

" + }, + "Signature":{ + "shape":"GenericString", + "documentation":"

The signed authorization message for the prefix and account.

" + } + }, + "documentation":"

Provides authorization for Amazon to bring a specific IP address range to a specific AWS account using bring your own IP addresses (BYOIP).

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + }, "ClientAffinity":{ "type":"string", "enum":[ @@ -416,13 +624,22 @@ "shape":"IpAddressType", "documentation":"

The value for the address type must be IPv4.

" }, + "IpAddresses":{ + "shape":"IpAddresses", + "documentation":"

Optionally, if you've added your own IP address pool to Global Accelerator, you can choose IP addresses from your own pool to use for the accelerator's static IP addresses. You can specify one or two addresses, separated by a comma. Do not include the /32 suffix.

If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + }, "Enabled":{ "shape":"GenericBoolean", "documentation":"

Indicates whether an accelerator is enabled. The value is true or false. The default value is true.

If the value is set to true, an accelerator cannot be deleted. If set to false, the accelerator can be deleted.

" }, "IdempotencyToken":{ "shape":"IdempotencyToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of an accelerator.

" + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of an accelerator.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Create tags for an accelerator.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" } } }, @@ -481,7 +698,8 @@ }, "IdempotencyToken":{ "shape":"IdempotencyToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.

" + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.

", + "idempotencyToken":true } } }, @@ -521,7 +739,8 @@ }, "IdempotencyToken":{ "shape":"IdempotencyToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.

" + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency—that is, the uniqueness—of the request.

", + "idempotencyToken":true } } }, @@ -564,6 +783,25 @@ } } }, + "DeprovisionByoipCidrRequest":{ + "type":"structure", + "required":["Cidr"], + "members":{ + "Cidr":{ + "shape":"GenericString", + "documentation":"

The address range, in CIDR notation. The prefix must be the same prefix that you specified when you provisioned the address range.

" + } + } + }, + "DeprovisionByoipCidrResponse":{ + "type":"structure", + "members":{ + "ByoipCidr":{ + "shape":"ByoipCidr", + "documentation":"

Information about the address range.

" + } + } + }, "DescribeAcceleratorAttributesRequest":{ "type":"structure", "required":["AcceleratorArn"], @@ -645,7 +883,7 @@ "members":{ "EndpointId":{ "shape":"GenericString", - "documentation":"

An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID.

" + "documentation":"

An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. For EC2 instances, this is the EC2 instance ID.

An Application Load Balancer can be either internal or internet-facing.

" }, "Weight":{ "shape":"EndpointWeight", @@ -669,7 +907,7 @@ "members":{ "EndpointId":{ "shape":"GenericString", - "documentation":"

An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. An Application Load Balancer can be either internal or internet-facing.

" + "documentation":"

An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. For EC2 instances, this is the EC2 instance ID.

An Application Load Balancer can be either internal or internet-facing.

" }, "Weight":{ "shape":"EndpointWeight", @@ -797,6 +1035,14 @@ "type":"string", "max":255 }, + "IncorrectCidrStateException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The CIDR that you specified is not valid for this action. For example, the state of the CIDR might be incorrect for this action.

", + "exception":true + }, "InternalServiceErrorException":{ "type":"structure", "members":{ @@ -892,6 +1138,32 @@ } } }, + "ListByoipCidrsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"GenericString", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListByoipCidrsResponse":{ + "type":"structure", + "members":{ + "ByoipCidrs":{ + "shape":"ByoipCidrs", + "documentation":"

Information about your address ranges.

" + }, + "NextToken":{ + "shape":"GenericString", + "documentation":"

The token for the next page of results.

" + } + } + }, "ListEndpointGroupsRequest":{ "type":"structure", "required":["ListenerArn"], @@ -954,6 +1226,25 @@ } } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the accelerator to list tags for. An ARN uniquely identifies an accelerator.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"Tags", + "documentation":"

Root level tag for the Tags parameters.

" + } + } + }, "Listener":{ "type":"structure", "members":{ @@ -1025,6 +1316,97 @@ "UDP" ] }, + "ProvisionByoipCidrRequest":{ + "type":"structure", + "required":[ + "Cidr", + "CidrAuthorizationContext" + ], + "members":{ + "Cidr":{ + "shape":"GenericString", + "documentation":"

The public IPv4 address range, in CIDR notation. The most specific IP prefix that you can specify is /24. The address range cannot overlap with another address range that you've brought to this or another Region.

" + }, + "CidrAuthorizationContext":{ + "shape":"CidrAuthorizationContext", + "documentation":"

A signed document that proves that you are authorized to bring the specified IP address range to Amazon using BYOIP.

" + } + } + }, + "ProvisionByoipCidrResponse":{ + "type":"structure", + "members":{ + "ByoipCidr":{ + "shape":"ByoipCidr", + "documentation":"

Information about the address range.

" + } + } + }, + "ResourceArn":{ + "type":"string", + "max":1011, + "min":1 + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

A string that contains a Tag key.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

A string that contains a Tag value.

" + } + }, + "documentation":"

A complex type that contains a Tag key and Tag value.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Global Accelerator resource to add tags to. An ARN uniquely identifies a resource.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

The tags to add to a resource. A tag consists of a key and a value that you define.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "Tags":{ + "type":"list", + "member":{"shape":"Tag"} + }, "ThresholdCount":{ "type":"integer", "max":10, @@ -1036,6 +1418,28 @@ "max":100, "min":0 }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the Global Accelerator resource to remove tags from. An ARN uniquely identifies a resource.

" + }, + "TagKeys":{ + "shape":"TagKeys", + "documentation":"

The tag key pairs that you want to remove from the specified resources.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateAcceleratorAttributesRequest":{ "type":"structure", "required":["AcceleratorArn"], @@ -1054,7 +1458,7 @@ }, "FlowLogsS3Prefix":{ "shape":"GenericString", - "documentation":"

Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. If you don’t specify a prefix, the flow logs are stored in the root of the bucket.

" + "documentation":"

Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true.

If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

s3-bucket_name//AWSLogs/aws_account_id

" } } }, @@ -1175,7 +1579,26 @@ "documentation":"

Information for the updated listener.

" } } + }, + "WithdrawByoipCidrRequest":{ + "type":"structure", + "required":["Cidr"], + "members":{ + "Cidr":{ + "shape":"GenericString", + "documentation":"

The address range, in CIDR notation.

" + } + } + }, + "WithdrawByoipCidrResponse":{ + "type":"structure", + "members":{ + "ByoipCidr":{ + "shape":"ByoipCidr", + "documentation":"

Information about the address pool.

" + } + } } }, - "documentation":"AWS Global Accelerator

This is the AWS Global Accelerator API Reference. This guide is for developers who need detailed information about AWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the AWS Global Accelerator Developer Guide.

AWS Global Accelerator is a network layer service in which you create accelerators to improve availability and performance for internet applications used by a global audience.

You must specify the US-West-2 (Oregon) Region to create or update accelerators.

Global Accelerator provides you with static IP addresses that you associate with your accelerator. These IP addresses are anycast from the AWS edge network and distribute incoming application traffic across multiple endpoint resources in multiple AWS Regions, which increases the availability of your applications. Endpoints can be Elastic IP addresses, Network Load Balancers, and Application Load Balancers that are located in one AWS Region or multiple Regions.

Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based on health, client location, and policies that you configure. The service reacts instantly to changes in health or configuration to ensure that internet traffic from clients is directed to only healthy endpoints.

Global Accelerator includes components that work together to help you improve performance and availability for your applications:

Static IP address

AWS Global Accelerator provides you with a set of static IP addresses which are anycast from the AWS edge network and serve as the single fixed entry points for your clients. If you already have Elastic Load Balancing or Elastic IP address resources set up for your applications, you can easily add those to Global Accelerator to allow the resources to be accessed by a Global Accelerator static IP address.

Accelerator

An accelerator directs traffic to optimal endpoints over the AWS global network to improve availability and performance for your internet applications that have a global audience. Each accelerator includes one or more listeners.

Network zone

A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. When you configure an accelerator, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a network zone becomes unavailable due to IP address blocking by certain client networks, or network disruptions, then client applications can retry on the healthy static IP address from the other isolated network zone.

Listener

A listener processes inbound connections from clients to Global Accelerator, based on the protocol and port that you configure. Each listener has one or more endpoint groups associated with it, and traffic is forwarded to endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions that you want to distribute traffic to. Traffic is distributed to optimal endpoints within the endpoint groups associated with a listener.

Endpoint group

Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or more endpoints in the Region. You can increase or reduce the percentage of traffic that would be otherwise directed to an endpoint group by adjusting a setting called a traffic dial. The traffic dial lets you easily do performance testing or blue/green deployment testing for new releases across different AWS Regions, for example.

Endpoint

An endpoint is an Elastic IP address, Network Load Balancer, or Application Load Balancer. Traffic is routed to endpoints based on several factors, including the geo-proximity to the user, the health of the endpoint, and the configuration options that you choose, such as endpoint weights. For each endpoint, you can configure weights, which are numbers that you can use to specify the proportion of traffic to route to each one. This can be useful, for example, to do performance testing within a Region.

" + "documentation":"AWS Global Accelerator

This is the AWS Global Accelerator API Reference. This guide is for developers who need detailed information about AWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the AWS Global Accelerator Developer Guide.

AWS Global Accelerator is a service in which you create accelerators to improve availability and performance of your applications for local and global users.

You must specify the US West (Oregon) Region to create or update accelerators.

By default, Global Accelerator provides you with static IP addresses that you associate with your accelerator. (Instead of using the IP addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges that you bring to Global Accelerator.) The static IP addresses are anycast from the AWS edge network and distribute incoming application traffic across multiple endpoint resources in multiple AWS Regions, which increases the availability of your applications. Endpoints can be Network Load Balancers, Application Load Balancers, EC2 instances, or Elastic IP addresses that are located in one AWS Region or multiple Regions.

Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based on health, client location, and policies that you configure. The service reacts instantly to changes in health or configuration to ensure that internet traffic from clients is directed to only healthy endpoints.

Global Accelerator includes components that work together to help you improve performance and availability for your applications:

Static IP address

By default, AWS Global Accelerator provides you with a set of static IP addresses that are anycast from the AWS edge network and serve as the single fixed entry points for your clients. Or you can configure these entry points to be IPv4 addresses from your own IP address ranges that you bring to Global Accelerator (BYOIP). For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide. If you already have load balancers, EC2 instances, or Elastic IP addresses set up for your applications, you can easily add those to Global Accelerator to allow the resources to be accessed by the static IP addresses.

The static IP addresses remain assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Authentication and Access Control in the AWS Global Accelerator Developer Guide.

Accelerator

An accelerator directs traffic to optimal endpoints over the AWS global network to improve availability and performance for your internet applications that have a global audience. Each accelerator includes one or more listeners.

DNS name

Global Accelerator assigns each accelerator a default Domain Name System (DNS) name, similar to a1234567890abcdef.awsglobalaccelerator.com, that points to your Global Accelerator static IP addresses. Depending on the use case, you can use your accelerator's static IP addresses or DNS name to route traffic to your accelerator, or set up DNS records to route traffic using your own custom domain name.

Network zone

A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. When you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a network zone becomes unavailable due to IP address blocking by certain client networks, or network disruptions, then client applications can retry on the healthy static IP address from the other isolated network zone.

Listener

A listener processes inbound connections from clients to Global Accelerator, based on the protocol and port that you configure. Each listener has one or more endpoint groups associated with it, and traffic is forwarded to endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions that you want to distribute traffic to. Traffic is distributed to optimal endpoints within the endpoint groups associated with a listener.

Endpoint group

Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or more endpoints in the Region. You can increase or reduce the percentage of traffic that would be otherwise directed to an endpoint group by adjusting a setting called a traffic dial. The traffic dial lets you easily do performance testing or blue/green deployment testing for new releases across different AWS Regions, for example.

Endpoint

An endpoint is a Network Load Balancer, Application Load Balancer, EC2 instance, or Elastic IP address. Traffic is routed to endpoints based on several factors, including the geo-proximity to the user, the health of the endpoint, and the configuration options that you choose, such as endpoint weights. For each endpoint, you can configure weights, which are numbers that you can use to specify the proportion of traffic to route to each one. This can be useful, for example, to do performance testing within a Region.

" } diff --git a/botocore/data/glue/2017-03-31/service-2.json b/botocore/data/glue/2017-03-31/service-2.json index a4355157..78bdb8fa 100644 --- a/botocore/data/glue/2017-03-31/service-2.json +++ b/botocore/data/glue/2017-03-31/service-2.json @@ -1442,6 +1442,22 @@ ], "documentation":"

Retrieves the names of all job resources in this AWS account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.

This operation takes the optional Tags field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

" }, + "ListMLTransforms":{ + "name":"ListMLTransforms", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMLTransformsRequest"}, + "output":{"shape":"ListMLTransformsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Retrieves a sortable, filterable list of existing AWS Glue machine learning transforms in this AWS account, or the resources with the specified tag. This operation takes the optional Tags field, which you can use as a filter of the responses so that tagged resources can be retrieved as a group. If you choose to use tag filtering, only resources with the tags are retrieved.

" + }, "ListTriggers":{ "name":"ListTriggers", "http":{ @@ -3662,6 +3678,10 @@ "shape":"GenericMap", "documentation":"

The default arguments for this job.

You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

For information about how to specify and consume your own Job arguments, see the Calling AWS Glue APIs in Python topic in the developer guide.

For information about the key-value pairs that AWS Glue consumes to set up your job, see the Special Parameters Used by AWS Glue topic in the developer guide.

" }, + "NonOverridableArguments":{ + "shape":"GenericMap", + "documentation":"

Non-overridable arguments for this job, specified as name-value pairs.

" + }, "Connections":{ "shape":"ConnectionsList", "documentation":"

The connections used for this job.

" @@ -3789,6 +3809,10 @@ "MaxRetries":{ "shape":"NullableInteger", "documentation":"

The maximum number of times to retry a task for this transform after a task run fails.

" + }, + "Tags":{ + "shape":"TagsMap", + "documentation":"

The tags to use with this machine learning transform. You may use tags to limit access to the machine learning transform. For more information about tags in AWS Glue, see AWS Tags in AWS Glue in the developer guide.

" } } }, @@ -6501,6 +6525,10 @@ "shape":"GenericMap", "documentation":"

The default arguments for this job, specified as name-value pairs.

You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

For information about how to specify and consume your own Job arguments, see the Calling AWS Glue APIs in Python topic in the developer guide.

For information about the key-value pairs that AWS Glue consumes to set up your job, see the Special Parameters Used by AWS Glue topic in the developer guide.

" }, + "NonOverridableArguments":{ + "shape":"GenericMap", + "documentation":"

Non-overridable arguments for this job, specified as name-value pairs.

" + }, "Connections":{ "shape":"ConnectionsList", "documentation":"

The connections used for this job.

" @@ -6777,6 +6805,10 @@ "shape":"GenericMap", "documentation":"

The default arguments for this job.

You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

For information about how to specify and consume your own Job arguments, see the Calling AWS Glue APIs in Python topic in the developer guide.

For information about the key-value pairs that AWS Glue consumes to set up your job, see the Special Parameters Used by AWS Glue topic in the developer guide.

" }, + "NonOverridableArguments":{ + "shape":"GenericMap", + "documentation":"

Non-overridable arguments for this job, specified as name-value pairs.

" + }, "Connections":{ "shape":"ConnectionsList", "documentation":"

The connections used for this job.

" @@ -7010,6 +7042,45 @@ } } }, + "ListMLTransformsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A continuation token, if this is a continuation request.

" + }, + "MaxResults":{ + "shape":"PageSize", + "documentation":"

The maximum size of a list to return.

" + }, + "Filter":{ + "shape":"TransformFilterCriteria", + "documentation":"

A TransformFilterCriteria used to filter the machine learning transforms.

" + }, + "Sort":{ + "shape":"TransformSortCriteria", + "documentation":"

A TransformSortCriteria used to sort the machine learning transforms.

" + }, + "Tags":{ + "shape":"TagsMap", + "documentation":"

Specifies to return only these tagged resources.

" + } + } + }, + "ListMLTransformsResponse":{ + "type":"structure", + "required":["TransformIds"], + "members":{ + "TransformIds":{ + "shape":"TransformIdList", + "documentation":"

The identifiers of all the machine learning transforms in the account, or the machine learning transforms with the specified tags.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A continuation token, if the returned list does not contain the last metric available.

" + } + } + }, "ListTriggersRequest":{ "type":"structure", "members":{ @@ -8876,6 +8947,10 @@ }, "documentation":"

The criteria used to filter the machine learning transforms.

" }, + "TransformIdList":{ + "type":"list", + "member":{"shape":"HashString"} + }, "TransformList":{ "type":"list", "member":{"shape":"MLTransform"} diff --git a/botocore/data/guardduty/2017-11-28/service-2.json b/botocore/data/guardduty/2017-11-28/service-2.json index 4d58bdc7..a84dd0cd 100644 --- a/botocore/data/guardduty/2017-11-28/service-2.json +++ b/botocore/data/guardduty/2017-11-28/service-2.json @@ -2460,6 +2460,11 @@ "documentation":"

The type of the EC2 instance.

", "locationName":"instanceType" }, + "OutpostArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the AWS Outpost. Only applicable to AWS Outposts instances.

", + "locationName":"outpostArn" + }, "LaunchTime":{ "shape":"String", "documentation":"

The launch time of the EC2 instance.

", @@ -2702,7 +2707,7 @@ }, "FindingCriteria":{ "shape":"FindingCriteria", - "documentation":"

Represents the criteria used for querying findings. Valid values include:

  • JSON field name

  • accountId

  • region

  • confidence

  • id

  • resource.accessKeyDetails.accessKeyId

  • resource.accessKeyDetails.principalId

  • resource.accessKeyDetails.userName

  • resource.accessKeyDetails.userType

  • resource.instanceDetails.iamInstanceProfile.id

  • resource.instanceDetails.imageId

  • resource.instanceDetails.instanceId

  • resource.instanceDetails.networkInterfaces.ipv6Addresses

  • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

  • resource.instanceDetails.networkInterfaces.publicDnsName

  • resource.instanceDetails.networkInterfaces.publicIp

  • resource.instanceDetails.networkInterfaces.securityGroups.groupId

  • resource.instanceDetails.networkInterfaces.securityGroups.groupName

  • resource.instanceDetails.networkInterfaces.subnetId

  • resource.instanceDetails.networkInterfaces.vpcId

  • resource.instanceDetails.tags.key

  • resource.instanceDetails.tags.value

  • resource.resourceType

  • service.action.actionType

  • service.action.awsApiCallAction.api

  • service.action.awsApiCallAction.callerType

  • service.action.awsApiCallAction.remoteIpDetails.city.cityName

  • service.action.awsApiCallAction.remoteIpDetails.country.countryName

  • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

  • service.action.awsApiCallAction.remoteIpDetails.organization.asn

  • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

  • service.action.awsApiCallAction.serviceName

  • service.action.dnsRequestAction.domain

  • service.action.networkConnectionAction.blocked

  • service.action.networkConnectionAction.connectionDirection

  • service.action.networkConnectionAction.localPortDetails.port

  • service.action.networkConnectionAction.protocol

  • service.action.networkConnectionAction.remoteIpDetails.city.cityName

  • service.action.networkConnectionAction.remoteIpDetails.country.countryName

  • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

  • service.action.networkConnectionAction.remoteIpDetails.organization.asn

  • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

  • service.action.networkConnectionAction.remotePortDetails.port

  • service.additionalInfo.threatListName

  • service.archived

    When this attribute is set to 'true', only archived findings are listed. When it's set to 'false', only unarchived findings are listed. When this attribute is not set, all existing findings are listed.

  • service.resourceRole

  • severity

  • type

  • updatedAt

    Type: Timestamp in Unix Epoch millisecond format: 1486685375000

", + "documentation":"

Represents the criteria used for querying findings. Valid values include:

  • JSON field name

  • accountId

  • region

  • confidence

  • id

  • resource.accessKeyDetails.accessKeyId

  • resource.accessKeyDetails.principalId

  • resource.accessKeyDetails.userName

  • resource.accessKeyDetails.userType

  • resource.instanceDetails.iamInstanceProfile.id

  • resource.instanceDetails.imageId

  • resource.instanceDetails.instanceId

  • resource.instanceDetails.outpostArn

  • resource.instanceDetails.networkInterfaces.ipv6Addresses

  • resource.instanceDetails.networkInterfaces.privateIpAddresses.privateIpAddress

  • resource.instanceDetails.networkInterfaces.publicDnsName

  • resource.instanceDetails.networkInterfaces.publicIp

  • resource.instanceDetails.networkInterfaces.securityGroups.groupId

  • resource.instanceDetails.networkInterfaces.securityGroups.groupName

  • resource.instanceDetails.networkInterfaces.subnetId

  • resource.instanceDetails.networkInterfaces.vpcId

  • resource.instanceDetails.tags.key

  • resource.instanceDetails.tags.value

  • resource.resourceType

  • service.action.actionType

  • service.action.awsApiCallAction.api

  • service.action.awsApiCallAction.callerType

  • service.action.awsApiCallAction.remoteIpDetails.city.cityName

  • service.action.awsApiCallAction.remoteIpDetails.country.countryName

  • service.action.awsApiCallAction.remoteIpDetails.ipAddressV4

  • service.action.awsApiCallAction.remoteIpDetails.organization.asn

  • service.action.awsApiCallAction.remoteIpDetails.organization.asnOrg

  • service.action.awsApiCallAction.serviceName

  • service.action.dnsRequestAction.domain

  • service.action.networkConnectionAction.blocked

  • service.action.networkConnectionAction.connectionDirection

  • service.action.networkConnectionAction.localPortDetails.port

  • service.action.networkConnectionAction.protocol

  • service.action.networkConnectionAction.localIpDetails.ipAddressV4

  • service.action.networkConnectionAction.remoteIpDetails.city.cityName

  • service.action.networkConnectionAction.remoteIpDetails.country.countryName

  • service.action.networkConnectionAction.remoteIpDetails.ipAddressV4

  • service.action.networkConnectionAction.remoteIpDetails.organization.asn

  • service.action.networkConnectionAction.remoteIpDetails.organization.asnOrg

  • service.action.networkConnectionAction.remotePortDetails.port

  • service.additionalInfo.threatListName

  • service.archived

    When this attribute is set to 'true', only archived findings are listed. When it's set to 'false', only unarchived findings are listed. When this attribute is not set, all existing findings are listed.

  • service.resourceRole

  • severity

  • type

  • updatedAt

    Type: Timestamp in Unix Epoch millisecond format: 1486685375000

", "locationName":"findingCriteria" }, "SortCriteria":{ @@ -2957,6 +2962,17 @@ } } }, + "LocalIpDetails":{ + "type":"structure", + "members":{ + "IpAddressV4":{ + "shape":"String", + "documentation":"

IPV4 remote address of the connection.

", + "locationName":"ipAddressV4" + } + }, + "documentation":"

Contains information about the local IP address of the connection.

" + }, "LocalPortDetails":{ "type":"structure", "members":{ @@ -3096,6 +3112,11 @@ "documentation":"

Network connection protocol.

", "locationName":"protocol" }, + "LocalIpDetails":{ + "shape":"LocalIpDetails", + "documentation":"

Local IP information of the connection.

", + "locationName":"localIpDetails" + }, "RemoteIpDetails":{ "shape":"RemoteIpDetails", "documentation":"

Remote IP information of the connection.

", @@ -3230,6 +3251,11 @@ "documentation":"

Local port information of the connection.

", "locationName":"localPortDetails" }, + "LocalIpDetails":{ + "shape":"LocalIpDetails", + "documentation":"

Local IP information of the connection.

", + "locationName":"localIpDetails" + }, "RemoteIpDetails":{ "shape":"RemoteIpDetails", "documentation":"

Remote IP information of the connection.

", diff --git a/botocore/data/imagebuilder/2019-12-02/service-2.json b/botocore/data/imagebuilder/2019-12-02/service-2.json index 1066370f..ea6a8973 100644 --- a/botocore/data/imagebuilder/2019-12-02/service-2.json +++ b/botocore/data/imagebuilder/2019-12-02/service-2.json @@ -1887,7 +1887,7 @@ "documentation":"

The request ID that uniquely identifies this request.

" }, "policy":{ - "shape":"NonEmptyString", + "shape":"ResourcePolicyDocument", "documentation":"

The component policy.

" } } @@ -1987,7 +1987,7 @@ "documentation":"

The request ID that uniquely identifies this request.

" }, "policy":{ - "shape":"NonEmptyString", + "shape":"ResourcePolicyDocument", "documentation":"

The image policy object.

" } } @@ -2012,7 +2012,7 @@ "documentation":"

The request ID that uniquely identifies this request.

" }, "policy":{ - "shape":"NonEmptyString", + "shape":"ResourcePolicyDocument", "documentation":"

The image recipe policy object.

" } } @@ -3181,7 +3181,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the component that this policy should be applied to.

" }, "policy":{ - "shape":"NonEmptyString", + "shape":"ResourcePolicyDocument", "documentation":"

The policy to apply.

" } } @@ -3211,7 +3211,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the image that this policy should be applied to.

" }, "policy":{ - "shape":"NonEmptyString", + "shape":"ResourcePolicyDocument", "documentation":"

The policy to apply.

" } } @@ -3241,7 +3241,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the image recipe that this policy should be applied to.

" }, "policy":{ - "shape":"NonEmptyString", + "shape":"ResourcePolicyDocument", "documentation":"

The policy to apply.

" } } @@ -3299,6 +3299,11 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResourcePolicyDocument":{ + "type":"string", + "max":30000, + "min":1 + }, "RestrictedInteger":{ "type":"integer", "max":25, diff --git a/botocore/data/iot/2015-05-28/service-2.json b/botocore/data/iot/2015-05-28/service-2.json index c19c2a72..1fae5f1d 100644 --- a/botocore/data/iot/2015-05-28/service-2.json +++ b/botocore/data/iot/2015-05-28/service-2.json @@ -615,7 +615,7 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Creates a thing record in the registry. If this call is made multiple times using the same thing name and configuration, the call will succeed. If this call is made with the same thing name but different configuration a ResourceAlreadyExistsException is thrown.

This is a control plane operation. See Authorization for information about authorizing control plane actions.

" + "documentation":"

Creates a thing record in the registry. If this call is made multiple times using the same thing name and configuration, the call will succeed. If this call is made with the same thing name but different configuration a ResourceAlreadyExistsException is thrown.

This is a control plane operation. See Authorization for information about authorizing control plane actions.

" }, "CreateThingGroup":{ "name":"CreateThingGroup", @@ -631,7 +631,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Create a thing group.

This is a control plane operation. See Authorization for information about authorizing control plane actions.

" + "documentation":"

Create a thing group.

This is a control plane operation. See Authorization for information about authorizing control plane actions.

" }, "CreateThingType":{ "name":"CreateThingType", @@ -3573,6 +3573,10 @@ "shape":"CloudwatchAlarmAction", "documentation":"

Change the state of a CloudWatch alarm.

" }, + "cloudwatchLogs":{ + "shape":"CloudwatchLogsAction", + "documentation":"

Send data to CloudWatch logs.

" + }, "elasticsearch":{ "shape":"ElasticsearchAction", "documentation":"

Write data to an Amazon Elasticsearch Service domain.

" @@ -5110,6 +5114,24 @@ }, "documentation":"

Describes an action that updates a CloudWatch alarm.

" }, + "CloudwatchLogsAction":{ + "type":"structure", + "required":[ + "roleArn", + "logGroupName" + ], + "members":{ + "roleArn":{ + "shape":"AwsArn", + "documentation":"

The IAM role that allows access to the CloudWatch log.

" + }, + "logGroupName":{ + "shape":"LogGroupName", + "documentation":"

The CloudWatch log group to which the action sends data.

" + } + }, + "documentation":"

Describes an action that sends data to CloudWatch logs.

" + }, "CloudwatchMetricAction":{ "type":"structure", "required":[ @@ -7218,7 +7240,7 @@ "members":{ "endpointType":{ "shape":"EndpointType", - "documentation":"

The endpoint type. Valid endpoint types include:

  • iot:Data - Returns a VeriSign signed data endpoint.

  • iot:Data-ATS - Returns an ATS signed data endpoint.

  • iot:CredentialProvider - Returns an AWS IoT credentials provider API endpoint.

  • iot:Jobs - Returns an AWS IoT device management Jobs API endpoint.

", + "documentation":"

The endpoint type. Valid endpoint types include:

  • iot:Data - Returns a VeriSign signed data endpoint.

  • iot:Data-ATS - Returns an ATS signed data endpoint.

  • iot:CredentialProvider - Returns an AWS IoT credentials provider API endpoint.

  • iot:Jobs - Returns an AWS IoT device management Jobs API endpoint.

We strongly recommend that customers use the newer iot:Data-ATS endpoint type to avoid issues related to the widespread distrust of Symantec certificate authorities.

", "location":"querystring", "locationName":"endpointType" } @@ -11458,6 +11480,7 @@ } } }, + "LogGroupName":{"type":"string"}, "LogLevel":{ "type":"string", "enum":[ @@ -12403,7 +12426,7 @@ "members":{ "templateBody":{ "shape":"TemplateBody", - "documentation":"

The provisioning template. See Programmatic Provisioning for more information.

" + "documentation":"

The provisioning template. See Provisioning Devices That Have Device Certificates for more information.

" }, "parameters":{ "shape":"Parameters", @@ -14777,7 +14800,7 @@ }, "newStatus":{ "shape":"CertificateStatus", - "documentation":"

The new status.

Note: Setting the status to PENDING_TRANSFER will result in an exception being thrown. PENDING_TRANSFER is a status used internally by AWS IoT. It is not intended for developer use.

Note: The status value REGISTER_INACTIVE is deprecated and should not be used.

", + "documentation":"

The new status.

Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are statuses used internally by AWS IoT. They are not intended for developer use.

Note: The status value REGISTER_INACTIVE is deprecated and should not be used.

", "location":"querystring", "locationName":"newStatus" } diff --git a/botocore/data/iotevents/2018-07-27/service-2.json b/botocore/data/iotevents/2018-07-27/service-2.json index a94b311d..58e83492 100644 --- a/botocore/data/iotevents/2018-07-27/service-2.json +++ b/botocore/data/iotevents/2018-07-27/service-2.json @@ -100,7 +100,7 @@ {"shape":"InternalFailureException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Describes a detector model. If the \"version\" parameter is not specified, information about the latest version is returned.

" + "documentation":"

Describes a detector model. If the version parameter is not specified, information about the latest version is returned.

" }, "DescribeInput":{ "name":"DescribeInput", @@ -218,7 +218,7 @@ {"shape":"UnsupportedOperationException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Sets or updates the AWS IoT Events logging options.

If you update the value of any \"loggingOptions\" field, it takes up to one minute for the change to take effect. Also, if you change the policy attached to the role you specified in the \"roleArn\" field (for example, to correct an invalid policy) it takes up to five minutes for that change to take effect.

" + "documentation":"

Sets or updates the AWS IoT Events logging options.

If you update the value of any loggingOptions field, it takes up to one minute for the change to take effect. If you change the policy attached to the role you specified in the roleArn field (for example, to correct an invalid policy), it takes up to five minutes for that change to take effect.

" }, "TagResource":{ "name":"TagResource", @@ -326,7 +326,7 @@ }, "iotEvents":{ "shape":"IotEventsAction", - "documentation":"

Sends an IoT Events input, passing in information about the detector model instance and the event that triggered the action.

" + "documentation":"

Sends an AWS IoT Events input, passing in information about the detector model instance and the event that triggered the action.

" }, "sqs":{ "shape":"SqsAction", @@ -334,10 +334,10 @@ }, "firehose":{ "shape":"FirehoseAction", - "documentation":"

Sends information about the detector model instance and the event that triggered the action to a Kinesis Data Firehose delivery stream.

" + "documentation":"

Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.

" } }, - "documentation":"

An action to be performed when the \"condition\" is TRUE.

" + "documentation":"

An action to be performed when the condition is TRUE.

" }, "Actions":{ "type":"list", @@ -354,10 +354,10 @@ "members":{ "jsonPath":{ "shape":"AttributeJsonPath", - "documentation":"

An expression that specifies an attribute-value pair in a JSON structure. Use this to specify an attribute from the JSON payload that is made available by the input. Inputs are derived from messages sent to the AWS IoT Events system (BatchPutMessage). Each such message contains a JSON payload, and the attribute (and its paired value) specified here are available for use in the \"condition\" expressions used by detectors.

Syntax: <field-name>.<field-name>...

" + "documentation":"

An expression that specifies an attribute-value pair in a JSON structure. Use this to specify an attribute from the JSON payload that is made available by the input. Inputs are derived from messages sent to AWS IoT Events (BatchPutMessage). Each such message contains a JSON payload. The attribute (and its paired value) specified here are available for use in the condition expressions used by detectors.

Syntax: <field-name>.<field-name>...

" } }, - "documentation":"

The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using BatchPutMessage. Each such message contains a JSON payload, and those attributes (and their paired values) specified here are available for use in the condition expressions used by detectors.

" + "documentation":"

The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using BatchPutMessage. Each such message contains a JSON payload. Those attributes (and their paired values) specified here are available for use in the condition expressions used by detectors.

" }, "AttributeJsonPath":{ "type":"string", @@ -408,7 +408,7 @@ }, "key":{ "shape":"AttributeJsonPath", - "documentation":"

The input attribute key used to identify a device or system in order to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This parameter uses a JSON-path expression to specify the attribute-value pair in the message payload of each input that is used to identify the device associated with the input.

" + "documentation":"

The input attribute key used to identify a device or system to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This parameter uses a JSON-path expression in the message payload of each input to specify the attribute-value pair that is used to identify the device associated with the input.

" }, "roleArn":{ "shape":"AmazonResourceName", @@ -636,7 +636,7 @@ }, "key":{ "shape":"AttributeJsonPath", - "documentation":"

The input attribute key used to identify a device or system in order to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This parameter uses a JSON-path expression to specify the attribute-value pair in the message payload of each input that is used to identify the device associated with the input.

" + "documentation":"

The input attribute key used to identify a device or system to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This parameter uses a JSON-path expression in the message payload of each input to specify the attribute-value pair that is used to identify the device associated with the input.

" }, "evaluationMethod":{ "shape":"EvaluationMethod", @@ -771,14 +771,14 @@ }, "condition":{ "shape":"Condition", - "documentation":"

[Optional] The Boolean expression that when TRUE causes the \"actions\" to be performed. If not present, the actions are performed (=TRUE); if the expression result is not a Boolean value, the actions are NOT performed (=FALSE).

" + "documentation":"

Optional. The Boolean expression that, when TRUE, causes the actions to be performed. If not present, the actions are performed (=TRUE). If the expression result is not a Boolean value, the actions are not performed (=FALSE).

" }, "actions":{ "shape":"Actions", "documentation":"

The actions to be performed.

" } }, - "documentation":"

Specifies the \"actions\" to be performed when the \"condition\" evaluates to TRUE.

" + "documentation":"

Specifies the actions to be performed when the condition evaluates to TRUE.

" }, "EventName":{ "type":"string", @@ -801,7 +801,7 @@ "documentation":"

A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: '\\n' (newline), '\\t' (tab), '\\r\\n' (Windows newline), ',' (comma).

" } }, - "documentation":"

Sends information about the detector model instance and the event that triggered the action to a Kinesis Data Firehose delivery stream.

" + "documentation":"

Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.

" }, "FirehoseSeparator":{ "type":"string", @@ -865,7 +865,7 @@ "members":{ "attributes":{ "shape":"Attributes", - "documentation":"

The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using BatchPutMessage. Each such message contains a JSON payload, and those attributes (and their paired values) specified here are available for use in the \"condition\" expressions used by detectors that monitor this input.

" + "documentation":"

The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using BatchPutMessage. Each such message contains a JSON payload, and those attributes (and their paired values) specified here are available for use in the condition expressions used by detectors that monitor this input.

" } }, "documentation":"

The definition of the input.

" @@ -965,10 +965,10 @@ "members":{ "mqttTopic":{ "shape":"MQTTTopic", - "documentation":"

The MQTT topic of the message.

" + "documentation":"

The MQTT topic of the message. You can use a string expression that includes variables ($variable.<variable-name>) and input values ($input.<input-name>.<path-to-datum>) as the topic string.

" } }, - "documentation":"

Information required to publish the MQTT message via the AWS IoT message broker.

" + "documentation":"

Information required to publish the MQTT message through the AWS IoT message broker.

" }, "KeyValue":{ "type":"string", @@ -1169,7 +1169,7 @@ "members":{ "events":{ "shape":"Events", - "documentation":"

Specifies the actions that are performed when the state is entered and the \"condition\" is TRUE.

" + "documentation":"

Specifies the actions that are performed when the state is entered and the condition is TRUE.

" } }, "documentation":"

When entering this state, perform these actions if the condition is TRUE.

" @@ -1179,24 +1179,24 @@ "members":{ "events":{ "shape":"Events", - "documentation":"

Specifies the \"actions\" that are performed when the state is exited and the \"condition\" is TRUE.

" + "documentation":"

Specifies the actions that are performed when the state is exited and the condition is TRUE.

" } }, - "documentation":"

When exiting this state, perform these \"actions\" if the specified \"condition\" is TRUE.

" + "documentation":"

When exiting this state, perform these actions if the specified condition is TRUE.

" }, "OnInputLifecycle":{ "type":"structure", "members":{ "events":{ "shape":"Events", - "documentation":"

Specifies the actions performed when the \"condition\" evaluates to TRUE.

" + "documentation":"

Specifies the actions performed when the condition evaluates to TRUE.

" }, "transitionEvents":{ "shape":"TransitionEvents", - "documentation":"

Specifies the actions performed, and the next state entered, when a \"condition\" evaluates to TRUE.

" + "documentation":"

Specifies the actions performed, and the next state entered, when a condition evaluates to TRUE.

" } }, - "documentation":"

Specifies the actions performed when the \"condition\" evaluates to TRUE.

" + "documentation":"

Specifies the actions performed when the condition evaluates to TRUE.

" }, "PutLoggingOptionsRequest":{ "type":"structure", @@ -1218,7 +1218,7 @@ "documentation":"

The name of the timer to reset.

" } }, - "documentation":"

Information needed to reset the timer.

" + "documentation":"

Information required to reset the timer. The timer is reset to the previously evaluated result of the duration.

" }, "ResourceAlreadyExistsException":{ "type":"structure", @@ -1275,7 +1275,11 @@ }, "documentation":"

Information required to publish the Amazon SNS message.

" }, - "Seconds":{"type":"integer"}, + "Seconds":{ + "type":"integer", + "max":31622400, + "min":1 + }, "ServiceUnavailableException":{ "type":"structure", "members":{ @@ -1291,10 +1295,7 @@ }, "SetTimerAction":{ "type":"structure", - "required":[ - "timerName", - "seconds" - ], + "required":["timerName"], "members":{ "timerName":{ "shape":"TimerName", @@ -1302,7 +1303,13 @@ }, "seconds":{ "shape":"Seconds", - "documentation":"

The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy.

" + "documentation":"

The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy.

", + "deprecated":true, + "deprecatedMessage":"seconds is deprecated. You can use durationExpression for SetTimerAction. The value of seconds can be used as a string expression for durationExpression." + }, + "durationExpression":{ + "shape":"VariableValue", + "documentation":"

The duration of the timer, in seconds. You can use a string expression that includes numbers, variables ($variable.<variable-name>), and input values ($input.<input-name>.<path-to-datum>) as the duration. The range of the duration is 1-31622400 seconds. To ensure accuracy, the minimum duration is 60 seconds. The evaluated result of the duration is rounded down to the nearest whole number.

" } }, "documentation":"

Information needed to set the timer.

" @@ -1335,7 +1342,7 @@ }, "useBase64":{ "shape":"UseBase64", - "documentation":"

Set this to TRUE if you want the data to be Base-64 encoded before it is written to the queue. Otherwise, set this to FALSE.

" + "documentation":"

Set this to TRUE if you want the data to be base-64 encoded before it is written to the queue.

" } }, "documentation":"

Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.

" @@ -1350,15 +1357,15 @@ }, "onInput":{ "shape":"OnInputLifecycle", - "documentation":"

When an input is received and the \"condition\" is TRUE, perform the specified \"actions\".

" + "documentation":"

When an input is received and the condition is TRUE, perform the specified actions.

" }, "onEnter":{ "shape":"OnEnterLifecycle", - "documentation":"

When entering this state, perform these \"actions\" if the \"condition\" is TRUE.

" + "documentation":"

When entering this state, perform these actions if the condition is TRUE.

" }, "onExit":{ "shape":"OnExitLifecycle", - "documentation":"

When exiting this state, perform these \"actions\" if the specified \"condition\" is TRUE.

" + "documentation":"

When exiting this state, perform these actions if the specified condition is TRUE.

" } }, "documentation":"

Information that defines a state of a detector.

" @@ -1465,7 +1472,7 @@ }, "condition":{ "shape":"Condition", - "documentation":"

[Required] A Boolean expression that when TRUE causes the actions to be performed and the \"nextState\" to be entered.

" + "documentation":"

Required. A Boolean expression that when TRUE causes the actions to be performed and the nextState to be entered.

" }, "actions":{ "shape":"Actions", @@ -1476,7 +1483,7 @@ "documentation":"

The next state to enter.

" } }, - "documentation":"

Specifies the actions performed and the next state entered when a \"condition\" evaluates to TRUE.

" + "documentation":"

Specifies the actions performed and the next state entered when a condition evaluates to TRUE.

" }, "TransitionEvents":{ "type":"list", @@ -1610,5 +1617,5 @@ "resourceArn":{"type":"string"}, "resourceId":{"type":"string"} }, - "documentation":"

AWS IoT Events monitors your equipment or device fleets for failures or changes in operation, and triggers actions when such events occur. AWS IoT Events API commands enable you to create, read, update and delete inputs and detector models, and to list their versions.

" + "documentation":"

AWS IoT Events monitors your equipment or device fleets for failures or changes in operation, and triggers actions when such events occur. You can use AWS IoT Events API commands to create, read, update, and delete inputs and detector models, and to list their versions.

" } diff --git a/botocore/data/kafka/2018-11-14/service-2.json b/botocore/data/kafka/2018-11-14/service-2.json index 8edfcbd5..b6d0617f 100644 --- a/botocore/data/kafka/2018-11-14/service-2.json +++ b/botocore/data/kafka/2018-11-14/service-2.json @@ -831,6 +831,23 @@ "KafkaBrokerNodeId" ] }, + "BrokerLogs": { + "type": "structure", + "members": { + "CloudWatchLogs": { + "shape": "CloudWatchLogs", + "locationName": "cloudWatchLogs" + }, + "Firehose": { + "shape": "Firehose", + "locationName": "firehose" + }, + "S3": { + "shape": "S3", + "locationName": "s3" + } + } + }, "BrokerNodeGroupInfo": { "type": "structure", "members": { @@ -943,6 +960,20 @@ "PLAINTEXT" ] }, + "CloudWatchLogs" : { + "type" : "structure", + "members" : { + "Enabled" : { + "shape" : "__boolean", + "locationName" : "enabled" + }, + "LogGroup" : { + "shape" : "__string", + "locationName" : "logGroup" + } + }, + "required" : [ "Enabled" ] + }, "ClusterInfo": { "type": "structure", "members": { @@ -1001,6 +1032,10 @@ "locationName" : "openMonitoring", "documentation" : "\n

Settings for open monitoring using Prometheus.

\n " }, + "LoggingInfo": { + "shape": "LoggingInfo", + "locationName": "loggingInfo" + }, "NumberOfBrokerNodes": { "shape": "__integer", "locationName": "numberOfBrokerNodes", @@ -1247,6 +1282,10 @@ "locationName": "kafkaVersion", "documentation": "\n

The version of Apache Kafka.

\n " }, + "LoggingInfo": { + "shape": "LoggingInfo", + "locationName": "loggingInfo" + }, "NumberOfBrokerNodes": { "shape": "__integerMin1Max15", "locationName": "numberOfBrokerNodes", @@ -1621,6 +1660,20 @@ }, "documentation": "\n

Returns information about an error state of the cluster.

\n " }, + "Firehose" : { + "type" : "structure", + "members" : { + "DeliveryStream" : { + "shape" : "__string", + "locationName" : "deliveryStream" + }, + "Enabled" : { + "shape" : "__boolean", + "locationName" : "enabled" + } + }, + "required" : [ "Enabled" ] + }, "ForbiddenException": { "type": "structure", "members": { @@ -1962,6 +2015,16 @@ "min": 1, "max": 100 }, + "LoggingInfo": { + "type": "structure", + "members": { + "BrokerLogs": { + "shape": "BrokerLogs", + "locationName": "brokerLogs" + } + }, + "required": [ "BrokerLogs" ] + }, "MutableClusterInfo": { "type": "structure", "members": { @@ -1989,7 +2052,11 @@ "shape" : "OpenMonitoring", "locationName" : "openMonitoring", "documentation" : "\n

The settings for open monitoring.

\n " - } + }, + "LoggingInfo": { + "shape": "LoggingInfo", + "locationName": "loggingInfo" + } }, "documentation": "\n

Information about cluster attributes that can be updated via update APIs.

\n " }, @@ -2097,6 +2164,24 @@ }, "documentation" : "\n

Prometheus settings.

\n " }, + "S3" : { + "type" : "structure", + "members" : { + "Bucket" : { + "shape" : "__string", + "locationName" : "bucket" + }, + "Enabled" : { + "shape" : "__boolean", + "locationName" : "enabled" + }, + "Prefix" : { + "shape" : "__string", + "locationName" : "prefix" + } + }, + "required" : [ "Enabled" ] + }, "NodeInfo": { "type": "structure", "members": { @@ -2442,6 +2527,10 @@ "shape" : "OpenMonitoringInfo", "locationName" : "openMonitoring", "documentation" : "\n

The settings for open monitoring.

\n " + }, + "LoggingInfo": { + "shape": "LoggingInfo", + "locationName": "loggingInfo" } }, "documentation" : "Request body for UpdateMonitoring.", diff --git a/botocore/data/lambda/2015-03-31/service-2.json b/botocore/data/lambda/2015-03-31/service-2.json index 6256aad4..a7a97c28 100644 --- a/botocore/data/lambda/2015-03-31/service-2.json +++ b/botocore/data/lambda/2015-03-31/service-2.json @@ -301,7 +301,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"ServiceException"} ], - "documentation":"

Returns details about the concurrency configuration for a function. To set a concurrency limit for a function, use PutFunctionConcurrency.

" + "documentation":"

Returns details about the reserved concurrency configuration for a function. To set a concurrency limit for a function, use PutFunctionConcurrency.

" }, "GetFunctionConfiguration":{ "name":"GetFunctionConfiguration", @@ -541,7 +541,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"InvalidParameterValueException"} ], - "documentation":"

Returns a list of Lambda functions, with the version-specific configuration of each.

Set FunctionVersion to ALL to include all published versions of each function in addition to the unpublished version. To get more information about a function or version, use GetFunction.

" + "documentation":"

Returns a list of Lambda functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call.

Set FunctionVersion to ALL to include all published versions of each function in addition to the unpublished version. To get more information about a function or version, use GetFunction.

" }, "ListLayerVersions":{ "name":"ListLayerVersions", @@ -624,7 +624,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Returns a list of versions, with the version-specific configuration of each.

" + "documentation":"

Returns a list of versions, with the version-specific configuration of each. Lambda returns up to 50 versions per call.

" }, "PublishLayerVersion":{ "name":"PublishLayerVersion", @@ -697,7 +697,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Configures options for asynchronous invocation on a function, version, or alias.

By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with UpdateFunctionConfiguration.

" + "documentation":"

Configures options for asynchronous invocation on a function, version, or alias. If a configuration already exists for a function, version, or alias, this operation overwrites it. If you exclude any settings, they are removed. To set one option without affecting existing settings for other options, use PutFunctionEventInvokeConfig.

By default, Lambda retries an asynchronous invocation twice if the function returns an error. It retains events in a queue for up to six hours. When an event fails all processing attempts or stays in the asynchronous invocation queue for too long, Lambda discards it. To retain discarded events, configure a dead-letter queue with UpdateFunctionConfiguration.

To send an invocation record to a queue, topic, function, or event bus, specify a destination. You can configure separate destinations for successful invocations (on-success) and events that fail all processing attempts (on-failure). You can configure destinations in addition to or instead of a dead-letter queue.

" }, "PutProvisionedConcurrencyConfig":{ "name":"PutProvisionedConcurrencyConfig", @@ -2728,7 +2728,7 @@ }, "MaxItems":{ "shape":"MaxListItems", - "documentation":"

Specify a value between 1 and 50 to limit the number of functions in the response.

", + "documentation":"

The maximum number of functions to return.

", "location":"querystring", "locationName":"MaxItems" } @@ -2903,7 +2903,7 @@ }, "MaxItems":{ "shape":"MaxListItems", - "documentation":"

Limit the number of versions that are returned.

", + "documentation":"

The maximum number of versions to return.

", "location":"querystring", "locationName":"MaxItems" } @@ -3487,6 +3487,7 @@ "nodejs4.3-edge", "go1.x", "ruby2.5", + "ruby2.7", "provided" ] }, diff --git a/botocore/data/lex-models/2017-04-19/service-2.json b/botocore/data/lex-models/2017-04-19/service-2.json index b85ce4be..78808bbe 100644 --- a/botocore/data/lex-models/2017-04-19/service-2.json +++ b/botocore/data/lex-models/2017-04-19/service-2.json @@ -546,6 +546,23 @@ ], "documentation":"

Use the GetUtterancesView operation to get information about the utterances that your users have made to your bot. You can use this list to tune the utterances that your bot responds to.

For example, say that you have created a bot to order flowers. After your users have used your bot for a while, use the GetUtterancesView operation to see the requests that they have made and whether they have been successful. You might find that the utterance \"I want flowers\" is not being recognized. You could add this utterance to the OrderFlowers intent so that your bot recognizes that utterance.

After you publish a new version of a bot, you can get information about the old version and the new so that you can compare the performance across the two versions.

Utterance statistics are generated once a day. Data is available for the last 15 days. You can request information for up to 5 versions of your bot in each request. Amazon Lex returns the most frequent utterances received by the bot in the last 15 days. The response contains information about a maximum of 100 utterances for each version.

If you set childDirected field to true when you created your bot, or if you opted out of participating in improving Amazon Lex, utterances are not available.

This operation requires permissions for the lex:GetUtterancesView action.

" }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Gets a list of tags associated with the specified resource. Only bots, bot aliases, and bot channels can have tags associated with them.

" + }, "PutBot":{ "name":"PutBot", "http":{ @@ -633,6 +650,42 @@ {"shape":"BadRequestException"} ], "documentation":"

Starts a job to import a resource to Amazon Lex.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Adds the specified tags to the specified resource. If a tag key already exists, the existing value is replaced with the new value.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Removes tags from a bot, bot alias or bot channel.

" } }, "shapes":{ @@ -648,6 +701,11 @@ "min":1, "pattern":"^(-|^([A-Za-z]_?)+$)$" }, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1 + }, "BadRequestException":{ "type":"structure", "members":{ @@ -2513,6 +2571,27 @@ "type":"list", "member":{"shape":"UtteranceData"} }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the resource to get a list of tags for.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagList", + "documentation":"

The tags associated with a resource.

" + } + } + }, "ListsOfUtterances":{ "type":"list", "member":{"shape":"UtteranceList"} @@ -2755,6 +2834,10 @@ "conversationLogs":{ "shape":"ConversationLogsRequest", "documentation":"

Settings for conversation logs for the alias.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags to add to the bot alias. You can only add tags when you create an alias, you can't use the PutBotAlias operation to update the tags on a bot alias. To update tags, use the TagResource operation.

" } } }, @@ -2792,6 +2875,10 @@ "conversationLogs":{ "shape":"ConversationLogsResponse", "documentation":"

The settings that determine how Amazon Lex uses conversation logs for the alias.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags associated with a bot.

" } } }, @@ -2856,6 +2943,10 @@ "createVersion":{ "shape":"Boolean", "documentation":"

When set to true a new numbered version of the bot is created. This is the same as calling the CreateBotVersion operation. If you don't specify createVersion, the default is false.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags to add to the bot. You can only add tags when you create a bot, you can't use the PutBot operation to update the tags on a bot. To update tags, use the TagResource operation.

" } } }, @@ -2929,6 +3020,10 @@ "detectSentiment":{ "shape":"Boolean", "documentation":"

true if the bot is configured to send user utterances to Amazon Comprehend for sentiment analysis. If the detectSentiment field was not specified in the request, the detectSentiment field is false in the response.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags associated with the bot.

" } } }, @@ -3380,6 +3475,10 @@ "mergeStrategy":{ "shape":"MergeStrategy", "documentation":"

Specifies the action that the StartImport operation should take when there is an existing resource with the same name.

  • FAIL_ON_CONFLICT - The import operation is stopped on the first conflict between a resource in the import file and an existing resource. The name of the resource causing the conflict is in the failureReason field of the response to the GetImport operation.

    OVERWRITE_LATEST - The import operation proceeds even if there is a conflict with an existing resource. The $LASTEST version of the existing resource is overwritten with the data from the import file.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags to add to the imported bot. You can only add tags when you import a bot, you can't add tags to an intent or slot type.

" } } }, @@ -3406,6 +3505,10 @@ "shape":"ImportStatus", "documentation":"

The status of the import job. If the status is FAILED, you can get the reason for the failure using the GetImport operation.

" }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags added to the imported bot.

" + }, "createdDate":{ "shape":"Timestamp", "documentation":"

A timestamp for the date and time that the import job was requested.

" @@ -3453,7 +3556,97 @@ "type":"list", "member":{"shape":"Value"} }, + "Tag":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"TagKey", + "documentation":"

The key for the tag. Keys are not case-sensitive and must be unique.

" + }, + "value":{ + "shape":"TagValue", + "documentation":"

The value associated with a key. The value may be an empty string but it can't be null.

" + } + }, + "documentation":"

A list of key/value pairs that identify a bot, bot alias, or bot channel. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tag keys to add to the resource. If a tag key already exists, the existing value is replaced with the new value.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, "Timestamp":{"type":"timestamp"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the resource to remove the tags from.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

A list of tag keys to remove from the resource. If a tag key does not exist on the resource, it is ignored.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UserId":{ "type":"string", "max":100, diff --git a/botocore/data/lightsail/2016-11-28/service-2.json b/botocore/data/lightsail/2016-11-28/service-2.json index 1c998ed8..3e8396af 100644 --- a/botocore/data/lightsail/2016-11-28/service-2.json +++ b/botocore/data/lightsail/2016-11-28/service-2.json @@ -86,7 +86,7 @@ {"shape":"AccountSetupInProgressException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Attaches a Transport Layer Security (TLS) certificate to your load balancer. TLS is just an updated, more secure version of Secure Socket Layer (SSL).

Once you create and validate your certificate, you can attach it to your load balancer. You can also use this API to rotate the certificates on your account. Use the attach load balancer tls certificate operation with the non-attached certificate, and it will replace the existing one and become the attached certificate.

The attach load balancer tls certificate operation supports tag-based access control via resource tags applied to the resource identified by load balancer name. For more information, see the Lightsail Dev Guide.

" + "documentation":"

Attaches a Transport Layer Security (TLS) certificate to your load balancer. TLS is just an updated, more secure version of Secure Socket Layer (SSL).

Once you create and validate your certificate, you can attach it to your load balancer. You can also use this API to rotate the certificates on your account. Use the AttachLoadBalancerTlsCertificate action with the non-attached certificate, and it will replace the existing one and become the attached certificate.

The AttachLoadBalancerTlsCertificate operation supports tag-based access control via resource tags applied to the resource identified by load balancer name. For more information, see the Lightsail Dev Guide.

" }, "AttachStaticIp":{ "name":"AttachStaticIp", @@ -164,6 +164,24 @@ ], "documentation":"

Creates an AWS CloudFormation stack, which creates a new Amazon EC2 instance from an exported Amazon Lightsail snapshot. This operation results in a CloudFormation stack record that can be used to track the AWS CloudFormation stack created. Use the get cloud formation stack records operation to get a list of the CloudFormation stacks created.

Wait until after your new Amazon EC2 instance is created before running the create cloud formation stack operation again with the same export snapshot record.

" }, + "CreateContactMethod":{ + "name":"CreateContactMethod", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateContactMethodRequest"}, + "output":{"shape":"CreateContactMethodResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthenticatedException"} + ], + "documentation":"

Creates an email or SMS text message contact method.

A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see Notifications in Amazon Lightsail.

" + }, "CreateDisk":{ "name":"CreateDisk", "http":{ @@ -371,7 +389,7 @@ {"shape":"AccountSetupInProgressException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Creates a Lightsail load balancer TLS certificate.

TLS is just an updated, more secure version of Secure Socket Layer (SSL).

The create load balancer tls certificate operation supports tag-based access control via resource tags applied to the resource identified by load balancer name. For more information, see the Lightsail Dev Guide.

" + "documentation":"

Creates a Lightsail load balancer TLS certificate.

TLS is just an updated, more secure version of Secure Socket Layer (SSL).

The CreateLoadBalancerTlsCertificate operation supports tag-based access control via resource tags applied to the resource identified by load balancer name. For more information, see the Lightsail Dev Guide.

" }, "CreateRelationalDatabase":{ "name":"CreateRelationalDatabase", @@ -430,6 +448,24 @@ ], "documentation":"

Creates a snapshot of your database in Amazon Lightsail. You can use snapshots for backups, to make copies of a database, and to save data before deleting a database.

The create relational database snapshot operation supports tag-based access control via request tags. For more information, see the Lightsail Dev Guide.

" }, + "DeleteAlarm":{ + "name":"DeleteAlarm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAlarmRequest"}, + "output":{"shape":"DeleteAlarmResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationFailureException"}, + {"shape":"UnauthenticatedException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Deletes an alarm.

An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see Alarms in Amazon Lightsail.

" + }, "DeleteAutoSnapshot":{ "name":"DeleteAutoSnapshot", "http":{ @@ -448,6 +484,24 @@ ], "documentation":"

Deletes an automatic snapshot of an instance or disk. For more information, see the Lightsail Dev Guide.

" }, + "DeleteContactMethod":{ + "name":"DeleteContactMethod", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteContactMethodRequest"}, + "output":{"shape":"DeleteContactMethodResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationFailureException"}, + {"shape":"UnauthenticatedException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Deletes a contact method.

A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see Notifications in Amazon Lightsail.

" + }, "DeleteDisk":{ "name":"DeleteDisk", "http":{ @@ -636,7 +690,7 @@ {"shape":"AccountSetupInProgressException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Deletes an SSL/TLS certificate associated with a Lightsail load balancer.

The delete load balancer tls certificate operation supports tag-based access control via resource tags applied to the resource identified by load balancer name. For more information, see the Lightsail Dev Guide.

" + "documentation":"

Deletes an SSL/TLS certificate associated with a Lightsail load balancer.

The DeleteLoadBalancerTlsCertificate operation supports tag-based access control via resource tags applied to the resource identified by load balancer name. For more information, see the Lightsail Dev Guide.

" }, "DeleteRelationalDatabase":{ "name":"DeleteRelationalDatabase", @@ -826,6 +880,24 @@ ], "documentation":"

Returns the names of all active (not deleted) resources.

" }, + "GetAlarms":{ + "name":"GetAlarms", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAlarmsRequest"}, + "output":{"shape":"GetAlarmsResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationFailureException"}, + {"shape":"UnauthenticatedException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Returns information about the configured alarms. Specify an alarm name in your request to return information about a specific alarm, or specify a monitored resource name to return information about all alarms for a specific resource.

An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see Alarms in Amazon Lightsail.

" + }, "GetAutoSnapshots":{ "name":"GetAutoSnapshots", "http":{ @@ -901,6 +973,24 @@ ], "documentation":"

Returns the CloudFormation stack record created as a result of the create cloud formation stack operation.

An AWS CloudFormation stack is used to create a new Amazon EC2 instance from an exported Lightsail snapshot.

" }, + "GetContactMethods":{ + "name":"GetContactMethods", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetContactMethodsRequest"}, + "output":{"shape":"GetContactMethodsResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthenticatedException"} + ], + "documentation":"

Returns information about the configured contact methods. Specify a protocol in your request to return information about a specific contact method.

A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see Notifications in Amazon Lightsail.

" + }, "GetDisk":{ "name":"GetDisk", "http":{ @@ -956,7 +1046,7 @@ {"shape":"AccountSetupInProgressException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Returns information about all block storage disk snapshots in your AWS account and region.

If you are describing a long list of disk snapshots, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list.

" + "documentation":"

Returns information about all block storage disk snapshots in your AWS account and region.

" }, "GetDisks":{ "name":"GetDisks", @@ -975,7 +1065,7 @@ {"shape":"AccountSetupInProgressException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Returns information about all block storage disks in your AWS account and region.

If you are describing a long list of disks, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list.

" + "documentation":"

Returns information about all block storage disks in your AWS account and region.

" }, "GetDomain":{ "name":"GetDomain", @@ -1298,7 +1388,7 @@ {"shape":"AccountSetupInProgressException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Returns information about all load balancers in an account.

If you are describing a long list of load balancers, you can paginate the output to make the list more manageable. You can use the pageToken and nextPageToken values to retrieve the next items in the list.

" + "documentation":"

Returns information about all load balancers in an account.

" }, "GetOperation":{ "name":"GetOperation", @@ -1718,6 +1808,24 @@ ], "documentation":"

Tries to peer the Lightsail VPC with the user's default VPC.

" }, + "PutAlarm":{ + "name":"PutAlarm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutAlarmRequest"}, + "output":{"shape":"PutAlarmResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthenticatedException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Creates or updates an alarm, and associates it with the specified metric.

An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see Alarms in Amazon Lightsail.

When this action creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. The alarm is then evaluated with the updated configuration.

" + }, "PutInstancePublicPorts":{ "name":"PutInstancePublicPorts", "http":{ @@ -1794,6 +1902,24 @@ ], "documentation":"

Deletes a specific static IP from your account.

" }, + "SendContactMethodVerification":{ + "name":"SendContactMethodVerification", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SendContactMethodVerificationRequest"}, + "output":{"shape":"SendContactMethodVerificationResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationFailureException"}, + {"shape":"UnauthenticatedException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Sends a verification request to an email contact method to ensure it’s owned by the requester. SMS contact methods don’t need to be verified.

A contact method is used to send you notifications about your Amazon Lightsail resources. You can add one email address and one mobile phone number contact method in each AWS Region. However, SMS text messaging is not supported in some AWS Regions, and SMS text messages cannot be sent to some countries/regions. For more information, see Notifications in Amazon Lightsail.

A verification request is sent to the contact method when you initially create it. Use this action to send another verification request if a previous verification request was deleted, or has expired.

Notifications are not sent to an email contact method until after it is verified, and confirmed as valid.

" + }, "StartInstance":{ "name":"StartInstance", "http":{ @@ -1889,6 +2015,24 @@ ], "documentation":"

Adds one or more tags to the specified Amazon Lightsail resource. Each resource can have a maximum of 50 tags. Each tag consists of a key and an optional value. Tag keys must be unique per resource. For more information about tags, see the Lightsail Dev Guide.

The tag resource operation supports tag-based access control via request tags and resource tags applied to the resource identified by resource name. For more information, see the Lightsail Dev Guide.

" }, + "TestAlarm":{ + "name":"TestAlarm", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TestAlarmRequest"}, + "output":{"shape":"TestAlarmResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationFailureException"}, + {"shape":"UnauthenticatedException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Tests an alarm by displaying a banner on the Amazon Lightsail console. If a notification trigger is configured for the specified alarm, the test also sends a notification to the notification protocol (Email and/or SMS) configured for the alarm.

An alarm is used to monitor a single metric for one of your resources. When a metric condition is met, the alarm can notify you by email, SMS text message, and a banner displayed on the Amazon Lightsail console. For more information, see Alarms in Amazon Lightsail.

" + }, "UnpeerVpc":{ "name":"UnpeerVpc", "http":{ @@ -2083,6 +2227,104 @@ "type":"string", "enum":["AutoSnapshot"] }, + "Alarm":{ + "type":"structure", + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the alarm.

" + }, + "arn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the alarm.

" + }, + "createdAt":{ + "shape":"IsoDate", + "documentation":"

The timestamp when the alarm was created.

" + }, + "location":{ + "shape":"ResourceLocation", + "documentation":"

An object that lists information about the location of the alarm.

" + }, + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The Lightsail resource type (e.g., Alarm).

" + }, + "supportCode":{ + "shape":"string", + "documentation":"

The support code. Include this code in your email to support when you have questions about your Lightsail alarm. This code enables our support team to look up your Lightsail information more easily.

" + }, + "monitoredResourceInfo":{ + "shape":"MonitoredResourceInfo", + "documentation":"

An object that lists information about the resource monitored by the alarm.

" + }, + "comparisonOperator":{ + "shape":"ComparisonOperator", + "documentation":"

The arithmetic operation used when comparing the specified statistic and threshold.

" + }, + "evaluationPeriods":{ + "shape":"integer", + "documentation":"

The number of periods over which data is compared to the specified threshold.

" + }, + "period":{ + "shape":"MetricPeriod", + "documentation":"

The period, in seconds, over which the statistic is applied.

" + }, + "threshold":{ + "shape":"double", + "documentation":"

The value against which the specified statistic is compared.

" + }, + "datapointsToAlarm":{ + "shape":"integer", + "documentation":"

The number of data points that must not within the specified threshold to trigger the alarm.

" + }, + "treatMissingData":{ + "shape":"TreatMissingData", + "documentation":"

Specifies how the alarm handles missing data points.

An alarm can treat missing data in the following ways:

  • breaching — Assume the missing data is not within the threshold. Missing data counts towards the number of times the metric is not within the threshold.

  • notBreaching — Assume the missing data is within the threshold. Missing data does not count towards the number of times the metric is not within the threshold.

  • ignore — Ignore the missing data. Maintains the current alarm state.

  • missing — Missing data is treated as missing.

" + }, + "statistic":{ + "shape":"MetricStatistic", + "documentation":"

The statistic for the metric associated with the alarm.

The following statistics are available:

  • Minimum — The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application.

  • Maximum — The highest value observed during the specified period. Use this value to determine high volumes of activity for your application.

  • Sum — All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric.

  • Average — The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources.

  • SampleCount — The count, or number, of data points used for the statistical calculation.

" + }, + "metricName":{ + "shape":"MetricName", + "documentation":"

The name of the metric associated with the alarm.

" + }, + "state":{ + "shape":"AlarmState", + "documentation":"

The current state of the alarm.

An alarm has the following possible states:

  • ALARM — The metric is outside of the defined threshold.

  • INSUFFICIENT_DATA — The alarm has just started, the metric is not available, or not enough data is available for the metric to determine the alarm state.

  • OK — The metric is within the defined threshold.

" + }, + "unit":{ + "shape":"MetricUnit", + "documentation":"

The unit of the metric associated with the alarm.

" + }, + "contactProtocols":{ + "shape":"ContactProtocolsList", + "documentation":"

The contact protocols for the alarm, such as Email, SMS (text messaging), or both.

" + }, + "notificationTriggers":{ + "shape":"NotificationTriggerList", + "documentation":"

The alarm states that trigger a notification.

" + }, + "notificationEnabled":{ + "shape":"boolean", + "documentation":"

Indicates whether the alarm is enabled.

" + } + }, + "documentation":"

Describes an alarm.

An alarm is a way to monitor your Amazon Lightsail resource metrics. For more information, see Alarms in Amazon Lightsail.

" + }, + "AlarmState":{ + "type":"string", + "enum":[ + "OK", + "ALARM", + "INSUFFICIENT_DATA" + ] + }, + "AlarmsList":{ + "type":"list", + "member":{"shape":"Alarm"} + }, "AllocateStaticIpRequest":{ "type":"structure", "required":["staticIpName"], @@ -2098,7 +2340,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the static IP address you allocated.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2129,7 +2371,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2155,7 +2397,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object representing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2181,7 +2423,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object representing the API operations.

These SSL/TLS certificates are only usable by Lightsail load balancers. You can't get the certificate and use it for another purpose.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

These SSL/TLS certificates are only usable by Lightsail load balancers. You can't get the certificate and use it for another purpose.

" } } }, @@ -2207,7 +2449,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about your API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2443,7 +2685,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs that contains information about the operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2515,6 +2757,81 @@ "type":"string", "enum":["ExportSnapshotRecord"] }, + "ComparisonOperator":{ + "type":"string", + "enum":[ + "GreaterThanOrEqualToThreshold", + "GreaterThanThreshold", + "LessThanThreshold", + "LessThanOrEqualToThreshold" + ] + }, + "ContactMethod":{ + "type":"structure", + "members":{ + "contactEndpoint":{ + "shape":"NonEmptyString", + "documentation":"

The destination of the contact method, such as an email address or a mobile phone number.

" + }, + "status":{ + "shape":"ContactMethodStatus", + "documentation":"

The current status of the contact method.

A contact method has the following possible status:

  • PendingVerification — The contact method has not yet been verified, and the verification has not yet expired.

  • Valid — The contact method has been verified.

  • InValid — An attempt was made to verify the contact method, but the verification has expired.

" + }, + "protocol":{ + "shape":"ContactProtocol", + "documentation":"

The protocol of the contact method, such as email or SMS (text messaging).

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the contact method.

" + }, + "arn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the contact method.

" + }, + "createdAt":{ + "shape":"IsoDate", + "documentation":"

The timestamp when the contact method was created.

" + }, + "location":{"shape":"ResourceLocation"}, + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The Lightsail resource type (e.g., ContactMethod).

" + }, + "supportCode":{ + "shape":"string", + "documentation":"

The support code. Include this code in your email to support when you have questions about your Lightsail contact method. This code enables our support team to look up your Lightsail information more easily.

" + } + }, + "documentation":"

Describes a contact method.

A contact method is a way to send you notifications. For more information, see Notifications in Amazon Lightsail.

" + }, + "ContactMethodStatus":{ + "type":"string", + "enum":[ + "PendingVerification", + "Valid", + "Invalid" + ] + }, + "ContactMethodVerificationProtocol":{ + "type":"string", + "enum":["Email"] + }, + "ContactMethodsList":{ + "type":"list", + "member":{"shape":"ContactMethod"} + }, + "ContactProtocol":{ + "type":"string", + "enum":[ + "Email", + "SMS" + ] + }, + "ContactProtocolsList":{ + "type":"list", + "member":{"shape":"ContactProtocol"} + }, "CopySnapshotRequest":{ "type":"structure", "required":[ @@ -2553,7 +2870,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

A list of objects describing the API operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2572,7 +2889,33 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

A list of objects describing the API operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" + } + } + }, + "CreateContactMethodRequest":{ + "type":"structure", + "required":[ + "protocol", + "contactEndpoint" + ], + "members":{ + "protocol":{ + "shape":"ContactProtocol", + "documentation":"

The protocol of the contact method, such as Email or SMS (text messaging).

The SMS protocol is supported only in the following AWS Regions.

  • US East (N. Virginia) (us-east-1)

  • US West (Oregon) (us-west-2)

  • Europe (Ireland) (eu-west-1)

  • Asia Pacific (Tokyo) (ap-northeast-1)

  • Asia Pacific (Singapore) (ap-southeast-1)

  • Asia Pacific (Sydney) (ap-southeast-2)

For a list of countries/regions where SMS text messages can be sent, and the latest AWS Regions where SMS text messaging is supported, see Supported Regions and Countries in the Amazon SNS Developer Guide.

For more information about notifications in Amazon Lightsail, see Notifications in Amazon Lightsail.

" + }, + "contactEndpoint":{ + "shape":"StringMax256", + "documentation":"

The destination of the contact method, such as an email address or a mobile phone number.

Use the E.164 format when specifying a mobile phone number. E.164 is a standard for the phone number structure used for international telecommunication. Phone numbers that follow this format can have a maximum of 15 digits, and they are prefixed with the plus character (+) and the country code. For example, a U.S. phone number in E.164 format would be specified as +1XXX5550100. For more information, see E.164 in Wikipedia.

" + } + } + }, + "CreateContactMethodResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2627,7 +2970,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2666,7 +3009,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2697,7 +3040,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2723,7 +3066,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2746,7 +3089,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the domain resource you created.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2776,7 +3119,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your create instances snapshot request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2843,7 +3186,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your create instances from snapshot request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2900,7 +3243,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your create instances request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2935,7 +3278,7 @@ }, "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the results of your create key pair request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -2981,7 +3324,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object containing information about the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3020,7 +3363,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object containing information about the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3071,7 +3414,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your create relational database from snapshot request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3136,7 +3479,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your create relational database request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3166,7 +3509,26 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your create relational database snapshot request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" + } + } + }, + "DeleteAlarmRequest":{ + "type":"structure", + "required":["alarmName"], + "members":{ + "alarmName":{ + "shape":"ResourceName", + "documentation":"

The name of the alarm to delete.

" + } + } + }, + "DeleteAlarmResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3192,7 +3554,26 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of objects that describe the result of your request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" + } + } + }, + "DeleteContactMethodRequest":{ + "type":"structure", + "required":["protocol"], + "members":{ + "protocol":{ + "shape":"ContactProtocol", + "documentation":"

The protocol that will be deleted, such as Email or SMS (text messaging).

To delete an Email and an SMS contact method if you added both, you must run separate DeleteContactMethod actions to delete each protocol.

" + } + } + }, + "DeleteContactMethodResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3215,7 +3596,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of objects that describe the result of your request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3234,7 +3615,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3260,7 +3641,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the results of your delete domain entry request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3279,7 +3660,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the results of your delete domain request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3302,7 +3683,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your delete instance request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3321,7 +3702,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your delete instance snapshot request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3340,7 +3721,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the results of your delete key pair request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3359,7 +3740,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

A list of objects describing the API operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3378,7 +3759,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3408,7 +3789,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3435,7 +3816,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your delete relational database request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3454,7 +3835,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your delete relational database snapshot request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3487,7 +3868,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3513,7 +3894,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3532,7 +3913,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your detach static IP request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3558,7 +3939,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of objects that describe the result of your request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -3914,7 +4295,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of objects that describe the result of your request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -4020,7 +4401,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

A list of objects describing the API operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -4029,7 +4410,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for paginating results from your get active names request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetActiveNames request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4042,7 +4423,37 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get active names request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetActiveNames request and specify the next page token using the pageToken parameter.

" + } + } + }, + "GetAlarmsRequest":{ + "type":"structure", + "members":{ + "alarmName":{ + "shape":"ResourceName", + "documentation":"

The name of the alarm.

Specify an alarm name to return information about a specific alarm.

" + }, + "pageToken":{ + "shape":"string", + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetAlarms request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" + }, + "monitoredResourceName":{ + "shape":"ResourceName", + "documentation":"

The name of the Lightsail resource being monitored by the alarm.

Specify a monitored resource name to return information about all alarms for a specific resource.

" + } + } + }, + "GetAlarmsResult":{ + "type":"structure", + "members":{ + "alarms":{ + "shape":"AlarmsList", + "documentation":"

An array of objects that describe the alarms.

" + }, + "nextPageToken":{ + "shape":"string", + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetAlarms request and specify the next page token using the pageToken parameter.

" } } }, @@ -4082,7 +4493,7 @@ }, "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get blueprints request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetBlueprints request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4095,7 +4506,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get blueprints request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetBlueprints request and specify the next page token using the pageToken parameter.

" } } }, @@ -4108,7 +4519,7 @@ }, "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get bundles request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetBundles request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4121,7 +4532,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get active names request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetBundles request and specify the next page token using the pageToken parameter.

" } } }, @@ -4130,7 +4541,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get cloud formation stack records request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetClouFormationStackRecords request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4143,7 +4554,25 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results of your get relational database bundles request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetCloudFormationStackRecords request and specify the next page token using the pageToken parameter.

" + } + } + }, + "GetContactMethodsRequest":{ + "type":"structure", + "members":{ + "protocols":{ + "shape":"ContactProtocolsList", + "documentation":"

The protocols used to send notifications, such as Email, or SMS (text messaging).

Specify a protocol in your request to return information about a specific contact method protocol.

" + } + } + }, + "GetContactMethodsResult":{ + "type":"structure", + "members":{ + "contactMethods":{ + "shape":"ContactMethodsList", + "documentation":"

An array of objects that describe the contact methods.

" } } }, @@ -4190,7 +4619,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your GetDiskSnapshots request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetDiskSnapshots request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4203,7 +4632,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your GetDiskSnapshots request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetDiskSnapshots request and specify the next page token using the pageToken parameter.

" } } }, @@ -4212,7 +4641,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your GetDisks request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetDisks request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4225,7 +4654,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your GetDisks request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetDisks request and specify the next page token using the pageToken parameter.

" } } }, @@ -4253,7 +4682,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get domains request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetDomains request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4266,7 +4695,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get active names request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetDomains request and specify the next page token using the pageToken parameter.

" } } }, @@ -4275,7 +4704,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get export snapshot records request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetExportSnapshotRecords request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4288,7 +4717,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results of your get relational database bundles request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetExportSnapshotRecords request and specify the next page token using the pageToken parameter.

" } } }, @@ -4333,11 +4762,11 @@ }, "metricName":{ "shape":"InstanceMetricName", - "documentation":"

The metric name to get data about.

" + "documentation":"

The metric for which you want to return information.

Valid instance metric names are listed below, along with the most useful statistics to include in your request, and the published unit value.

  • CPUUtilization — The percentage of allocated compute units that are currently in use on the instance. This metric identifies the processing power to run the applications on the instance. Tools in your operating system can show a lower percentage than Lightsail when the instance is not allocated a full processor core.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Percent.

  • NetworkIn — The number of bytes received on all network interfaces by the instance. This metric identifies the volume of incoming network traffic to the instance. The number reported is the number of bytes received during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Bytes.

  • NetworkOut — The number of bytes sent out on all network interfaces by the instance. This metric identifies the volume of outgoing network traffic from the instance. The number reported is the number of bytes sent during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Bytes.

  • StatusCheckFailed — Reports whether the instance passed or failed both the instance status check and the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • StatusCheckFailed_Instance — Reports whether the instance passed or failed the instance status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • StatusCheckFailed_System — Reports whether the instance passed or failed the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

" }, "period":{ "shape":"MetricPeriod", - "documentation":"

The granularity, in seconds, of the returned data points.

" + "documentation":"

The granularity, in seconds, of the returned data points.

The StatusCheckFailed, StatusCheckFailed_Instance, and StatusCheckFailed_System instance metric data is available in 1-minute (60 seconds) granularity. All other instance metric data is available in 5-minute (300 seconds) granularity.

" }, "startTime":{ "shape":"timestamp", @@ -4349,11 +4778,11 @@ }, "unit":{ "shape":"MetricUnit", - "documentation":"

The unit. The list of valid values is below.

" + "documentation":"

The unit for the metric data request. Valid units depend on the metric data being required. For the valid units with each available metric, see the metricName parameter.

" }, "statistics":{ "shape":"MetricStatisticList", - "documentation":"

The instance statistics.

" + "documentation":"

The statistic for the metric.

The following statistics are available:

  • Minimum — The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application.

  • Maximum — The highest value observed during the specified period. Use this value to determine high volumes of activity for your application.

  • Sum — All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric.

  • Average — The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources.

  • SampleCount — The count, or number, of data points used for the statistical calculation.

" } } }, @@ -4432,7 +4861,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get instance snapshots request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetInstanceSnapshots request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4445,7 +4874,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get instance snapshots request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetInstanceSnapshots request and specify the next page token using the pageToken parameter.

" } } }, @@ -4473,7 +4902,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get instances request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetInstances request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4486,7 +4915,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get instances request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetInstances request and specify the next page token using the pageToken parameter.

" } } }, @@ -4514,7 +4943,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get key pairs request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetKeyPairs request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4527,7 +4956,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get key pairs request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetKeyPairs request and specify the next page token using the pageToken parameter.

" } } }, @@ -4549,7 +4978,7 @@ }, "metricName":{ "shape":"LoadBalancerMetricName", - "documentation":"

The metric about which you want to return information. Valid values are listed below, along with the most useful statistics to include in your request.

  • ClientTLSNegotiationErrorCount - The number of TLS connections initiated by the client that did not establish a session with the load balancer. Possible causes include a mismatch of ciphers or protocols.

    Statistics: The most useful statistic is Sum.

  • HealthyHostCount - The number of target instances that are considered healthy.

    Statistics: The most useful statistic are Average, Minimum, and Maximum.

  • UnhealthyHostCount - The number of target instances that are considered unhealthy.

    Statistics: The most useful statistic are Average, Minimum, and Maximum.

  • HTTPCode_LB_4XX_Count - The number of HTTP 4XX client error codes that originate from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests have not been received by the target instance. This count does not include any response codes generated by the target instances.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_LB_5XX_Count - The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the target instances.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_2XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_3XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_4XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • HTTPCode_Instance_5XX_Count - The number of HTTP response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

  • InstanceResponseTime - The time elapsed, in seconds, after the request leaves the load balancer until a response from the target instance is received.

    Statistics: The most useful statistic is Average.

  • RejectedConnectionCount - The number of connections that were rejected because the load balancer had reached its maximum number of connections.

    Statistics: The most useful statistic is Sum.

  • RequestCount - The number of requests processed over IPv4. This count includes only the requests with a response generated by a target instance of the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

" + "documentation":"

The metric for which you want to return information.

Valid load balancer metric names are listed below, along with the most useful statistics to include in your request, and the published unit value.

  • ClientTLSNegotiationErrorCount — The number of TLS connections initiated by the client that did not establish a session with the load balancer due to a TLS error generated by the load balancer. Possible causes include a mismatch of ciphers or protocols.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • HealthyHostCount — The number of target instances that are considered healthy.

    Statistics: The most useful statistic are Average, Minimum, and Maximum.

    Unit: The published unit is Count.

  • HTTPCode_Instance_2XX_Count — The number of HTTP 2XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

    Unit: The published unit is Count.

  • HTTPCode_Instance_3XX_Count — The number of HTTP 3XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

    Unit: The published unit is Count.

  • HTTPCode_Instance_4XX_Count — The number of HTTP 4XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

    Unit: The published unit is Count.

  • HTTPCode_Instance_5XX_Count — The number of HTTP 5XX response codes generated by the target instances. This does not include any response codes generated by the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

    Unit: The published unit is Count.

  • HTTPCode_LB_4XX_Count — The number of HTTP 4XX client error codes that originated from the load balancer. Client errors are generated when requests are malformed or incomplete. These requests were not received by the target instance. This count does not include response codes generated by the target instances.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

    Unit: The published unit is Count.

  • HTTPCode_LB_5XX_Count — The number of HTTP 5XX server error codes that originated from the load balancer. This does not include any response codes generated by the target instance. This metric is reported if there are no healthy instances attached to the load balancer, or if the request rate exceeds the capacity of the instances (spillover) or the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

    Unit: The published unit is Count.

  • InstanceResponseTime — The time elapsed, in seconds, after the request leaves the load balancer until a response from the target instance is received.

    Statistics: The most useful statistic is Average.

    Unit: The published unit is Seconds.

  • RejectedConnectionCount — The number of connections that were rejected because the load balancer had reached its maximum number of connections.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • RequestCount — The number of requests processed over IPv4. This count includes only the requests with a response generated by a target instance of the load balancer.

    Statistics: The most useful statistic is Sum. Note that Minimum, Maximum, and Average all return 1.

    Unit: The published unit is Count.

  • UnhealthyHostCount — The number of target instances that are considered unhealthy.

    Statistics: The most useful statistic are Average, Minimum, and Maximum.

    Unit: The published unit is Count.

" }, "period":{ "shape":"MetricPeriod", @@ -4565,11 +4994,11 @@ }, "unit":{ "shape":"MetricUnit", - "documentation":"

The unit for the time period request. Valid values are listed below.

" + "documentation":"

The unit for the metric data request. Valid units depend on the metric data being required. For the valid units with each available metric, see the metricName parameter.

" }, "statistics":{ "shape":"MetricStatisticList", - "documentation":"

An array of statistics that you want to request metrics for. Valid values are listed below.

  • SampleCount - The count (number) of data points used for the statistical calculation.

  • Average - The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum. This comparison helps you to know when to increase or decrease your resources as needed.

  • Sum - All values submitted for the matching metric added together. This statistic can be useful for determining the total volume of a metric.

  • Minimum - The lowest value observed during the specified period. You can use this value to determine low volumes of activity for your application.

  • Maximum - The highest value observed during the specified period. You can use this value to determine high volumes of activity for your application.

" + "documentation":"

The statistic for the metric.

The following statistics are available:

  • Minimum — The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application.

  • Maximum — The highest value observed during the specified period. Use this value to determine high volumes of activity for your application.

  • Sum — All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric.

  • Average — The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources.

  • SampleCount — The count, or number, of data points used for the statistical calculation.

" } } }, @@ -4629,7 +5058,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for paginating the results from your GetLoadBalancers request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetLoadBalancers request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4642,7 +5071,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your GetLoadBalancers request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetLoadBalancers request and specify the next page token using the pageToken parameter.

" } } }, @@ -4661,7 +5090,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the results of your get operation request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -4675,7 +5104,7 @@ }, "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get operations for resource request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetOperationsForResource request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4684,7 +5113,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your get operations for resource request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" }, "nextPageCount":{ "shape":"string", @@ -4693,7 +5122,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetOperationsForResource request and specify the next page token using the pageToken parameter.

" } } }, @@ -4702,7 +5131,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get operations request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetOperations request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4711,11 +5140,11 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the results of your get operations request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get operations request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetOperations request and specify the next page token using the pageToken parameter.

" } } }, @@ -4746,7 +5175,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get relational database blueprints request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetRelationalDatabaseBlueprints request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4759,7 +5188,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results of your get relational database blueprints request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetRelationalDatabaseBlueprints request and specify the next page token using the pageToken parameter.

" } } }, @@ -4768,7 +5197,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get relational database bundles request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetRelationalDatabaseBundles request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4781,7 +5210,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results of your get relational database bundles request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetRelationalDatabaseBundles request and specify the next page token using the pageToken parameter.

" } } }, @@ -4799,7 +5228,7 @@ }, "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results from for get relational database events request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetRelationalDatabaseEvents request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4812,7 +5241,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get relational database events request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetRelationalDatabaseEvents request and specify the next page token using the pageToken parameter.

" } } }, @@ -4845,7 +5274,7 @@ }, "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get relational database log events request.

" + "documentation":"

The token to advance to the next or previous page of results from your request.

To get a page token, perform an initial GetRelationalDatabaseLogEvents request. If your results are paginated, the response will return a next forward token and/or next backward token that you can specify as the page token in a subsequent request.

" } } }, @@ -4930,11 +5359,11 @@ }, "metricName":{ "shape":"RelationalDatabaseMetricName", - "documentation":"

The name of the metric data to return.

" + "documentation":"

The metric for which you want to return information.

Valid relational database metric names are listed below, along with the most useful statistics to include in your request, and the published unit value. All relational database metric data is available in 1-minute (60 seconds) granularity.

  • CPUUtilization — The percentage of CPU utilization currently in use on the database.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Percent.

  • DatabaseConnections — The number of database connections in use.

    Statistics: The most useful statistics are Maximum and Sum.

    Unit: The published unit is Count.

  • DiskQueueDepth — The number of outstanding IOs (read/write requests) that are waiting to access the disk.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • FreeStorageSpace — The amount of available storage space.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Bytes.

  • NetworkReceiveThroughput — The incoming (Receive) network traffic on the database, including both customer database traffic and AWS traffic used for monitoring and replication.

    Statistics: The most useful statistic is Average.

    Unit: The published unit is Bytes/Second.

  • NetworkTransmitThroughput — The outgoing (Transmit) network traffic on the database, including both customer database traffic and AWS traffic used for monitoring and replication.

    Statistics: The most useful statistic is Average.

    Unit: The published unit is Bytes/Second.

" }, "period":{ "shape":"MetricPeriod", - "documentation":"

The granularity, in seconds, of the returned data points.

" + "documentation":"

The granularity, in seconds, of the returned data points.

All relational database metric data is available in 1-minute (60 seconds) granularity.

" }, "startTime":{ "shape":"IsoDate", @@ -4946,11 +5375,11 @@ }, "unit":{ "shape":"MetricUnit", - "documentation":"

The unit for the metric data request.

" + "documentation":"

The unit for the metric data request. Valid units depend on the metric data being required. For the valid units with each available metric, see the metricName parameter.

" }, "statistics":{ "shape":"MetricStatisticList", - "documentation":"

The array of statistics for your metric data request.

" + "documentation":"

The statistic for the metric.

The following statistics are available:

  • Minimum — The lowest value observed during the specified period. Use this value to determine low volumes of activity for your application.

  • Maximum — The highest value observed during the specified period. Use this value to determine high volumes of activity for your application.

  • Sum — All values submitted for the matching metric added together. You can use this statistic to determine the total volume of a metric.

  • Average — The value of Sum / SampleCount during the specified period. By comparing this statistic with the Minimum and Maximum values, you can determine the full scope of a metric and how close the average use is to the Minimum and Maximum values. This comparison helps you to know when to increase or decrease your resources.

  • SampleCount — The count, or number, of data points used for the statistical calculation.

" } } }, @@ -4977,7 +5406,7 @@ }, "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get relational database parameters request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetRelationalDatabaseParameters request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -4990,7 +5419,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get static IPs request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetRelationalDatabaseParameters request and specify the next page token using the pageToken parameter.

" } } }, @@ -5037,7 +5466,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get relational database snapshots request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetRelationalDatabaseSnapshots request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -5050,7 +5479,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get relational database snapshots request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetRelationalDatabaseSnapshots request and specify the next page token using the pageToken parameter.

" } } }, @@ -5059,7 +5488,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to a specific page of results for your get relational database request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetRelationalDatabases request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -5072,7 +5501,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get relational databases request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetRelationalDatabases request and specify the next page token using the pageToken parameter.

" } } }, @@ -5100,7 +5529,7 @@ "members":{ "pageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get static IPs request.

" + "documentation":"

The token to advance to the next page of results from your request.

To get a page token, perform an initial GetStaticIps request. If your results are paginated, the response will return a next page token that you can specify as the page token in a subsequent request.

" } } }, @@ -5113,7 +5542,7 @@ }, "nextPageToken":{ "shape":"string", - "documentation":"

A token used for advancing to the next page of results from your get static IPs request.

" + "documentation":"

The token to advance to the next page of resutls from your request.

A next page token is not returned if there are no more results to display.

To get the next page of results, perform another GetStaticIps request and specify the next page token using the pageToken parameter.

" } } }, @@ -5177,7 +5606,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -6139,6 +6568,34 @@ "type":"list", "member":{"shape":"MetricDatapoint"} }, + "MetricName":{ + "type":"string", + "enum":[ + "CPUUtilization", + "NetworkIn", + "NetworkOut", + "StatusCheckFailed", + "StatusCheckFailed_Instance", + "StatusCheckFailed_System", + "ClientTLSNegotiationErrorCount", + "HealthyHostCount", + "UnhealthyHostCount", + "HTTPCode_LB_4XX_Count", + "HTTPCode_LB_5XX_Count", + "HTTPCode_Instance_2XX_Count", + "HTTPCode_Instance_3XX_Count", + "HTTPCode_Instance_4XX_Count", + "HTTPCode_Instance_5XX_Count", + "InstanceResponseTime", + "RejectedConnectionCount", + "RequestCount", + "DatabaseConnections", + "DiskQueueDepth", + "FreeStorageSpace", + "NetworkReceiveThroughput", + "NetworkTransmitThroughput" + ] + }, "MetricPeriod":{ "type":"integer", "max":86400, @@ -6190,6 +6647,24 @@ "None" ] }, + "MonitoredResourceInfo":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource being monitored.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the Lightsail resource being monitored.

" + }, + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The Lightsail resource type of the resource being monitored.

Instances, load balancers, and relational databases are the only Lightsail resources that can currently be monitored by alarms.

" + } + }, + "documentation":"

Describes resource being monitored by an alarm.

An alarm is a way to monitor your Amazon Lightsail resource metrics. For more information, see Alarms in Amazon Lightsail.

" + }, "MonthlyTransfer":{ "type":"structure", "members":{ @@ -6223,6 +6698,10 @@ "documentation":"

Lightsail throws this exception when it cannot find a resource.

", "exception":true }, + "NotificationTriggerList":{ + "type":"list", + "member":{"shape":"AlarmState"} + }, "OpenInstancePublicPortsRequest":{ "type":"structure", "required":[ @@ -6245,7 +6724,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -6377,7 +6856,15 @@ "RebootRelationalDatabase", "StopRelationalDatabase", "EnableAddOn", - "DisableAddOn" + "DisableAddOn", + "PutAlarm", + "GetAlarms", + "DeleteAlarm", + "TestAlarm", + "CreateContactMethod", + "GetContactMethods", + "SendContactMethodVerification", + "DeleteContactMethod" ] }, "PasswordData":{ @@ -6404,7 +6891,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -6502,6 +6989,72 @@ "closed" ] }, + "PutAlarmRequest":{ + "type":"structure", + "required":[ + "alarmName", + "metricName", + "monitoredResourceName", + "comparisonOperator", + "threshold", + "evaluationPeriods" + ], + "members":{ + "alarmName":{ + "shape":"ResourceName", + "documentation":"

The name for the alarm. Specify the name of an existing alarm to update, and overwrite the previous configuration of the alarm.

" + }, + "metricName":{ + "shape":"MetricName", + "documentation":"

The name of the metric to associate with the alarm.

You can configure up to two alarms per metric.

The following metrics are available for each resource type:

  • Instances: CPUUtilization, NetworkIn, NetworkOut, StatusCheckFailed, StatusCheckFailed_Instance, and StatusCheckFailed_System.

  • Load balancers: ClientTLSNegotiationErrorCount, HealthyHostCount, UnhealthyHostCount, HTTPCode_LB_4XX_Count, HTTPCode_LB_5XX_Count, HTTPCode_Instance_2XX_Count, HTTPCode_Instance_3XX_Count, HTTPCode_Instance_4XX_Count, HTTPCode_Instance_5XX_Count, InstanceResponseTime, RejectedConnectionCount, and RequestCount.

  • Relational databases: CPUUtilization, DatabaseConnections, DiskQueueDepth, FreeStorageSpace, NetworkReceiveThroughput, and NetworkTransmitThroughput.

" + }, + "monitoredResourceName":{ + "shape":"ResourceName", + "documentation":"

The name of the Lightsail resource that will be monitored.

Instances, load balancers, and relational databases are the only Lightsail resources that can currently be monitored by alarms.

" + }, + "comparisonOperator":{ + "shape":"ComparisonOperator", + "documentation":"

The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand.

" + }, + "threshold":{ + "shape":"double", + "documentation":"

The value against which the specified statistic is compared.

" + }, + "evaluationPeriods":{ + "shape":"integer", + "documentation":"

The number of most recent periods over which data is compared to the specified threshold. If you are setting an \"M out of N\" alarm, this value (evaluationPeriods) is the N.

If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies the rolling period of time in which data points are evaluated.

Each evaluation period is five minutes long. For example, specify an evaluation period of 24 to evaluate a metric over a rolling period of two hours.

You can specify a minimum valuation period of 1 (5 minutes), and a maximum evaluation period of 288 (24 hours).

" + }, + "datapointsToAlarm":{ + "shape":"integer", + "documentation":"

The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an \"M out of N\" alarm, this value (datapointsToAlarm) is the M.

" + }, + "treatMissingData":{ + "shape":"TreatMissingData", + "documentation":"

Sets how this alarm will handle missing data points.

An alarm can treat missing data in the following ways:

  • breaching — Assume the missing data is not within the threshold. Missing data counts towards the number of times the metric is not within the threshold.

  • notBreaching — Assume the missing data is within the threshold. Missing data does not count towards the number of times the metric is not within the threshold.

  • ignore — Ignore the missing data. Maintains the current alarm state.

  • missing — Missing data is treated as missing.

If treatMissingData is not specified, the default behavior of missing is used.

" + }, + "contactProtocols":{ + "shape":"ContactProtocolsList", + "documentation":"

The contact protocols to use for the alarm, such as Email, SMS (text messaging), or both.

A notification is sent via the specified contact protocol if notifications are enabled for the alarm, and when the alarm is triggered.

A notification is not sent if a contact protocol is not specified, if the specified contact protocol is not configured in the AWS Region, or if notifications are not enabled for the alarm using the notificationEnabled paramater.

Use the CreateContactMethod action to configure a contact protocol in an AWS Region.

" + }, + "notificationTriggers":{ + "shape":"NotificationTriggerList", + "documentation":"

The alarm states that trigger a notification.

An alarm has the following possible states:

  • ALARM — The metric is outside of the defined threshold.

  • INSUFFICIENT_DATA — The alarm has just started, the metric is not available, or not enough data is available for the metric to determine the alarm state.

  • OK — The metric is within the defined threshold.

When you specify a notification trigger, the ALARM state must be specified. The INSUFFICIENT_DATA and OK states can be specified in addition to the ALARM state.

  • If you specify OK as an alarm trigger, a notification is sent when the alarm switches from an ALARM or INSUFFICIENT_DATA alarm state to an OK state. This can be thought of as an all clear alarm notification.

  • If you specify INSUFFICIENT_DATA as the alarm trigger, a notification is sent when the alarm switches from an OK or ALARM alarm state to an INSUFFICIENT_DATA state.

The notification trigger defaults to ALARM if you don't specify this parameter.

" + }, + "notificationEnabled":{ + "shape":"boolean", + "documentation":"

Indicates whether the alarm is enabled.

Notifications are enabled by default if you don't specify this parameter.

" + } + } + }, + "PutAlarmResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" + } + } + }, "PutInstancePublicPortsRequest":{ "type":"structure", "required":[ @@ -6524,7 +7077,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

Describes metadata about the operation you just executed.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -6543,7 +7096,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the request operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -6562,7 +7115,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your reboot relational database request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7029,7 +7582,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7075,9 +7628,30 @@ "RelationalDatabase", "RelationalDatabaseSnapshot", "ExportSnapshotRecord", - "CloudFormationStackRecord" + "CloudFormationStackRecord", + "Alarm", + "ContactMethod" ] }, + "SendContactMethodVerificationRequest":{ + "type":"structure", + "required":["protocol"], + "members":{ + "protocol":{ + "shape":"ContactMethodVerificationProtocol", + "documentation":"

The protocol to verify, such as Email or SMS (text messaging).

" + } + } + }, + "SendContactMethodVerificationResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" + } + } + }, "SensitiveString":{ "type":"string", "sensitive":true @@ -7109,7 +7683,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7128,7 +7702,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your start relational database request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7197,7 +7771,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7220,7 +7794,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your stop relational database request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7282,15 +7856,50 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

A list of objects describing the API operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, "TagValue":{"type":"string"}, + "TestAlarmRequest":{ + "type":"structure", + "required":[ + "alarmName", + "state" + ], + "members":{ + "alarmName":{ + "shape":"ResourceName", + "documentation":"

The name of the alarm to test.

" + }, + "state":{ + "shape":"AlarmState", + "documentation":"

The alarm state to test.

An alarm has the following possible states that can be tested:

  • ALARM — The metric is outside of the defined threshold.

  • INSUFFICIENT_DATA — The alarm has just started, the metric is not available, or not enough data is available for the metric to determine the alarm state.

  • OK — The metric is within the defined threshold.

" + } + } + }, + "TestAlarmResult":{ + "type":"structure", + "members":{ + "operations":{ + "shape":"OperationList", + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" + } + } + }, "TimeOfDay":{ "type":"string", "pattern":"^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$" }, + "TreatMissingData":{ + "type":"string", + "enum":[ + "breaching", + "notBreaching", + "ignore", + "missing" + ] + }, "UnauthenticatedException":{ "type":"structure", "members":{ @@ -7312,7 +7921,7 @@ "members":{ "operation":{ "shape":"Operation", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7342,7 +7951,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

A list of objects describing the API operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7368,7 +7977,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An array of key-value pairs containing information about the request operation.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7399,7 +8008,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the API operations.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7425,7 +8034,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your update relational database parameters request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, @@ -7480,7 +8089,7 @@ "members":{ "operations":{ "shape":"OperationList", - "documentation":"

An object describing the result of your update relational database request.

" + "documentation":"

An array of objects that describe the result of the action, such as the status of the request, the time stamp of the request, and the resources affected by the request.

" } } }, diff --git a/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json b/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json index bafc0b6a..141550a1 100644 --- a/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json +++ b/botocore/data/marketplacecommerceanalytics/2015-07-01/service-2.json @@ -105,7 +105,7 @@ }, "dataSetPublicationDate":{ "shape":"DataSetPublicationDate", - "documentation":"The date a data set was published. For daily data sets, provide a date with day-level granularity for the desired day. For weekly data sets, provide a date with day-level granularity within the desired week (the day value will be ignored). For monthly data sets, provide a date with month-level granularity for the desired month (the day value will be ignored)." + "documentation":"The date a data set was published. For daily data sets, provide a date with day-level granularity for the desired day. For monthly data sets except those with prefix disbursed_amount, provide a date with month-level granularity for the desired month (the day value will be ignored). For data sets with prefix disbursed_amount, provide a date with day-level granularity for the desired day. For these data sets we will look backwards in time over the range of 31 days until the first data set is found (the latest one)." }, "roleNameArn":{ "shape":"RoleNameArn", diff --git a/botocore/data/mediaconnect/2018-11-14/service-2.json b/botocore/data/mediaconnect/2018-11-14/service-2.json index 63c04400..c55acdb3 100644 --- a/botocore/data/mediaconnect/2018-11-14/service-2.json +++ b/botocore/data/mediaconnect/2018-11-14/service-2.json @@ -28,7 +28,7 @@ "errors": [ { "shape": "AddFlowOutputs420Exception", - "documentation": "AWS Elemental MediaConnect can't complete this request because this flow already has the maximum number of allowed outputs (20). For more information, contact AWS Customer Support." + "documentation": "AWS Elemental MediaConnect can't complete this request because this flow already has the maximum number of allowed outputs (50). For more information, contact AWS Customer Support." }, { "shape": "BadRequestException", @@ -55,7 +55,49 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Adds outputs to an existing flow. You can create up to 20 outputs per flow." + "documentation": "Adds outputs to an existing flow. You can create up to 50 outputs per flow." + }, + "AddFlowSources": { + "name": "AddFlowSources", + "http": { + "method": "POST", + "requestUri": "/v1/flows/{flowArn}/source", + "responseCode": 201 + }, + "input": { + "shape": "AddFlowSourcesRequest" + }, + "output": { + "shape": "AddFlowSourcesResponse", + "documentation": "AWS Elemental MediaConnect added sources to the flow successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + } + ], + "documentation": "Adds Sources to flow" }, "CreateFlow": { "name": "CreateFlow", @@ -97,7 +139,7 @@ "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." } ], - "documentation": "Creates a new flow. The request must include one source. The request optionally can include outputs (up to 20) and entitlements (up to 50)." + "documentation": "Creates a new flow. The request must include one source. The request optionally can include outputs (up to 50) and entitlements (up to 50)." }, "DeleteFlow": { "name": "DeleteFlow", @@ -369,6 +411,48 @@ ], "documentation": "Removes an output from an existing flow. This request can be made only on an output that does not have an entitlement associated with it. If the output has an entitlement, you must revoke the entitlement instead. When an entitlement is revoked from a flow, the service automatically removes the associated output." }, + "RemoveFlowSource": { + "name": "RemoveFlowSource", + "http": { + "method": "DELETE", + "requestUri": "/v1/flows/{flowArn}/source/{sourceArn}", + "responseCode": 202 + }, + "input": { + "shape": "RemoveFlowSourceRequest" + }, + "output": { + "shape": "RemoveFlowSourceResponse", + "documentation": "source successfully removed from flow configuration." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + } + ], + "documentation": "Removes a source from an existing flow. This request can be made only if there is more than one source on the flow." + }, "RevokeFlowEntitlement": { "name": "RevokeFlowEntitlement", "http": { @@ -547,6 +631,48 @@ ], "documentation": "Deletes specified tags from a resource." }, + "UpdateFlow": { + "name": "UpdateFlow", + "http": { + "method": "PUT", + "requestUri": "/v1/flows/{flowArn}", + "responseCode": 202 + }, + "input": { + "shape": "UpdateFlowRequest" + }, + "output": { + "shape": "UpdateFlowResponse", + "documentation": "AWS Elemental MediaConnect updated the flow successfully." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "The request that you submitted is not valid." + }, + { + "shape": "InternalServerErrorException", + "documentation": "AWS Elemental MediaConnect can't fulfill your request because it encountered an unexpected condition." + }, + { + "shape": "ForbiddenException", + "documentation": "You don't have the required permissions to perform this operation." + }, + { + "shape": "NotFoundException", + "documentation": "AWS Elemental MediaConnect did not find the resource that you specified in the request." + }, + { + "shape": "ServiceUnavailableException", + "documentation": "AWS Elemental MediaConnect is currently unavailable. Try again later." + }, + { + "shape": "TooManyRequestsException", + "documentation": "You have exceeded the service request rate limit for your AWS Elemental MediaConnect account." + } + ], + "documentation": "Updates flow" + }, "UpdateFlowEntitlement": { "name": "UpdateFlowEntitlement", "http": { @@ -729,6 +855,42 @@ } } }, + "AddFlowSourcesRequest": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "location": "uri", + "locationName": "flowArn", + "documentation": "The flow that you want to mutate." + }, + "Sources": { + "shape": "__listOfSetSourceRequest", + "locationName": "sources", + "documentation": "A list of sources that you want to add." + } + }, + "documentation": "A request to add sources to the flow.", + "required": [ + "FlowArn", + "Sources" + ] + }, + "AddFlowSourcesResponse": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "locationName": "flowArn", + "documentation": "The ARN of the flow that these sources were added to." + }, + "Sources": { + "shape": "__listOfSource", + "locationName": "sources", + "documentation": "The details of the newly added sources." + } + } + }, "AddOutputRequest": { "type": "structure", "members": { @@ -863,11 +1025,18 @@ "Source": { "shape": "SetSourceRequest", "locationName": "source" + }, + "SourceFailoverConfig": { + "shape": "FailoverConfig", + "locationName": "sourceFailoverConfig" + }, + "Sources": { + "shape": "__listOfSetSourceRequest", + "locationName": "sources" } }, - "documentation": "Creates a new flow. The request must include one source. The request optionally can include outputs (up to 20) and entitlements (up to 50).", + "documentation": "Creates a new flow. The request must include one source. The request optionally can include outputs (up to 50) and entitlements (up to 50).", "required": [ - "Source", "Name" ] }, @@ -1032,6 +1201,21 @@ "Name" ] }, + "FailoverConfig": { + "type": "structure", + "members": { + "RecoveryWindow": { + "shape": "__integer", + "locationName": "recoveryWindow", + "documentation": "Search window time to look for dash-7 packets" + }, + "State": { + "shape": "State", + "locationName": "state" + } + }, + "documentation": "The settings for source failover" + }, "Flow": { "type": "structure", "members": { @@ -1074,6 +1258,14 @@ "shape": "Source", "locationName": "source" }, + "SourceFailoverConfig": { + "shape": "FailoverConfig", + "locationName": "sourceFailoverConfig" + }, + "Sources": { + "shape": "__listOfSource", + "locationName": "sources" + }, "Status": { "shape": "Status", "locationName": "status", @@ -1522,6 +1714,42 @@ } } }, + "RemoveFlowSourceRequest": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "location": "uri", + "locationName": "flowArn", + "documentation": "The flow that you want to remove a source from." + }, + "SourceArn": { + "shape": "__string", + "location": "uri", + "locationName": "sourceArn", + "documentation": "The ARN of the source that you want to remove." + } + }, + "required": [ + "FlowArn", + "SourceArn" + ] + }, + "RemoveFlowSourceResponse": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "locationName": "flowArn", + "documentation": "The ARN of the flow that is associated with the source you removed." + }, + "SourceArn": { + "shape": "__string", + "locationName": "sourceArn", + "documentation": "The ARN of the source that was removed." + } + } + }, "ResponseError": { "type": "structure", "members": { @@ -1742,6 +1970,13 @@ } } }, + "State": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, "Status": { "type": "string", "enum": [ @@ -1938,6 +2173,21 @@ }, "documentation": "Information about the encryption of the flow." }, + "UpdateFailoverConfig": { + "type": "structure", + "members": { + "RecoveryWindow": { + "shape": "__integer", + "locationName": "recoveryWindow", + "documentation": "Recovery window time to look for dash-7 packets" + }, + "State": { + "shape": "State", + "locationName": "state" + } + }, + "documentation": "The settings for source failover" + }, "UpdateFlowEntitlementRequest": { "type": "structure", "members": { @@ -2075,6 +2325,34 @@ } } }, + "UpdateFlowRequest": { + "type": "structure", + "members": { + "FlowArn": { + "shape": "__string", + "location": "uri", + "locationName": "flowArn", + "documentation": "The flow that you want to update." + }, + "SourceFailoverConfig": { + "shape": "UpdateFailoverConfig", + "locationName": "sourceFailoverConfig" + } + }, + "documentation": "A request to update flow.", + "required": [ + "FlowArn" + ] + }, + "UpdateFlowResponse": { + "type": "structure", + "members": { + "Flow": { + "shape": "Flow", + "locationName": "flow" + } + } + }, "UpdateFlowSourceRequest": { "type": "structure", "members": { @@ -2202,6 +2480,24 @@ "shape": "Output" } }, + "__listOfSetSourceRequest": { + "type": "list", + "member": { + "shape": "SetSourceRequest" + } + }, + "__listOfSource": { + "type": "list", + "member": { + "shape": "Source" + } + }, + "__listOf__integer": { + "type": "list", + "member": { + "shape": "__integer" + } + }, "__listOf__string": { "type": "list", "member": { diff --git a/botocore/data/mediaconvert/2017-08-29/service-2.json b/botocore/data/mediaconvert/2017-08-29/service-2.json index d9ec070e..a131164b 100644 --- a/botocore/data/mediaconvert/2017-08-29/service-2.json +++ b/botocore/data/mediaconvert/2017-08-29/service-2.json @@ -1672,6 +1672,131 @@ "USE_CONFIGURED" ] }, + "Av1AdaptiveQuantization": { + "type": "string", + "documentation": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality.", + "enum": [ + "OFF", + "LOW", + "MEDIUM", + "HIGH", + "HIGHER", + "MAX" + ] + }, + "Av1FramerateControl": { + "type": "string", + "documentation": "If you are using the console, use the Framerate setting to specify the frame rate for this output. If you want to keep the same frame rate as the input video, choose Follow source. If you want to do frame rate conversion, choose a frame rate from the dropdown list or choose Custom. The framerates shown in the dropdown list are decimal approximations of fractions. If you choose Custom, specify your frame rate as a fraction. If you are creating your transcoding job specification as a JSON file without the console, use FramerateControl to specify which value the service uses for the frame rate for this output. Choose INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the input. Choose SPECIFIED if you want the service to use the frame rate you specify in the settings FramerateNumerator and FramerateDenominator.", + "enum": [ + "INITIALIZE_FROM_SOURCE", + "SPECIFIED" + ] + }, + "Av1FramerateConversionAlgorithm": { + "type": "string", + "documentation": "When set to INTERPOLATE, produces smoother motion during frame rate conversion.", + "enum": [ + "DUPLICATE_DROP", + "INTERPOLATE" + ] + }, + "Av1QvbrSettings": { + "type": "structure", + "members": { + "QvbrQualityLevel": { + "shape": "__integerMin1Max10", + "locationName": "qvbrQualityLevel", + "documentation": "Required when you use QVBR rate control mode. That is, when you specify qvbrSettings within av1Settings. Specify the general target quality level for this output, from 1 to 10. Use higher numbers for greater quality. Level 10 results in nearly lossless compression. The quality level for most broadcast-quality transcodes is between 6 and 9. Optionally, to specify a value between whole numbers, also provide a value for the setting qvbrQualityLevelFineTune. For example, if you want your QVBR quality level to be 7.33, set qvbrQualityLevel to 7 and set qvbrQualityLevelFineTune to .33." + }, + "QvbrQualityLevelFineTune": { + "shape": "__doubleMin0Max1", + "locationName": "qvbrQualityLevelFineTune", + "documentation": "Optional. Specify a value here to set the QVBR quality to a level that is between whole numbers. For example, if you want your QVBR quality level to be 7.33, set qvbrQualityLevel to 7 and set qvbrQualityLevelFineTune to .33. MediaConvert rounds your QVBR quality level to the nearest third of a whole number. For example, if you set qvbrQualityLevel to 7 and you set qvbrQualityLevelFineTune to .25, your actual QVBR quality level is 7.33." + } + }, + "documentation": "Settings for quality-defined variable bitrate encoding with the AV1 codec. Required when you set Rate control mode to QVBR. Not valid when you set Rate control mode to a value other than QVBR, or when you don't define Rate control mode." + }, + "Av1RateControlMode": { + "type": "string", + "documentation": "'With AV1 outputs, for rate control mode, MediaConvert supports only quality-defined variable bitrate (QVBR). You can''t use CBR or VBR.'", + "enum": [ + "QVBR" + ] + }, + "Av1Settings": { + "type": "structure", + "members": { + "AdaptiveQuantization": { + "shape": "Av1AdaptiveQuantization", + "locationName": "adaptiveQuantization", + "documentation": "Adaptive quantization. Allows intra-frame quantizers to vary to improve visual quality." + }, + "FramerateControl": { + "shape": "Av1FramerateControl", + "locationName": "framerateControl", + "documentation": "If you are using the console, use the Framerate setting to specify the frame rate for this output. If you want to keep the same frame rate as the input video, choose Follow source. If you want to do frame rate conversion, choose a frame rate from the dropdown list or choose Custom. The framerates shown in the dropdown list are decimal approximations of fractions. If you choose Custom, specify your frame rate as a fraction. If you are creating your transcoding job specification as a JSON file without the console, use FramerateControl to specify which value the service uses for the frame rate for this output. Choose INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the input. Choose SPECIFIED if you want the service to use the frame rate you specify in the settings FramerateNumerator and FramerateDenominator." + }, + "FramerateConversionAlgorithm": { + "shape": "Av1FramerateConversionAlgorithm", + "locationName": "framerateConversionAlgorithm", + "documentation": "When set to INTERPOLATE, produces smoother motion during frame rate conversion." + }, + "FramerateDenominator": { + "shape": "__integerMin1Max2147483647", + "locationName": "framerateDenominator", + "documentation": "When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976." + }, + "FramerateNumerator": { + "shape": "__integerMin1Max2147483647", + "locationName": "framerateNumerator", + "documentation": "When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976." + }, + "GopSize": { + "shape": "__doubleMin0", + "locationName": "gopSize", + "documentation": "Specify the GOP length (keyframe interval) in frames. With AV1, MediaConvert doesn't support GOP length in seconds. This value must be greater than zero and preferably equal to 1 + ((numberBFrames + 1) * x), where x is an integer value." + }, + "MaxBitrate": { + "shape": "__integerMin1000Max1152000000", + "locationName": "maxBitrate", + "documentation": "Maximum bitrate in bits/second. For example, enter five megabits per second as 5000000. Required when Rate control mode is QVBR." + }, + "NumberBFramesBetweenReferenceFrames": { + "shape": "__integerMin7Max15", + "locationName": "numberBFramesBetweenReferenceFrames", + "documentation": "Specify the number of B-frames. With AV1, MediaConvert supports only 7 or 15." + }, + "QvbrSettings": { + "shape": "Av1QvbrSettings", + "locationName": "qvbrSettings", + "documentation": "Settings for quality-defined variable bitrate encoding with the AV1 codec. Required when you set Rate control mode to QVBR. Not valid when you set Rate control mode to a value other than QVBR, or when you don't define Rate control mode." + }, + "RateControlMode": { + "shape": "Av1RateControlMode", + "locationName": "rateControlMode", + "documentation": "'With AV1 outputs, for rate control mode, MediaConvert supports only quality-defined variable bitrate (QVBR). You can''t use CBR or VBR.'" + }, + "Slices": { + "shape": "__integerMin1Max32", + "locationName": "slices", + "documentation": "Specify the number of slices per picture. This value must be 1, 2, 4, 8, 16, or 32. For progressive pictures, this value must be less than or equal to the number of macroblock rows. For interlaced pictures, this value must be less than or equal to half the number of macroblock rows." + }, + "SpatialAdaptiveQuantization": { + "shape": "Av1SpatialAdaptiveQuantization", + "locationName": "spatialAdaptiveQuantization", + "documentation": "Adjust quantization within each frame based on spatial variation of content complexity." + } + }, + "documentation": "Required when you set Codec, under VideoDescription>CodecSettings to the value AV1." + }, + "Av1SpatialAdaptiveQuantization": { + "type": "string", + "documentation": "Adjust quantization within each frame based on spatial variation of content complexity.", + "enum": [ + "DISABLED", + "ENABLED" + ] + }, "AvailBlanking": { "type": "structure", "members": { @@ -2387,7 +2512,7 @@ "ColorSpaceConversion": { "shape": "ColorSpaceConversion", "locationName": "colorSpaceConversion", - "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, and from SDR to HDR. The service doesn't support conversion from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output." + "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR." }, "Contrast": { "shape": "__integerMin1Max100", @@ -2433,7 +2558,7 @@ }, "ColorSpaceConversion": { "type": "string", - "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, and from SDR to HDR. The service doesn't support conversion from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output.", + "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR.", "enum": [ "NONE", "FORCE_601", @@ -9094,6 +9219,7 @@ "documentation": "Type of video codec", "enum": [ "FRAME_CAPTURE", + "AV1", "H_264", "H_265", "MPEG2", @@ -9103,6 +9229,11 @@ "VideoCodecSettings": { "type": "structure", "members": { + "Av1Settings": { + "shape": "Av1Settings", + "locationName": "av1Settings", + "documentation": "Required when you set Codec, under VideoDescription>CodecSettings to the value AV1." + }, "Codec": { "shape": "VideoCodec", "locationName": "codec", @@ -9134,7 +9265,7 @@ "documentation": "Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value PRORES." } }, - "documentation": "Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings" + "documentation": "Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * FRAME_CAPTURE, FrameCaptureSettings * AV1, Av1Settings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings" }, "VideoDescription": { "type": "structure", @@ -9152,7 +9283,7 @@ "CodecSettings": { "shape": "VideoCodecSettings", "locationName": "codecSettings", - "documentation": "Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings" + "documentation": "Video codec settings, (CodecSettings) under (VideoDescription), contains the group of settings related to video encoding. The settings in this group vary depending on the value that you choose for Video codec (Codec). For each codec enum that you choose, define the corresponding settings object. The following lists the codec enum, settings object pairs. * FRAME_CAPTURE, FrameCaptureSettings * AV1, Av1Settings * H_264, H264Settings * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings" }, "ColorMetadata": { "shape": "ColorMetadata", @@ -9697,6 +9828,11 @@ "min": 64000, "max": 640000 }, + "__integerMin7Max15": { + "type": "integer", + "min": 7, + "max": 15 + }, "__integerMin8000Max192000": { "type": "integer", "min": 8000, diff --git a/botocore/data/medialive/2017-10-14/service-2.json b/botocore/data/medialive/2017-10-14/service-2.json index 9086b7cc..e55be090 100644 --- a/botocore/data/medialive/2017-10-14/service-2.json +++ b/botocore/data/medialive/2017-10-14/service-2.json @@ -9188,6 +9188,11 @@ "MultiplexProgramSettings": { "type": "structure", "members": { + "PreferredChannelPipeline": { + "shape": "PreferredChannelPipeline", + "locationName": "preferredChannelPipeline", + "documentation": "Indicates which pipeline is preferred by the multiplex for program ingest." + }, "ProgramNumber": { "shape": "__integerMin0Max65535", "locationName": "programNumber", @@ -9772,6 +9777,15 @@ "PipelineId" ] }, + "PreferredChannelPipeline": { + "type": "string", + "documentation": "Indicates which pipeline is preferred by the multiplex for program ingest.\nIf set to \\\"PIPELINE_0\\\" or \\\"PIPELINE_1\\\" and an unhealthy ingest causes the multiplex to switch to the non-preferred pipeline,\nit will switch back once that ingest is healthy again. If set to \\\"CURRENTLY_ACTIVE\\\",\nit will not switch back to the other pipeline based on it recovering to a healthy state,\nit will only switch if the active pipeline becomes unhealthy.\n", + "enum": [ + "CURRENTLY_ACTIVE", + "PIPELINE_0", + "PIPELINE_1" + ] + }, "PurchaseOffering": { "type": "structure", "members": { diff --git a/botocore/data/mediapackage-vod/2018-11-07/service-2.json b/botocore/data/mediapackage-vod/2018-11-07/service-2.json index 8e9abf75..78475393 100644 --- a/botocore/data/mediapackage-vod/2018-11-07/service-2.json +++ b/botocore/data/mediapackage-vod/2018-11-07/service-2.json @@ -835,6 +835,11 @@ "DashManifest": { "documentation": "A DASH manifest configuration.", "members": { + "ManifestLayout": { + "documentation": "Determines the position of some tags in the Media Presentation Description (MPD). When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation. When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.", + "locationName": "manifestLayout", + "shape": "ManifestLayout" + }, "ManifestName": { "documentation": "An optional string to include in the name of the manifest.", "locationName": "manifestName", @@ -869,10 +874,20 @@ "locationName": "encryption", "shape": "DashEncryption" }, + "PeriodTriggers": { + "documentation": "A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)\nMedia Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not\nbe partitioned into more than one period. If the list contains \"ADS\", new periods will be created where\nthe Asset contains SCTE-35 ad markers.\n", + "locationName": "periodTriggers", + "shape": "__listOf__PeriodTriggersElement" + }, "SegmentDurationSeconds": { "documentation": "Duration (in seconds) of each segment. Actual segments will be\nrounded to the nearest multiple of the source segment duration.\n", "locationName": "segmentDurationSeconds", "shape": "__integer" + }, + "SegmentTemplateFormat": { + "documentation": "Determines the type of SegmentTemplate included in the Media Presentation Description (MPD). When set to NUMBER_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Number$ media URLs. When set to TIME_WITH_TIMELINE, a full timeline is presented in each SegmentTemplate, with $Time$ media URLs. When set to NUMBER_WITH_DURATION, only a duration is included in each SegmentTemplate, with $Number$ media URLs.", + "locationName": "segmentTemplateFormat", + "shape": "SegmentTemplateFormat" } }, "required": [ @@ -1322,6 +1337,13 @@ }, "type": "structure" }, + "ManifestLayout": { + "enum": [ + "FULL", + "COMPACT" + ], + "type": "string" + }, "MaxResults": { "max": 1000, "min": 1, @@ -1539,6 +1561,14 @@ ], "type": "string" }, + "SegmentTemplateFormat": { + "enum": [ + "NUMBER_WITH_TIMELINE", + "TIME_WITH_TIMELINE", + "NUMBER_WITH_DURATION" + ], + "type": "string" + }, "ServiceUnavailableException": { "documentation": "An unexpected error occurred.", "error": { @@ -1636,6 +1666,12 @@ }, "type": "structure" }, + "__PeriodTriggersElement": { + "enum": [ + "ADS" + ], + "type": "string" + }, "__boolean": { "type": "boolean" }, @@ -1687,6 +1723,12 @@ }, "type": "list" }, + "__listOf__PeriodTriggersElement": { + "member": { + "shape": "__PeriodTriggersElement" + }, + "type": "list" + }, "__listOf__string": { "member": { "shape": "__string" diff --git a/botocore/data/mediatailor/2018-04-23/service-2.json b/botocore/data/mediatailor/2018-04-23/service-2.json index 185e13c2..69d38d5e 100644 --- a/botocore/data/mediatailor/2018-04-23/service-2.json +++ b/botocore/data/mediatailor/2018-04-23/service-2.json @@ -262,6 +262,10 @@ "documentation": "

The identifier for the playback configuration.

", "shape": "__string" }, + "PersonalizationThresholdSeconds" : { + "documentation": "

The maximum duration of underfilled ad time (in seconds) allowed in an ad break.

", + "shape" : "__integerMin1" + }, "PlaybackConfigurationArn": { "documentation": "

The Amazon Resource Name (ARN) for the playback configuration.

", "shape": "__string" @@ -413,6 +417,10 @@ "documentation": "

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

", "shape": "__string" }, + "PersonalizationThresholdSeconds" : { + "documentation": "

The maximum duration of underfilled ad time (in seconds) allowed in an ad break.

", + "shape" : "__integerMin1" + }, "VideoContentSourceUrl": { "documentation": "

The URL prefix for the master playlist for the stream, minus the asset ID. The maximum length is 512 characters.

", "shape": "__string" @@ -456,6 +464,10 @@ "documentation": "

The identifier for the playback configuration.

", "shape": "__string" }, + "PersonalizationThresholdSeconds" : { + "documentation": "

The maximum duration of underfilled ad time (in seconds) allowed in an ad break.

", + "shape" : "__integerMin1" + }, "SlateAdUrl": { "documentation": "

The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

", "shape": "__string" @@ -501,6 +513,10 @@ "Name": { "documentation": "

The identifier for the playback configuration.

", "shape": "__string" + }, + "PersonalizationThresholdSeconds" : { + "documentation": "

The maximum duration of underfilled ad time (in seconds) allowed in an ad break.

", + "shape" : "__integerMin1" }, "PlaybackConfigurationArn": { "documentation": "

The Amazon Resource Name (ARN) for the playback configuration.

", @@ -597,6 +613,10 @@ }, "__integer": { "type": "integer" + }, + "__integerMin1": { + "type": "integer", + "min": 1 }, "__integerMin1Max100": { "max": 100, diff --git a/botocore/data/neptune/2014-10-31/service-2.json b/botocore/data/neptune/2014-10-31/service-2.json index c9ea716e..ed8a484a 100644 --- a/botocore/data/neptune/2014-10-31/service-2.json +++ b/botocore/data/neptune/2014-10-31/service-2.json @@ -112,7 +112,7 @@ {"shape":"SnapshotQuotaExceededFault"}, {"shape":"KMSKeyNotAccessibleFault"} ], - "documentation":"

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can't copy from one AWS Region to another.

" + "documentation":"

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

" }, "CopyDBParameterGroup":{ "name":"CopyDBParameterGroup", @@ -160,7 +160,7 @@ {"shape":"DBInstanceNotFoundFault"}, {"shape":"DBSubnetGroupDoesNotCoverEnoughAZs"} ], - "documentation":"

Creates a new Amazon Neptune DB cluster.

You can use the ReplicationSourceIdentifier parameter to create the DB cluster as a Read Replica of another DB cluster or Amazon Neptune DB instance.

" + "documentation":"

Creates a new Amazon Neptune DB cluster.

You can use the ReplicationSourceIdentifier parameter to create the DB cluster as a Read Replica of another DB cluster or Amazon Neptune DB instance.

Note that when you create a new cluster using CreateDBCluster directly, deletion protection is disabled by default (when you create a new production cluster in the console, deletion protection is enabled by default). You can only delete a DB cluster if its DeletionProtection field is set to false.

" }, "CreateDBClusterParameterGroup":{ "name":"CreateDBClusterParameterGroup", @@ -309,7 +309,7 @@ {"shape":"SnapshotQuotaExceededFault"}, {"shape":"InvalidDBClusterSnapshotStateFault"} ], - "documentation":"

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

" + "documentation":"

The DeleteDBCluster action deletes a previously provisioned DB cluster. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the specified DB cluster are not deleted.

Note that the DB Cluster cannot be deleted if deletion protection is enabled. To delete it, you must first set its DeletionProtection field to False.

" }, "DeleteDBClusterParameterGroup":{ "name":"DeleteDBClusterParameterGroup", @@ -359,7 +359,7 @@ {"shape":"SnapshotQuotaExceededFault"}, {"shape":"InvalidDBClusterStateFault"} ], - "documentation":"

The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted.

If you request a final DB snapshot the status of the Amazon Neptune DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action can't be canceled or reverted once submitted.

Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true.

You can't delete a DB instance if it is the only instance in the DB cluster.

" + "documentation":"

The DeleteDBInstance action deletes a previously provisioned DB instance. When you delete a DB instance, all automated backups for that instance are deleted and can't be recovered. Manual DB snapshots of the DB instance to be deleted by DeleteDBInstance are not deleted.

If you request a final DB snapshot the status of the Amazon Neptune DB instance is deleting until the DB snapshot is created. The API action DescribeDBInstance is used to monitor the status of this operation. The action can't be canceled or reverted once submitted.

Note that when a DB instance is in a failure state and has a status of failed, incompatible-restore, or incompatible-network, you can only delete it when the SkipFinalSnapshot parameter is set to true.

You can't delete a DB instance if it is the only instance in the DB cluster, or if it has deletion protection enabled.

" }, "DeleteDBParameterGroup":{ "name":"DeleteDBParameterGroup", @@ -483,7 +483,7 @@ "errors":[ {"shape":"DBClusterNotFoundFault"} ], - "documentation":"

Returns information about provisioned DB clusters. This API supports pagination.

" + "documentation":"

Returns information about provisioned DB clusters, and supports pagination.

This operation can also return information for Amazon RDS clusters and Amazon DocDB clusters.

" }, "DescribeDBEngineVersions":{ "name":"DescribeDBEngineVersions", @@ -512,7 +512,7 @@ "errors":[ {"shape":"DBInstanceNotFoundFault"} ], - "documentation":"

Returns information about provisioned instances. This API supports pagination.

" + "documentation":"

Returns information about provisioned instances, and supports pagination.

This operation can also return information for Amazon RDS instances and Amazon DocDB instances.

" }, "DescribeDBParameterGroups":{ "name":"DescribeDBParameterGroups", @@ -1039,6 +1039,42 @@ {"shape":"DBClusterParameterGroupNotFoundFault"} ], "documentation":"

Restores a DB cluster to an arbitrary point in time. Users can restore to any point in time before LatestRestorableTime for up to BackupRetentionPeriod days. The target DB cluster is created from the source DB cluster with the same configuration as the original DB cluster, except that the new DB cluster is created with the default DB security group.

This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterToPointInTime action has completed and the DB cluster is available.

" + }, + "StartDBCluster":{ + "name":"StartDBCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartDBClusterMessage"}, + "output":{ + "shape":"StartDBClusterResult", + "resultWrapper":"StartDBClusterResult" + }, + "errors":[ + {"shape":"DBClusterNotFoundFault"}, + {"shape":"InvalidDBClusterStateFault"}, + {"shape":"InvalidDBInstanceStateFault"} + ], + "documentation":"

Starts an Amazon Neptune DB cluster that was stopped using the AWS console, the AWS CLI stop-db-cluster command, or the StopDBCluster API.

" + }, + "StopDBCluster":{ + "name":"StopDBCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopDBClusterMessage"}, + "output":{ + "shape":"StopDBClusterResult", + "resultWrapper":"StopDBClusterResult" + }, + "errors":[ + {"shape":"DBClusterNotFoundFault"}, + {"shape":"InvalidDBClusterStateFault"}, + {"shape":"InvalidDBInstanceStateFault"} + ], + "documentation":"

Stops an Amazon Neptune DB cluster. When you stop a DB cluster, Neptune retains the DB cluster's metadata, including its endpoints and DB parameter groups.

Neptune also retains the transaction logs so you can do a point-in-time restore if necessary.

" } }, "shapes":{ @@ -1424,7 +1460,7 @@ }, "DeletionProtection":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.

" + "documentation":"

A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is enabled.

" } } }, @@ -1672,7 +1708,7 @@ }, "DeletionProtection":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.

You can enable or disable deletion protection for the DB cluster. For more information, see CreateDBCluster. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster.

" + "documentation":"

A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See Deleting a DB Instance.

DB instances in a DB cluster can be deleted even when deletion protection is enabled in their parent DB cluster.

" } } }, @@ -1938,7 +1974,7 @@ }, "DeletionProtection":{ "shape":"BooleanOptional", - "documentation":"

Indicates if the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.

" + "documentation":"

Indicates whether or not the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled.

" } }, "documentation":"

Contains the details of an Amazon Neptune DB cluster.

This data type is used as a response element in the DescribeDBClusters action.

", @@ -2194,7 +2230,7 @@ }, "DBClusterSnapshotIdentifier":{ "shape":"String", - "documentation":"

Specifies the identifier for the DB cluster snapshot.

" + "documentation":"

Specifies the identifier for a DB cluster snapshot. Must match the identifier of an existing snapshot.

After you restore a DB cluster using a DBClusterSnapshotIdentifier, you must specify the same DBClusterSnapshotIdentifier for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed.

However, if you don't specify the DBClusterSnapshotIdentifier, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, the DB cluster is restored from the snapshot specified by the DBClusterSnapshotIdentifier, and the original DB cluster is deleted.

" }, "DBClusterIdentifier":{ "shape":"String", @@ -2640,7 +2676,7 @@ }, "DeletionProtection":{ "shape":"BooleanOptional", - "documentation":"

Indicates if the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled.

" + "documentation":"

Indicates whether or not the DB instance has deletion protection enabled. The instance can't be deleted when deletion protection is enabled. See Deleting a DB Instance.

" } }, "documentation":"

Contains the details of an Amazon Neptune DB instance.

This data type is used as a response element in the DescribeDBInstances action.

", @@ -3247,7 +3283,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

A filter that specifies one or more DB clusters to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs.

" + "documentation":"

A filter that specifies one or more DB clusters to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB clusters identified by these ARNs.

  • engine - Accepts an engine name (such as neptune), and restricts the results list to DB clusters created by that engine.

For example, to invoke this API from the AWS CLI and filter so that only Neptune DB clusters are returned, you could use the following command:

" }, "MaxRecords":{ "shape":"IntegerOptional", @@ -3309,7 +3345,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

A filter that specifies one or more DB instances to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB clusters identified by these ARNs.

  • db-instance-id - Accepts DB instance identifiers and DB instance Amazon Resource Names (ARNs). The results list will only include information about the DB instances identified by these ARNs.

" + "documentation":"

A filter that specifies one or more DB instances to describe.

Supported filters:

  • db-cluster-id - Accepts DB cluster identifiers and DB cluster Amazon Resource Names (ARNs). The results list will only include information about the DB instances associated with the DB clusters identified by these ARNs.

  • engine - Accepts an engine name (such as neptune), and restricts the results list to DB instances created by that engine.

For example, to invoke this API from the AWS CLI and filter so that only Neptune DB instances are returned, you could use the following command:

" }, "MaxRecords":{ "shape":"IntegerOptional", @@ -4204,7 +4240,7 @@ }, "DeletionProtection":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.

" + "documentation":"

A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.

" } } }, @@ -4413,7 +4449,7 @@ }, "DeletionProtection":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.

" + "documentation":"

A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See Deleting a DB Instance.

" } } }, @@ -5284,6 +5320,38 @@ "db-cluster-snapshot" ] }, + "StartDBClusterMessage":{ + "type":"structure", + "required":["DBClusterIdentifier"], + "members":{ + "DBClusterIdentifier":{ + "shape":"String", + "documentation":"

The DB cluster identifier of the Neptune DB cluster to be started. This parameter is stored as a lowercase string.

" + } + } + }, + "StartDBClusterResult":{ + "type":"structure", + "members":{ + "DBCluster":{"shape":"DBCluster"} + } + }, + "StopDBClusterMessage":{ + "type":"structure", + "required":["DBClusterIdentifier"], + "members":{ + "DBClusterIdentifier":{ + "shape":"String", + "documentation":"

The DB cluster identifier of the Neptune DB cluster to be stopped. This parameter is stored as a lowercase string.

" + } + } + }, + "StopDBClusterResult":{ + "type":"structure", + "members":{ + "DBCluster":{"shape":"DBCluster"} + } + }, "StorageQuotaExceededFault":{ "type":"structure", "members":{ diff --git a/botocore/data/opsworkscm/2016-11-01/service-2.json b/botocore/data/opsworkscm/2016-11-01/service-2.json index 1f6448fe..911d67d4 100644 --- a/botocore/data/opsworkscm/2016-11-01/service-2.json +++ b/botocore/data/opsworkscm/2016-11-01/service-2.json @@ -1286,7 +1286,7 @@ "type":"string", "max":128, "min":1, - "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\\\\\-@]*)$" + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, "TagKeyList":{ "type":"list", @@ -1326,7 +1326,7 @@ "type":"string", "max":256, "min":0, - "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\\\\\-@]*)$" + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, "TimeWindowDefinition":{ "type":"string", diff --git a/botocore/data/outposts/2019-12-03/service-2.json b/botocore/data/outposts/2019-12-03/service-2.json index 0016e532..592e2036 100644 --- a/botocore/data/outposts/2019-12-03/service-2.json +++ b/botocore/data/outposts/2019-12-03/service-2.json @@ -30,6 +30,38 @@ ], "documentation":"

Creates an Outpost.

" }, + "DeleteOutpost":{ + "name":"DeleteOutpost", + "http":{ + "method":"DELETE", + "requestUri":"/outposts/{OutpostId}" + }, + "input":{"shape":"DeleteOutpostInput"}, + "output":{"shape":"DeleteOutpostOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"NotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes the Outpost.

" + }, + "DeleteSite":{ + "name":"DeleteSite", + "http":{ + "method":"DELETE", + "requestUri":"/sites/{SiteId}" + }, + "input":{"shape":"DeleteSiteInput"}, + "output":{"shape":"DeleteSiteOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"NotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes the site.

" + }, "GetOutpost":{ "name":"GetOutpost", "http":{ @@ -111,14 +143,14 @@ }, "AvailabilityZone":{ "type":"string", - "documentation":"

The Availability Zone.

", + "documentation":"

The Availability Zone.

You must specify AvailabilityZone or AvailabilityZoneId.

", "max":1000, "min":1, "pattern":"[a-z\\d-]+" }, "AvailabilityZoneId":{ "type":"string", - "documentation":"

The ID of the Availability Zone.

", + "documentation":"

The ID of the Availability Zone.

You must specify AvailabilityZone or AvailabilityZoneId.

", "max":255, "min":1, "pattern":"[a-z]+[0-9]+-az[0-9]+" @@ -140,6 +172,38 @@ "Outpost":{"shape":"Outpost"} } }, + "DeleteOutpostInput":{ + "type":"structure", + "required":["OutpostId"], + "members":{ + "OutpostId":{ + "shape":"OutpostId", + "location":"uri", + "locationName":"OutpostId" + } + } + }, + "DeleteOutpostOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteSiteInput":{ + "type":"structure", + "required":["SiteId"], + "members":{ + "SiteId":{ + "shape":"SiteId", + "location":"uri", + "locationName":"SiteId" + } + } + }, + "DeleteSiteOutput":{ + "type":"structure", + "members":{ + } + }, "ErrorMessage":{ "type":"string", "max":1000, diff --git a/botocore/data/personalize/2018-05-22/service-2.json b/botocore/data/personalize/2018-05-22/service-2.json index 32f02006..f9d3a0bb 100644 --- a/botocore/data/personalize/2018-05-22/service-2.json +++ b/botocore/data/personalize/2018-05-22/service-2.json @@ -816,6 +816,10 @@ "failureReason":{ "shape":"FailureReason", "documentation":"

If the batch inference job failed, the reason for the failure.

" + }, + "solutionVersionArn":{ + "shape":"Arn", + "documentation":"

The ARN of the solution version used by the batch inference job.

" } }, "documentation":"

A truncated version of the BatchInferenceJob datatype. The ListBatchInferenceJobs operation returns a list of batch inference job summaries.

" @@ -2130,7 +2134,7 @@ "members":{ "type":{ "shape":"HPOObjectiveType", - "documentation":"

The data type of the metric.

" + "documentation":"

The type of the metric. Valid values are Maximize and Minimize.

" }, "metricName":{ "shape":"MetricName", @@ -2871,6 +2875,10 @@ "shape":"TrainingMode", "documentation":"

The scope of training used to create the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the training data that has changed since the creation of the last solution version. Choose UPDATE when you want to start recommending items added to the dataset without retraining the model.

The UPDATE option can only be used after you've created a solution version with the FULL option and the training solution uses the native-recipe-hrnn-coldstart.

" }, + "tunedHPOParams":{ + "shape":"TunedHPOParams", + "documentation":"

If hyperparameter optimization was performed, contains the hyperparameter values of the best performing model.

" + }, "status":{ "shape":"Status", "documentation":"

The status of the solution version.

A solution version can be in one of the following states:

  • CREATE PENDING

  • CREATE IN_PROGRESS

  • ACTIVE

  • CREATE FAILED

" @@ -2954,6 +2962,16 @@ "min":1 }, "Tunable":{"type":"boolean"}, + "TunedHPOParams":{ + "type":"structure", + "members":{ + "algorithmHyperParameters":{ + "shape":"HyperParameters", + "documentation":"

A list of the hyperparameter values of the best performing model.

" + } + }, + "documentation":"

If hyperparameter optimization (HPO) was performed, contains the hyperparameter values of the best performing model.

" + }, "UpdateCampaignRequest":{ "type":"structure", "required":["campaignArn"], diff --git a/botocore/data/pinpoint/2016-12-01/service-2.json b/botocore/data/pinpoint/2016-12-01/service-2.json index 94f9c861..66504c8c 100644 --- a/botocore/data/pinpoint/2016-12-01/service-2.json +++ b/botocore/data/pinpoint/2016-12-01/service-2.json @@ -35,6 +35,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -77,6 +81,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -157,6 +165,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -199,6 +211,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -241,6 +257,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -298,6 +318,52 @@ ], "documentation": "

Creates a message template for messages that are sent through a push notification channel.

" }, + "CreateRecommenderConfiguration": { + "name": "CreateRecommenderConfiguration", + "http": { + "method": "POST", + "requestUri": "/v1/recommenders", + "responseCode": 201 + }, + "input": { + "shape": "CreateRecommenderConfigurationRequest" + }, + "output": { + "shape": "CreateRecommenderConfigurationResponse", + "documentation": "

The request succeeded and the specified resource was created.

" + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "

The request contains a syntax error (BadRequestException).

" + }, + { + "shape": "InternalServerErrorException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" + }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, + { + "shape": "ForbiddenException", + "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" + }, + { + "shape": "NotFoundException", + "documentation": "

The request failed because the specified resource was not found (NotFoundException).

" + }, + { + "shape": "MethodNotAllowedException", + "documentation": "

The request failed because the method is not allowed for the specified resource (MethodNotAllowedException).

" + }, + { + "shape": "TooManyRequestsException", + "documentation": "

The request failed because too many requests were sent during a certain amount of time (TooManyRequestsException).

" + } + ], + "documentation": "

Creates an Amazon Pinpoint configuration for a recommender model.

" + }, "CreateSegment": { "name": "CreateSegment", "http": { @@ -321,6 +387,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -439,6 +509,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -481,6 +555,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -523,6 +601,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -565,6 +647,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -607,6 +693,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -649,6 +739,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -691,6 +785,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -733,6 +831,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -775,6 +877,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -817,6 +923,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -859,6 +969,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -901,6 +1015,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -943,6 +1061,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -985,6 +1107,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1027,6 +1153,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1046,6 +1176,52 @@ ], "documentation": "

Deletes a message template for messages that were sent through a push notification channel.

" }, + "DeleteRecommenderConfiguration": { + "name": "DeleteRecommenderConfiguration", + "http": { + "method": "DELETE", + "requestUri": "/v1/recommenders/{recommender-id}", + "responseCode": 200 + }, + "input": { + "shape": "DeleteRecommenderConfigurationRequest" + }, + "output": { + "shape": "DeleteRecommenderConfigurationResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "

The request contains a syntax error (BadRequestException).

" + }, + { + "shape": "InternalServerErrorException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" + }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, + { + "shape": "ForbiddenException", + "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" + }, + { + "shape": "NotFoundException", + "documentation": "

The request failed because the specified resource was not found (NotFoundException).

" + }, + { + "shape": "MethodNotAllowedException", + "documentation": "

The request failed because the method is not allowed for the specified resource (MethodNotAllowedException).

" + }, + { + "shape": "TooManyRequestsException", + "documentation": "

The request failed because too many requests were sent during a certain amount of time (TooManyRequestsException).

" + } + ], + "documentation": "

Deletes an Amazon Pinpoint configuration for a recommender model.

" + }, "DeleteSegment": { "name": "DeleteSegment", "http": { @@ -1069,6 +1245,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1111,6 +1291,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1153,6 +1337,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1195,6 +1383,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1237,6 +1429,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1279,6 +1475,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1321,6 +1521,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1363,6 +1567,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1405,6 +1613,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1447,6 +1659,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1489,6 +1705,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1531,6 +1751,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1573,6 +1797,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1615,6 +1843,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1657,6 +1889,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1699,6 +1935,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1741,6 +1981,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1783,6 +2027,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1825,6 +2073,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1867,6 +2119,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1909,6 +2165,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1951,6 +2211,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -1993,6 +2257,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2035,6 +2303,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2077,6 +2349,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2119,6 +2395,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2161,6 +2441,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2203,6 +2487,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2245,6 +2533,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2287,6 +2579,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2329,6 +2625,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2371,6 +2671,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2413,6 +2717,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2455,6 +2763,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2497,6 +2809,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2539,6 +2855,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2581,6 +2901,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2600,6 +2924,98 @@ ], "documentation": "

Retrieves the content and settings of a message template for messages that are sent through a push notification channel.

" }, + "GetRecommenderConfiguration": { + "name": "GetRecommenderConfiguration", + "http": { + "method": "GET", + "requestUri": "/v1/recommenders/{recommender-id}", + "responseCode": 200 + }, + "input": { + "shape": "GetRecommenderConfigurationRequest" + }, + "output": { + "shape": "GetRecommenderConfigurationResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "

The request contains a syntax error (BadRequestException).

" + }, + { + "shape": "InternalServerErrorException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" + }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, + { + "shape": "ForbiddenException", + "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" + }, + { + "shape": "NotFoundException", + "documentation": "

The request failed because the specified resource was not found (NotFoundException).

" + }, + { + "shape": "MethodNotAllowedException", + "documentation": "

The request failed because the method is not allowed for the specified resource (MethodNotAllowedException).

" + }, + { + "shape": "TooManyRequestsException", + "documentation": "

The request failed because too many requests were sent during a certain amount of time (TooManyRequestsException).

" + } + ], + "documentation": "

Retrieves information about an Amazon Pinpoint configuration for a recommender model.

" + }, + "GetRecommenderConfigurations": { + "name": "GetRecommenderConfigurations", + "http": { + "method": "GET", + "requestUri": "/v1/recommenders", + "responseCode": 200 + }, + "input": { + "shape": "GetRecommenderConfigurationsRequest" + }, + "output": { + "shape": "GetRecommenderConfigurationsResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "

The request contains a syntax error (BadRequestException).

" + }, + { + "shape": "InternalServerErrorException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" + }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, + { + "shape": "ForbiddenException", + "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" + }, + { + "shape": "NotFoundException", + "documentation": "

The request failed because the specified resource was not found (NotFoundException).

" + }, + { + "shape": "MethodNotAllowedException", + "documentation": "

The request failed because the method is not allowed for the specified resource (MethodNotAllowedException).

" + }, + { + "shape": "TooManyRequestsException", + "documentation": "

The request failed because too many requests were sent during a certain amount of time (TooManyRequestsException).

" + } + ], + "documentation": "

Retrieves information about all the recommender model configurations that are associated with your Amazon Pinpoint account.

" + }, "GetSegment": { "name": "GetSegment", "http": { @@ -2623,6 +3039,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2665,6 +3085,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2707,6 +3131,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2749,6 +3177,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2791,6 +3223,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2833,6 +3269,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2875,6 +3315,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2917,6 +3361,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -2959,6 +3407,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3001,6 +3453,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3043,6 +3499,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3085,6 +3545,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3119,7 +3583,7 @@ "documentation": "

The request succeeded.

" }, "errors": [], - "documentation": "

Retrieves all the tags (keys and values) that are associated with an application, campaign, journey, message template, or segment.

" + "documentation": "

Retrieves all the tags (keys and values) that are associated with an application, campaign, message template, or segment.

" }, "ListTemplateVersions": { "name": "ListTemplateVersions", @@ -3144,6 +3608,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3224,6 +3692,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3266,6 +3738,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3308,6 +3784,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3350,6 +3830,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3392,6 +3876,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3434,6 +3922,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3464,7 +3956,7 @@ "shape": "TagResourceRequest" }, "errors": [], - "documentation": "

Adds one or more tags (keys and values) to an application, campaign, journey, message template, or segment.

" + "documentation": "

Adds one or more tags (keys and values) to an application, campaign, message template, or segment.

" }, "UntagResource": { "name": "UntagResource", @@ -3477,7 +3969,7 @@ "shape": "UntagResourceRequest" }, "errors": [], - "documentation": "

Removes one or more tags (keys and values) from an application, campaign, journey, message template, or segment.

" + "documentation": "

Removes one or more tags (keys and values) from an application, campaign, message template, or segment.

" }, "UpdateAdmChannel": { "name": "UpdateAdmChannel", @@ -3502,6 +3994,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3544,6 +4040,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3586,6 +4086,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3628,6 +4132,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3670,6 +4178,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3712,6 +4224,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3754,6 +4270,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3796,6 +4316,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3838,6 +4362,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3880,6 +4408,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3922,6 +4454,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -3964,6 +4500,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4006,6 +4546,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4048,6 +4592,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4090,6 +4638,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4132,6 +4684,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4151,6 +4707,52 @@ ], "documentation": "

Updates an existing message template for messages that are sent through a push notification channel.

" }, + "UpdateRecommenderConfiguration": { + "name": "UpdateRecommenderConfiguration", + "http": { + "method": "PUT", + "requestUri": "/v1/recommenders/{recommender-id}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateRecommenderConfigurationRequest" + }, + "output": { + "shape": "UpdateRecommenderConfigurationResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "

The request contains a syntax error (BadRequestException).

" + }, + { + "shape": "InternalServerErrorException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" + }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, + { + "shape": "ForbiddenException", + "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" + }, + { + "shape": "NotFoundException", + "documentation": "

The request failed because the specified resource was not found (NotFoundException).

" + }, + { + "shape": "MethodNotAllowedException", + "documentation": "

The request failed because the method is not allowed for the specified resource (MethodNotAllowedException).

" + }, + { + "shape": "TooManyRequestsException", + "documentation": "

The request failed because too many requests were sent during a certain amount of time (TooManyRequestsException).

" + } + ], + "documentation": "

Updates an Amazon Pinpoint configuration for a recommender model.

" + }, "UpdateSegment": { "name": "UpdateSegment", "http": { @@ -4174,6 +4776,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4216,6 +4822,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4258,6 +4868,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4300,6 +4914,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4342,6 +4960,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -4384,6 +5006,10 @@ "shape": "InternalServerErrorException", "documentation": "

The request failed due to an unknown internal server error, exception, or failure (InternalServerErrorException).

" }, + { + "shape": "PayloadTooLargeException", + "documentation": "

The request failed because the payload for the body of the request is too large (RequestEntityTooLargeException).

" + }, { "shape": "ForbiddenException", "documentation": "

The request was denied because access to the specified resource is forbidden (ForbiddenException).

" @@ -5173,7 +5799,7 @@ }, "Context": { "shape": "MapOf__string", - "documentation": "

An object that maps custom attributes to attributes for the address and is attached to the message. For a push notification, this payload is added to the data.pinpoint object. For an email or text message, this payload is added to email/SMS delivery receipt event attributes.

" + "documentation": "

An object that maps custom attributes to attributes for the address and is attached to the message. Attribute names are case sensitive.

For a push notification, this payload is added to the data.pinpoint object. For an email or text message, this payload is added to email/SMS delivery receipt event attributes.

" }, "RawContent": { "shape": "__string", @@ -5227,7 +5853,7 @@ }, "Url": { "shape": "__string", - "documentation": "

The URL to open in a recipient's default mobile browser, if a recipient taps a a push notification that's based on the message template and the value of the Action property is URL.

" + "documentation": "

The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the Action property is URL.

" } }, "documentation": "

Specifies channel-specific content and settings for a message template that can be used in push notifications that are sent through the ADM (Amazon Device Messaging), Baidu (Baidu Cloud Push), or GCM (Firebase Cloud Messaging, formerly Google Cloud Messaging) channel.

" @@ -5617,10 +6243,7 @@ "documentation": "

The subject line, or title, of the email.

" } }, - "documentation": "

Specifies the content and \"From\" address for an email message that's sent to recipients of a campaign.

", - "required": [ - "Title" - ] + "documentation": "

Specifies the content and \"From\" address for an email message that's sent to recipients of a campaign.

" }, "CampaignEventFilter": { "type": "structure", @@ -6179,6 +6802,76 @@ ], "payload": "CreateTemplateMessageBody" }, + "CreateRecommenderConfiguration": { + "type": "structure", + "members": { + "Attributes": { + "shape": "MapOf__string", + "documentation": "

A map of key-value pairs that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommenderUserIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template.

In the map, the key is the name of a custom attribute and the value is a custom display name for that attribute. The display name appears in the Attribute finder pane of the template editor on the Amazon Pinpoint console. The following restrictions apply to these names:

  • An attribute name must start with a letter or number and it can contain up to 50 characters. The characters can be letters, numbers, underscores (_), or hyphens (-). Attribute names are case sensitive and must be unique.

  • An attribute display name must start with a letter or number and it can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).

This object is required if the configuration invokes an AWS Lambda function (LambdaFunctionArn) to process recommendation data. Otherwise, don't include this object in your request.

" + }, + "Description": { + "shape": "__string", + "documentation": "

A custom description of the configuration for the recommender model. The description can contain up to 128 characters.

" + }, + "Name": { + "shape": "__string", + "documentation": "

A custom name of the configuration for the recommender model. The name must start with a letter or number and it can contain up to 128 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).

" + }, + "RecommendationProviderIdType": { + "shape": "__string", + "documentation": "

The type of Amazon Pinpoint ID to associate with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Valid values are:

  • PINPOINT_ENDPOINT_ID - Associate each user in the model with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.

  • PINPOINT_USER_ID - Associate each user in the model with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If you specify this value, an endpoint definition in Amazon Pinpoint has to specify a both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.

" + }, + "RecommendationProviderRoleArn": { + "shape": "__string", + "documentation": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.

" + }, + "RecommendationProviderUri": { + "shape": "__string", + "documentation": "

The Amazon Resource Name (ARN) of the recommender model to retrieve recommendation data from. This value must match the ARN of an Amazon Personalize campaign.

" + }, + "RecommendationTransformerUri": { + "shape": "__string", + "documentation": "

The name or Amazon Resource Name (ARN) of the AWS Lambda function to invoke for additional processing of recommendation data that's retrieved from the recommender model.

" + }, + "RecommendationsDisplayName": { + "shape": "__string", + "documentation": "

A custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores a recommended item for each endpoint or user, depending on the value for the RecommenderUserIdType property. This value is required if the configuration doesn't invoke an AWS Lambda function (LambdaFunctionArn) to perform additional processing of recommendation data.

This name appears in the Attribute finder pane of the template editor on the Amazon Pinpoint console. The name can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-). These restrictions don't apply to attribute values.

" + }, + "RecommendationsPerMessage": { + "shape": "__integer", + "documentation": "

The number of recommended items to retrieve from the model for each endpoint or user, depending on the value for the RecommenderUserIdType property. This number determines how many recommended attributes are available for use as message variables in message templates. The minimum value is 1. The maximum value is 5. The default value is 5.

To use multiple recommended items and custom attributes with message variables, you have to use an AWS Lambda function (LambdaFunctionArn) to perform additional processing of recommendation data.

" + } + }, + "documentation": "

Specifies Amazon Pinpoint configuration settings for retrieving and processing recommendation data from a recommender model.

", + "required": [ + "RecommendationProviderUri", + "RecommendationProviderRoleArn" + ] + }, + "CreateRecommenderConfigurationRequest": { + "type": "structure", + "members": { + "CreateRecommenderConfiguration": { + "shape": "CreateRecommenderConfiguration" + } + }, + "required": [ + "CreateRecommenderConfiguration" + ], + "payload": "CreateRecommenderConfiguration" + }, + "CreateRecommenderConfigurationResponse": { + "type": "structure", + "members": { + "RecommenderConfigurationResponse": { + "shape": "RecommenderConfigurationResponse" + } + }, + "required": [ + "RecommenderConfigurationResponse" + ], + "payload": "RecommenderConfigurationResponse" + }, "CreateSegmentRequest": { "type": "structure", "members": { @@ -6618,7 +7311,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -6768,7 +7461,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -6787,6 +7480,32 @@ ], "payload": "MessageBody" }, + "DeleteRecommenderConfigurationRequest": { + "type": "structure", + "members": { + "RecommenderId": { + "shape": "__string", + "location": "uri", + "locationName": "recommender-id", + "documentation": "

The unique identifier for the recommender model configuration. This identifier is displayed as the Recommender ID on the Amazon Pinpoint console.

" + } + }, + "required": [ + "RecommenderId" + ] + }, + "DeleteRecommenderConfigurationResponse": { + "type": "structure", + "members": { + "RecommenderConfigurationResponse": { + "shape": "RecommenderConfigurationResponse" + } + }, + "required": [ + "RecommenderConfigurationResponse" + ], + "payload": "RecommenderConfigurationResponse" + }, "DeleteSegmentRequest": { "type": "structure", "members": { @@ -6859,7 +7578,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -6950,7 +7669,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -7189,7 +7908,7 @@ }, "TemplateVersion": { "shape": "__string", - "documentation": "

The unique identifier for the version of the email template to use for the message. If specified, this value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.

If you don't specify a value for this property, Amazon Pinpoint uses the active version of the template. The active version is typically the version of a template that's been most recently reviewed and approved for use, depending on your workflow. It isn't necessarily the latest version of a template.

" + "documentation": "

The unique identifier for the version of the email template to use for the message. If specified, this value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.

If you don't specify a value for this property, Amazon Pinpoint uses the active version of the template. The active version is typically the version of a template that's been most recently reviewed and approved for use, depending on your workflow. It isn't necessarily the latest version of a template.

" } }, "documentation": "

Specifies the settings for an email activity in a journey. This type of activity sends an email message to participants.

" @@ -7205,6 +7924,10 @@ "shape": "__string", "documentation": "

The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message.

" }, + "RecommenderId": { + "shape": "__string", + "documentation": "

The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.

" + }, "Subject": { "shape": "__string", "documentation": "

The subject line, or title, to use in email messages that are based on the message template.

" @@ -7248,6 +7971,10 @@ "shape": "__string", "documentation": "

The date, in ISO 8601 format, when the message template was last modified.

" }, + "RecommenderId": { + "shape": "__string", + "documentation": "

The unique identifier for the recommender model that's used by the message template.

" + }, "Subject": { "shape": "__string", "documentation": "

The subject line, or title, that's used in email messages that are based on the message template.

" @@ -7295,7 +8022,7 @@ }, "Attributes": { "shape": "MapOfListOf__string", - "documentation": "

One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: [\"science\", \"music\", \"travel\"]. You can use these attributes as filter criteria when you create segments.

When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This limitation doesn't apply to attribute values.

" + "documentation": "

One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: [\"Science\", \"Music\", \"Travel\"]. You can use these attributes as filter criteria when you create segments. Attribute names are case sensitive.

An attribute name can contain up to 50 characters. An attribute value can contain up to 100 characters. When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This restriction doesn't apply to attribute values.

" }, "ChannelType": { "shape": "ChannelType", @@ -7335,7 +8062,7 @@ }, "User": { "shape": "EndpointUser", - "documentation": "

One or more custom user attributes that your app reports to Amazon Pinpoint for the user who's associated with the endpoint.

" + "documentation": "

One or more custom user attributes that describe the user who's associated with the endpoint.

" } }, "documentation": "

Specifies an endpoint to create or update and the settings and attributes to set or change for the endpoint.

" @@ -7444,7 +8171,7 @@ }, "DeliveryStatus": { "shape": "DeliveryStatus", - "documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint will attempt to deliver the message again later.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint.

  • TIMEOUT - The message couldn't be sent within the timeout period.

  • UNKNOWN_FAILURE - An unknown error occurred.

" + "documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint.

  • TIMEOUT - The message couldn't be sent within the timeout period.

  • UNKNOWN_FAILURE - An unknown error occurred.

" }, "MessageId": { "shape": "__string", @@ -7478,7 +8205,7 @@ }, "Attributes": { "shape": "MapOfListOf__string", - "documentation": "

One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: [\"science\", \"music\", \"travel\"]. You can use these attributes as filter criteria when you create segments.

When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This limitation doesn't apply to attribute values.

" + "documentation": "

One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: [\"Science\", \"Music\", \"Travel\"]. You can use these attributes as filter criteria when you create segments. Attribute names are case sensitive.

An attribute name can contain up to 50 characters. An attribute value can contain up to 100 characters. When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This restriction doesn't apply to attribute values.

" }, "ChannelType": { "shape": "ChannelType", @@ -7532,7 +8259,7 @@ }, "Attributes": { "shape": "MapOfListOf__string", - "documentation": "

One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: [\"science\", \"music\", \"travel\"]. You can use these attributes as filter criteria when you create segments.

" + "documentation": "

One or more custom attributes that describe the endpoint by associating a name with an array of values. For example, the value of a custom attribute named Interests might be: [\"Science\", \"Music\", \"Travel\"]. You can use these attributes as filter criteria when you create segments.

" }, "ChannelType": { "shape": "ChannelType", @@ -7594,7 +8321,7 @@ }, "Context": { "shape": "MapOf__string", - "documentation": "

A map of custom attributes to attach to the message for the address. For a push notification, this payload is added to the data.pinpoint object. For an email or text message, this payload is added to email/SMS delivery receipt event attributes.

" + "documentation": "

A map of custom attributes to attach to the message for the address. Attribute names are case sensitive.

For a push notification, this payload is added to the data.pinpoint object. For an email or text message, this payload is added to email/SMS delivery receipt event attributes.

" }, "RawContent": { "shape": "__string", @@ -7616,7 +8343,7 @@ "members": { "UserAttributes": { "shape": "MapOfListOf__string", - "documentation": "

One or more custom attributes that describe the user by associating a name with an array of values. For example, the value of an attribute named Interests might be: [\"science\", \"music\", \"travel\"]. You can use these attributes as filter criteria when you create segments.

When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This limitation doesn't apply to attribute values.

" + "documentation": "

One or more custom attributes that describe the user by associating a name with an array of values. For example, the value of an attribute named Interests might be: [\"Science\", \"Music\", \"Travel\"]. You can use these attributes as filter criteria when you create segments. Attribute names are case sensitive.

An attribute name can contain up to 50 characters. An attribute value can contain up to 100 characters. When you define the name of a custom attribute, avoid using the following characters: number sign (#), colon (:), question mark (?), backslash (\\), and slash (/). The Amazon Pinpoint console can't display attribute names that contain these characters. This restriction doesn't apply to attribute values.

" }, "UserId": { "shape": "__string", @@ -7714,7 +8441,7 @@ }, "EventType": { "shape": "SetDimension", - "documentation": "

The name of the event that causes the campaign to be sent or the journey activity to be performed. This can be a standard type of event that Amazon Pinpoint generates, such as _email.delivered, or a custom event that's specific to your application.

" + "documentation": "

The name of the event that causes the campaign to be sent or the journey activity to be performed. This can be a standard event that Amazon Pinpoint generates, such as _email.delivered. For campaigns, this can also be a custom event that's specific to your application. For information about standard events, see Streaming Amazon Pinpoint Events in the Amazon Pinpoint Developer Guide.

" }, "Metrics": { "shape": "MapOfMetricDimension", @@ -8795,7 +9522,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -9054,7 +9781,7 @@ "shape": "__timestampIso8601", "location": "querystring", "locationName": "end-time", - "documentation": "

The last date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format, for example: 2019-07-19T00:00:00Z for July 19, 2019 and 2019-07-19T20:00:00Z for 8:00 PM July 19, 2019.

" + "documentation": "

The last date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-26T20:00:00Z for 8:00 PM UTC July 26, 2019.

" }, "JourneyId": { "shape": "__string", @@ -9084,7 +9811,7 @@ "shape": "__timestampIso8601", "location": "querystring", "locationName": "start-time", - "documentation": "

The first date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format, for example: 2019-07-15T00:00:00Z for July 15, 2019 and 2019-07-15T16:00:00Z for 4:00 PM July 15, 2019.

" + "documentation": "

The first date and time to retrieve data for, as part of an inclusive date range that filters the query results. This value should be in extended ISO 8601 format and use Coordinated Universal Time (UTC), for example: 2019-07-19T20:00:00Z for 8:00 PM UTC July 19, 2019. This value should also be fewer than 90 days from the current day.

" } }, "required": [ @@ -9248,7 +9975,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -9267,6 +9994,61 @@ ], "payload": "PushNotificationTemplateResponse" }, + "GetRecommenderConfigurationRequest": { + "type": "structure", + "members": { + "RecommenderId": { + "shape": "__string", + "location": "uri", + "locationName": "recommender-id", + "documentation": "

The unique identifier for the recommender model configuration. This identifier is displayed as the Recommender ID on the Amazon Pinpoint console.

" + } + }, + "required": [ + "RecommenderId" + ] + }, + "GetRecommenderConfigurationResponse": { + "type": "structure", + "members": { + "RecommenderConfigurationResponse": { + "shape": "RecommenderConfigurationResponse" + } + }, + "required": [ + "RecommenderConfigurationResponse" + ], + "payload": "RecommenderConfigurationResponse" + }, + "GetRecommenderConfigurationsRequest": { + "type": "structure", + "members": { + "PageSize": { + "shape": "__string", + "location": "querystring", + "locationName": "page-size", + "documentation": "

The maximum number of items to include in each page of a paginated response. This parameter is currently not supported for application, campaign, and journey metrics.

" + }, + "Token": { + "shape": "__string", + "location": "querystring", + "locationName": "token", + "documentation": "

The NextToken string that specifies which page of results to return in a paginated response.

" + } + } + }, + "GetRecommenderConfigurationsResponse": { + "type": "structure", + "members": { + "ListRecommenderConfigurationsResponse": { + "shape": "ListRecommenderConfigurationsResponse" + } + }, + "required": [ + "ListRecommenderConfigurationsResponse" + ], + "payload": "ListRecommenderConfigurationsResponse" + }, "GetSegmentExportJobsRequest": { "type": "structure", "members": { @@ -9552,7 +10334,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -9643,7 +10425,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -9712,7 +10494,7 @@ }, "SegmentName": { "shape": "__string", - "documentation": "

The custom name for the segment that's created by the import job, if the value of the DefineSegment property is true.

" + "documentation": "

A custom name for the segment that's created by the import job, if the value of the DefineSegment property is true.

" } }, "documentation": "

Specifies the settings for a job that imports endpoint definitions from an Amazon Simple Storage Service (Amazon S3) bucket.

", @@ -10100,7 +10882,7 @@ "tags": { "shape": "MapOf__string", "locationName": "tags", - "documentation": "

A string-to-string map of key-value pairs that identifies the tags that are associated with the journey. Each tag consists of a required tag key and an associated tag value.

" + "documentation": "

This object is not used or supported.

" } }, "documentation": "

Provides information about the status, configuration, and other settings for a journey.

", @@ -10193,6 +10975,23 @@ ], "payload": "JourneysResponse" }, + "ListRecommenderConfigurationsResponse": { + "type": "structure", + "members": { + "Item": { + "shape": "ListOfRecommenderConfigurationResponse", + "documentation": "

An array of responses, one for each recommender model configuration that's associated with your Amazon Pinpoint account.

" + }, + "NextToken": { + "shape": "__string", + "documentation": "

The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.

" + } + }, + "documentation": "

Provides information about all the recommender model configurations that are associated with your Amazon Pinpoint account.

", + "required": [ + "Item" + ] + }, "ListTagsForResourceRequest": { "type": "structure", "members": { @@ -10470,7 +11269,7 @@ "members": { "DeliveryStatus": { "shape": "DeliveryStatus", - "documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint address has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint address.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint will attempt to deliver the message again later.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint address.

  • TIMEOUT - The message couldn't be sent within the timeout period.

  • UNKNOWN_FAILURE - An unknown error occurred.

" + "documentation": "

The delivery status of the message. Possible values are:

  • DUPLICATE - The endpoint address is a duplicate of another endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • OPT_OUT - The user who's associated with the endpoint address has opted out of receiving messages from you. Amazon Pinpoint won't attempt to send the message again.

  • PERMANENT_FAILURE - An error occurred when delivering the message to the endpoint address. Amazon Pinpoint won't attempt to send the message again.

  • SUCCESSFUL - The message was successfully delivered to the endpoint address.

  • TEMPORARY_FAILURE - A temporary error occurred. Amazon Pinpoint won't attempt to send the message again.

  • THROTTLED - Amazon Pinpoint throttled the operation to send the message to the endpoint address.

  • TIMEOUT - The message couldn't be sent within the timeout period.

  • UNKNOWN_FAILURE - An unknown error occurred.

" }, "MessageId": { "shape": "__string", @@ -10678,6 +11477,24 @@ "ANY" ] }, + "PayloadTooLargeException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string", + "documentation": "

The message that's returned from the API.

" + }, + "RequestID": { + "shape": "__string", + "documentation": "

The unique identifier for the request or response.

" + } + }, + "documentation": "

Provides information about an API request or response.

", + "exception": true, + "error": { + "httpStatusCode": 413 + } + }, "PhoneNumberValidateRequest": { "type": "structure", "members": { @@ -10779,6 +11596,10 @@ "shape": "AndroidPushNotificationTemplate", "documentation": "

The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service. This message template overrides the default template for push notification channels (DefaultPushNotificationTemplate).

" }, + "RecommenderId": { + "shape": "__string", + "documentation": "

The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.

" + }, "tags": { "shape": "MapOf__string", "locationName": "tags", @@ -10830,6 +11651,10 @@ "shape": "__string", "documentation": "

The date, in ISO 8601 format, when the message template was last modified.

" }, + "RecommenderId": { + "shape": "__string", + "documentation": "

The unique identifier for the recommender model that's used by the message template.

" + }, "tags": { "shape": "MapOf__string", "locationName": "tags", @@ -10998,6 +11823,67 @@ "INACTIVE" ] }, + "RecommenderConfigurationResponse": { + "type": "structure", + "members": { + "Attributes": { + "shape": "MapOf__string", + "documentation": "

A map that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommenderUserIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template.

This value is null if the configuration doesn't invoke an AWS Lambda function (LambdaFunctionArn) to perform additional processing of recommendation data.

" + }, + "CreationDate": { + "shape": "__string", + "documentation": "

The date, in extended ISO 8601 format, when the configuration was created for the recommender model.

" + }, + "Description": { + "shape": "__string", + "documentation": "

The custom description of the configuration for the recommender model.

" + }, + "Id": { + "shape": "__string", + "documentation": "

The unique identifier for the recommender model configuration.

" + }, + "LastModifiedDate": { + "shape": "__string", + "documentation": "

The date, in extended ISO 8601 format, when the configuration for the recommender model was last modified.

" + }, + "Name": { + "shape": "__string", + "documentation": "

The custom name of the configuration for the recommender model.

" + }, + "RecommendationProviderIdType": { + "shape": "__string", + "documentation": "

The type of Amazon Pinpoint ID that's associated with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Possible values are:

  • PINPOINT_ENDPOINT_ID - Each user in the model is associated with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.

  • PINPOINT_USER_ID - Each user in the model is associated with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If this value is specified, an endpoint definition in Amazon Pinpoint has to specify both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.

" + }, + "RecommendationProviderRoleArn": { + "shape": "__string", + "documentation": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.

" + }, + "RecommendationProviderUri": { + "shape": "__string", + "documentation": "

The Amazon Resource Name (ARN) of the recommender model that Amazon Pinpoint retrieves the recommendation data from. This value is the ARN of an Amazon Personalize campaign.

" + }, + "RecommendationTransformerUri": { + "shape": "__string", + "documentation": "

The name or Amazon Resource Name (ARN) of the AWS Lambda function that Amazon Pinpoint invokes to perform additional processing of recommendation data that it retrieves from the recommender model.

" + }, + "RecommendationsDisplayName": { + "shape": "__string", + "documentation": "

The custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores a recommended item for each endpoint or user, depending on the value for the RecommenderUserIdType property. This name appears in the Attribute finder pane of the template editor on the Amazon Pinpoint console.

This value is null if the configuration doesn't invoke an AWS Lambda function (LambdaFunctionArn) to perform additional processing of recommendation data.

" + }, + "RecommendationsPerMessage": { + "shape": "__integer", + "documentation": "

The number of recommended items that are retrieved from the model for each endpoint or user, depending on the value for the RecommenderUserIdType property. This number determines how many recommended attributes are available for use as message variables in message templates.

" + } + }, + "documentation": "

Provides information about Amazon Pinpoint configuration settings for retrieving and processing data from a recommender model.

", + "required": [ + "RecommendationProviderUri", + "LastModifiedDate", + "CreationDate", + "RecommendationProviderRoleArn", + "Id" + ] + }, "RemoveAttributesRequest": { "type": "structure", "members": { @@ -11201,6 +12087,10 @@ "shape": "__string", "documentation": "

A JSON object that specifies the default values to use for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.

" }, + "RecommenderId": { + "shape": "__string", + "documentation": "

The unique identifier for the recommender model to use for the message template. Amazon Pinpoint uses this value to determine how to retrieve and process data from a recommender model when it sends messages that use the template, if the template contains message variables for recommendation data.

" + }, "tags": { "shape": "MapOf__string", "locationName": "tags", @@ -11236,6 +12126,10 @@ "shape": "__string", "documentation": "

The date, in ISO 8601 format, when the message template was last modified.

" }, + "RecommenderId": { + "shape": "__string", + "documentation": "

The unique identifier for the recommender model that's used by the message template.

" + }, "tags": { "shape": "MapOf__string", "locationName": "tags", @@ -11291,7 +12185,7 @@ }, "StartTime": { "shape": "__string", - "documentation": "

The scheduled time, in ISO 8601 format, when the campaign began or will begin.

" + "documentation": "

The scheduled time when the campaign began or will begin. Valid values are: IMMEDIATE, to start the campaign immediately; or, a specific time in ISO 8601 format.

" }, "Timezone": { "shape": "__string", @@ -11840,10 +12734,10 @@ "tags": { "shape": "MapOf__string", "locationName": "tags", - "documentation": "

A string-to-string map of key-value pairs that defines the tags for an application, campaign, journey, message template, or segment. Each of these resources can have a maximum of 50 tags.

Each tag consists of a required tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.

" + "documentation": "

A string-to-string map of key-value pairs that defines the tags for an application, campaign, message template, or segment. Each of these resources can have a maximum of 50 tags.

Each tag consists of a required tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.

" } }, - "documentation": "

Specifies the tags (keys and values) for an application, campaign, journey, message template, or segment.

", + "documentation": "

Specifies the tags (keys and values) for an application, campaign, message template, or segment.

", "required": [ "tags" ] @@ -11857,7 +12751,7 @@ }, "Version": { "shape": "__string", - "documentation": "

The unique identifier for the version of the message template to use for the message. If specified, this value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.

If you don't specify a value for this property, Amazon Pinpoint uses the active version of the template. The active version is typically the version of a template that's been most recently reviewed and approved for use, depending on your workflow. It isn't necessarily the latest version of a template.

" + "documentation": "

The unique identifier for the version of the message template to use for the message. If specified, this value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.

If you don't specify a value for this property, Amazon Pinpoint uses the active version of the template. The active version is typically the version of a template that's been most recently reviewed and approved for use, depending on your workflow. It isn't necessarily the latest version of a template.

" } }, "documentation": "

Specifies the name and version of the message template to use for the message.

" @@ -11867,7 +12761,7 @@ "members": { "Version": { "shape": "__string", - "documentation": "

The unique identifier for the version of the message template to use as the active version of the template. If specified, this value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.

" + "documentation": "

The version of the message template to use as the active version of the template. Valid values are: latest, for the most recent version of the template; or, the unique identifier for any existing version of the template. If you specify an identifier, the value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.

" } }, "documentation": "

Specifies which version of a message template to use as the active version of the template.

" @@ -11889,7 +12783,7 @@ }, "VoiceTemplate": { "shape": "Template", - "documentation": "

The voice template to use for the message.

" + "documentation": "

The voice template to use for the message. This object isn't supported for campaigns.

" } }, "documentation": "

Specifies the message template to use for the message, for each type of channel.

" @@ -11899,7 +12793,7 @@ "members": { "Arn": { "shape": "__string", - "documentation": "

The Amazon Resource Name (ARN) of the message template.

" + "documentation": "

The Amazon Resource Name (ARN) of the message template. This value isn't included in a TemplateResponse object. To retrieve the ARN of a template, use the GetEmailTemplate, GetPushTemplate, GetSmsTemplate, or GetVoiceTemplate operation, depending on the type of template that you want to retrieve the ARN for.

" }, "CreationDate": { "shape": "__string", @@ -11907,7 +12801,7 @@ }, "DefaultSubstitutions": { "shape": "__string", - "documentation": "

The JSON object that specifies the default values that are used for message variables in the message template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable.

" + "documentation": "

The JSON object that specifies the default values that are used for message variables in the message template. This object isn't included in a TemplateResponse object. To retrieve this object for a template, use the GetEmailTemplate, GetPushTemplate, GetSmsTemplate, or GetVoiceTemplate operation, depending on the type of template that you want to retrieve the object for.

" }, "LastModifiedDate": { "shape": "__string", @@ -11916,11 +12810,11 @@ "tags": { "shape": "MapOf__string", "locationName": "tags", - "documentation": "

A string-to-string map of key-value pairs that identifies the tags that are associated with the message template. Each tag consists of a required tag key and an associated tag value.

" + "documentation": "

A map of key-value pairs that identifies the tags that are associated with the message template. This object isn't included in a TemplateResponse object. To retrieve this object for a template, use the GetEmailTemplate, GetPushTemplate, GetSmsTemplate, or GetVoiceTemplate operation, depending on the type of template that you want to retrieve the object for.

" }, "TemplateDescription": { "shape": "__string", - "documentation": "

The custom description of the message template.

" + "documentation": "

The custom description of the message template. This value isn't included in a TemplateResponse object. To retrieve the description of a template, use the GetEmailTemplate, GetPushTemplate, GetSmsTemplate, or GetVoiceTemplate operation, depending on the type of template that you want to retrieve the description for.

" }, "TemplateName": { "shape": "__string", @@ -12426,7 +13320,7 @@ "shape": "__boolean", "location": "querystring", "locationName": "create-new-version", - "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" + "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" }, "EmailTemplateRequest": { "shape": "EmailTemplateRequest" @@ -12441,7 +13335,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -12645,7 +13539,7 @@ "shape": "__boolean", "location": "querystring", "locationName": "create-new-version", - "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" + "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" }, "PushNotificationTemplateRequest": { "shape": "PushNotificationTemplateRequest" @@ -12660,7 +13554,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -12681,6 +13575,83 @@ ], "payload": "MessageBody" }, + "UpdateRecommenderConfiguration": { + "type": "structure", + "members": { + "Attributes": { + "shape": "MapOf__string", + "documentation": "

A map of key-value pairs that defines 1-10 custom endpoint or user attributes, depending on the value for the RecommenderUserIdType property. Each of these attributes temporarily stores a recommended item that's retrieved from the recommender model and sent to an AWS Lambda function for additional processing. Each attribute can be used as a message variable in a message template.

In the map, the key is the name of a custom attribute and the value is a custom display name for that attribute. The display name appears in the Attribute finder pane of the template editor on the Amazon Pinpoint console. The following restrictions apply to these names:

  • An attribute name must start with a letter or number and it can contain up to 50 characters. The characters can be letters, numbers, underscores (_), or hyphens (-). Attribute names are case sensitive and must be unique.

  • An attribute display name must start with a letter or number and it can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).

This object is required if the configuration invokes an AWS Lambda function (LambdaFunctionArn) to process recommendation data. Otherwise, don't include this object in your request.

" + }, + "Description": { + "shape": "__string", + "documentation": "

A custom description of the configuration for the recommender model. The description can contain up to 128 characters.

" + }, + "Name": { + "shape": "__string", + "documentation": "

A custom name of the configuration for the recommender model. The name must start with a letter or number and it can contain up to 128 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-).

" + }, + "RecommendationProviderIdType": { + "shape": "__string", + "documentation": "

The type of Amazon Pinpoint ID to associate with unique user IDs in the recommender model. This value enables the model to use attribute and event data that’s specific to a particular endpoint or user in an Amazon Pinpoint application. Valid values are:

  • PINPOINT_ENDPOINT_ID - Associate each user in the model with a particular endpoint in Amazon Pinpoint. The data is correlated based on endpoint IDs in Amazon Pinpoint. This is the default value.

  • PINPOINT_USER_ID - Associate each user in the model with a particular user and endpoint in Amazon Pinpoint. The data is correlated based on user IDs in Amazon Pinpoint. If you specify this value, an endpoint definition in Amazon Pinpoint has to specify a both a user ID (UserId) and an endpoint ID. Otherwise, messages won’t be sent to the user's endpoint.

" + }, + "RecommendationProviderRoleArn": { + "shape": "__string", + "documentation": "

The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to retrieve recommendation data from the recommender model.

" + }, + "RecommendationProviderUri": { + "shape": "__string", + "documentation": "

The Amazon Resource Name (ARN) of the recommender model to retrieve recommendation data from. This value must match the ARN of an Amazon Personalize campaign.

" + }, + "RecommendationTransformerUri": { + "shape": "__string", + "documentation": "

The name or Amazon Resource Name (ARN) of the AWS Lambda function to invoke for additional processing of recommendation data that's retrieved from the recommender model.

" + }, + "RecommendationsDisplayName": { + "shape": "__string", + "documentation": "

A custom display name for the standard endpoint or user attribute (RecommendationItems) that temporarily stores a recommended item for each endpoint or user, depending on the value for the RecommenderUserIdType property. This value is required if the configuration doesn't invoke an AWS Lambda function (LambdaFunctionArn) to perform additional processing of recommendation data.

This name appears in the Attribute finder pane of the template editor on the Amazon Pinpoint console. The name can contain up to 25 characters. The characters can be letters, numbers, spaces, underscores (_), or hyphens (-). These restrictions don't apply to attribute values.

" + }, + "RecommendationsPerMessage": { + "shape": "__integer", + "documentation": "

The number of recommended items to retrieve from the model for each endpoint or user, depending on the value for the RecommenderUserIdType property. This number determines how many recommended attributes are available for use as message variables in message templates. The minimum value is 1. The maximum value is 5. The default value is 5.

To use multiple recommended items and custom attributes with message variables, you have to use an AWS Lambda function (LambdaFunctionArn) to perform additional processing of recommendation data.

" + } + }, + "documentation": "

Specifies Amazon Pinpoint configuration settings for retrieving and processing recommendation data from a recommender model.

", + "required": [ + "RecommendationProviderUri", + "RecommendationProviderRoleArn" + ] + }, + "UpdateRecommenderConfigurationRequest": { + "type": "structure", + "members": { + "RecommenderId": { + "shape": "__string", + "location": "uri", + "locationName": "recommender-id", + "documentation": "

The unique identifier for the recommender model configuration. This identifier is displayed as the Recommender ID on the Amazon Pinpoint console.

" + }, + "UpdateRecommenderConfiguration": { + "shape": "UpdateRecommenderConfiguration" + } + }, + "required": [ + "RecommenderId", + "UpdateRecommenderConfiguration" + ], + "payload": "UpdateRecommenderConfiguration" + }, + "UpdateRecommenderConfigurationResponse": { + "type": "structure", + "members": { + "RecommenderConfigurationResponse": { + "shape": "RecommenderConfigurationResponse" + } + }, + "required": [ + "RecommenderConfigurationResponse" + ], + "payload": "RecommenderConfigurationResponse" + }, "UpdateSegmentRequest": { "type": "structure", "members": { @@ -12757,7 +13728,7 @@ "shape": "__boolean", "location": "querystring", "locationName": "create-new-version", - "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" + "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" }, "SMSTemplateRequest": { "shape": "SMSTemplateRequest" @@ -12772,7 +13743,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" } }, "required": [ @@ -12869,7 +13840,7 @@ "shape": "__boolean", "location": "querystring", "locationName": "create-new-version", - "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" + "documentation": "

Specifies whether to save the updates as a new version of the message template. Valid values are: true, save the updates as a new version; and, false, save the updates to (overwrite) the latest existing version of the template.

If you don't specify a value for this parameter, Amazon Pinpoint saves the updates to (overwrites) the latest existing version of the template. If you specify a value of true for this parameter, don't specify a value for the version parameter. Otherwise, an error will occur.

" }, "TemplateName": { "shape": "__string", @@ -12881,7 +13852,7 @@ "shape": "__string", "location": "querystring", "locationName": "version", - "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier of an existing template version. If specified for an update operation, this value must match the identifier of the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" + "documentation": "

The unique identifier for the version of the message template to update, retrieve information about, or delete. To retrieve identifiers and other information for all the versions of a template, use the Template Versions resource.

If specified, this value must match the identifier for an existing template version. If specified for an update operation, this value must match the identifier for the latest existing version of the template. This restriction helps ensure that race conditions don't occur.

If you don't specify a value for this parameter, Amazon Pinpoint does the following:

  • For a get operation, retrieves information about the active version of the template.

  • For an update operation, saves the updates to (overwrites) the latest existing version of the template, if the create-new-version parameter isn't used or is set to false.

  • For a delete operation, deletes the template, including all versions of the template.

" }, "VoiceTemplateRequest": { "shape": "VoiceTemplateRequest" @@ -13165,7 +14136,7 @@ }, "Name": { "shape": "__string", - "documentation": "

The custom name of the campaign.

" + "documentation": "

A custom name for the campaign.

" }, "Schedule": { "shape": "Schedule", @@ -13194,7 +14165,7 @@ }, "TreatmentName": { "shape": "__string", - "documentation": "

The custom name of a variation of the campaign to use for A/B testing.

" + "documentation": "

A custom name for a variation of the campaign to use for A/B testing.

" } }, "documentation": "

Specifies the configuration and other settings for a campaign.

" @@ -13222,7 +14193,7 @@ "members": { "Activities": { "shape": "MapOfActivity", - "documentation": "

A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity. An activity identifier can contain a maximum of 128 characters. The characters must be alphanumeric characters.

" + "documentation": "

A map that contains a set of Activity objects, one object for each activity in the journey. For each Activity object, the key is the unique identifier (string) for an activity and the value is the settings for the activity. An activity identifier can contain a maximum of 100 characters. The characters must be alphanumeric characters.

" }, "CreationDate": { "shape": "__string", @@ -13258,7 +14229,7 @@ }, "StartActivity": { "shape": "__string", - "documentation": "

The unique identifier for the first activity in the journey. An activity identifier can contain a maximum of 128 characters. The characters must be alphanumeric characters.

" + "documentation": "

The unique identifier for the first activity in the journey. The identifier for this activity can contain a maximum of 128 characters. The characters must be alphanumeric characters.

" }, "StartCondition": { "shape": "StartCondition", @@ -13322,7 +14293,7 @@ }, "TreatmentName": { "shape": "__string", - "documentation": "

The custom name of the treatment. A treatment is a variation of a campaign that's used for A/B testing of a campaign.

" + "documentation": "

A custom name for the treatment. A treatment is a variation of a campaign that's used for A/B testing of a campaign.

" } }, "documentation": "

Specifies the settings for a campaign treatment. A treatment is a variation of a campaign that's used for A/B testing of a campaign.

", @@ -13399,6 +14370,12 @@ "shape": "RandomSplitEntry" } }, + "ListOfRecommenderConfigurationResponse": { + "type": "list", + "member": { + "shape": "RecommenderConfigurationResponse" + } + }, "ListOfResultRow": { "type": "list", "member": { diff --git a/botocore/data/quicksight/2018-04-01/service-2.json b/botocore/data/quicksight/2018-04-01/service-2.json index 70dafbe3..c7fdcb20 100644 --- a/botocore/data/quicksight/2018-04-01/service-2.json +++ b/botocore/data/quicksight/2018-04-01/service-2.json @@ -930,6 +930,24 @@ ], "documentation":"

Creates an Amazon QuickSight user, whose identity is associated with the AWS Identity and Access Management (IAM) identity or role specified in the request.

" }, + "SearchDashboards":{ + "name":"SearchDashboards", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/search/dashboards" + }, + "input":{"shape":"SearchDashboardsRequest"}, + "output":{"shape":"SearchDashboardsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"UnsupportedUserEditionException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Searchs for dashboards that belong to a user.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -2337,6 +2355,10 @@ "COLUMN_REPLACEMENT_MISSING" ] }, + "DashboardFilterAttribute":{ + "type":"string", + "enum":["QUICKSIGHT_USER"] + }, "DashboardName":{ "type":"string", "max":2048, @@ -2361,6 +2383,30 @@ }, "documentation":"

Dashboard publish options.

" }, + "DashboardSearchFilter":{ + "type":"structure", + "required":["Operator"], + "members":{ + "Operator":{ + "shape":"FilterOperator", + "documentation":"

The comparison operator that you want to use as a filter. For example, \"Operator\": \"StringEquals\".

" + }, + "Name":{ + "shape":"DashboardFilterAttribute", + "documentation":"

The name of the value that you want to use as a filter. For example, \"Name\": \"QUICKSIGHT_USER\".

" + }, + "Value":{ + "shape":"String", + "documentation":"

The value of the named item, in this case QUICKSIGHT_USER, that you want to use as a filter. For example, \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\".

" + } + }, + "documentation":"

A filter that you apply when searching for dashboards.

" + }, + "DashboardSearchFilterList":{ + "type":"list", + "member":{"shape":"DashboardSearchFilter"}, + "max":1 + }, "DashboardSourceEntity":{ "type":"structure", "members":{ @@ -4064,6 +4110,10 @@ }, "documentation":"

A transform operation that filters rows based on a condition.

" }, + "FilterOperator":{ + "type":"string", + "enum":["StringEquals"] + }, "GeoSpatialColumnGroup":{ "type":"structure", "required":[ @@ -6137,6 +6187,55 @@ }, "documentation":"

A physical table type for as S3 data source.

" }, + "SearchDashboardsRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Filters" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the AWS account that contains the user whose dashboards you're searching for.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Filters":{ + "shape":"DashboardSearchFilterList", + "documentation":"

The filters to apply to the search. Currently, you can search only by user name. For example, \"Filters\": [ { \"Name\": \"QUICKSIGHT_USER\", \"Operator\": \"StringEquals\", \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\" } ]

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to be returned per request.

" + } + } + }, + "SearchDashboardsResponse":{ + "type":"structure", + "members":{ + "DashboardSummaryList":{ + "shape":"DashboardSummaryList", + "documentation":"

The list of dashboards owned by the user specified in Filters in your request.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of results, or null if there are no more results.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The AWS request ID for this operation.

" + } + } + }, "ServiceNowParameters":{ "type":"structure", "required":["SiteBaseUrl"], diff --git a/botocore/data/rds/2014-10-31/service-2.json b/botocore/data/rds/2014-10-31/service-2.json index 6e38e052..076c6c69 100644 --- a/botocore/data/rds/2014-10-31/service-2.json +++ b/botocore/data/rds/2014-10-31/service-2.json @@ -840,7 +840,8 @@ "errors":[ {"shape":"DBProxyTargetNotFoundFault"}, {"shape":"DBProxyTargetGroupNotFoundFault"}, - {"shape":"DBProxyNotFoundFault"} + {"shape":"DBProxyNotFoundFault"}, + {"shape":"InvalidDBProxyStateFault"} ], "documentation":"

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Remove the association between one or more DBProxyTarget data structures and a DBProxyTargetGroup.

" }, @@ -1123,7 +1124,9 @@ "resultWrapper":"DescribeDBProxyTargetGroupsResult" }, "errors":[ - {"shape":"DBProxyTargetGroupNotFoundFault"} + {"shape":"DBProxyNotFoundFault"}, + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"InvalidDBProxyStateFault"} ], "documentation":"

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Returns information about DB proxy target groups, represented by DBProxyTargetGroup data structures.

" }, @@ -1141,7 +1144,8 @@ "errors":[ {"shape":"DBProxyNotFoundFault"}, {"shape":"DBProxyTargetNotFoundFault"}, - {"shape":"DBProxyTargetGroupNotFoundFault"} + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"InvalidDBProxyStateFault"} ], "documentation":"

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Returns information about DBProxyTarget objects. This API supports pagination.

" }, @@ -1711,7 +1715,8 @@ }, "errors":[ {"shape":"DBProxyNotFoundFault"}, - {"shape":"DBProxyTargetGroupNotFoundFault"} + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"InvalidDBProxyStateFault"} ], "documentation":"

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Modifies the properties of a DBProxyTargetGroup.

" }, @@ -1911,7 +1916,8 @@ {"shape":"DBInstanceNotFoundFault"}, {"shape":"DBProxyTargetAlreadyRegisteredFault"}, {"shape":"InvalidDBInstanceStateFault"}, - {"shape":"InvalidDBClusterStateFault"} + {"shape":"InvalidDBClusterStateFault"}, + {"shape":"InvalidDBProxyStateFault"} ], "documentation":"

This is prerelease documentation for the RDS Database Proxy feature in preview release. It is subject to change.

Associate one or more DBProxyTarget data structures with a DBProxyTargetGroup.

" }, @@ -2087,7 +2093,7 @@ {"shape":"DomainNotFoundFault"}, {"shape":"DBClusterParameterGroupNotFoundFault"} ], - "documentation":"

Creates a new DB cluster from a DB snapshot or DB cluster snapshot. This action only applies to Aurora DB clusters.

The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group.

This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterFromSnapshot action has completed and the DB cluster is available.

For more information on Amazon Aurora, see What Is Amazon Aurora? in the Amazon Aurora User Guide.

" + "documentation":"

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

If a DB snapshot is specified, the target DB cluster is created from the source DB snapshot with a default configuration and default security group.

If a DB cluster snapshot is specified, the target DB cluster is created from the source DB cluster restore point with the same configuration as the original source DB cluster. If you don't specify a security group, the new DB cluster is associated with the default security group.

For more information on Amazon Aurora, see What Is Amazon Aurora? in the Amazon Aurora User Guide.

This action only applies to Aurora DB clusters.

" }, "RestoreDBClusterToPointInTime":{ "name":"RestoreDBClusterToPointInTime", @@ -3255,6 +3261,14 @@ "CopyTagsToSnapshot":{ "shape":"BooleanOptional", "documentation":"

A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.

" + }, + "Domain":{ + "shape":"String", + "documentation":"

The Active Directory directory ID to create the DB cluster in.

For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see Using Kerberos Authentication for Aurora MySQL in the Amazon Aurora User Guide.

" + }, + "DomainIAMRoleName":{ + "shape":"String", + "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

" } }, "documentation":"

" @@ -4239,6 +4253,10 @@ "CrossAccountClone":{ "shape":"BooleanOptional", "documentation":"

Specifies whether the DB cluster is a clone of a DB cluster owned by a different AWS account.

" + }, + "DomainMemberships":{ + "shape":"DomainMembershipList", + "documentation":"

The Active Directory Domain membership records associated with the DB cluster.

" } }, "documentation":"

Contains the details of an Amazon Aurora DB cluster.

This data type is used as a response element in the DescribeDBClusters, StopDBCluster, and StartDBCluster actions.

", @@ -5661,7 +5679,7 @@ }, "documentation":"

The specified proxy name must be unique for all proxies owned by your AWS account in the specified AWS Region.

", "error":{ - "code":"DBProxyAlreadyExistsFault", + "code":"DBProxyTargetExistsFault", "httpStatusCode":400, "senderFault":true }, @@ -7371,7 +7389,7 @@ "documentation":"

An optional pagination token provided by a previous DescribeExportTasks request. If you specify this parameter, the response includes only records beyond the marker, up to the value specified by the MaxRecords parameter.

" }, "MaxRecords":{ - "shape":"String", + "shape":"MaxRecords", "documentation":"

The maximum number of records to include in the response. If more records exist than the specified value, a pagination token called a marker is included in the response. You can use the marker in a later DescribeExportTasks request to retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" } } @@ -7676,7 +7694,7 @@ }, "Status":{ "shape":"String", - "documentation":"

The status of the DB instance's Active Directory Domain membership, such as joined, pending-join, failed etc).

" + "documentation":"

The status of the Active Directory Domain membership for the DB instance or cluster. Values include joined, pending-join, failed, and so on.

" }, "FQDN":{ "shape":"String", @@ -7687,7 +7705,7 @@ "documentation":"

The name of the IAM role to be used when making API calls to the Directory Service.

" } }, - "documentation":"

An Active Directory Domain membership record associated with the DB instance.

" + "documentation":"

An Active Directory Domain membership record associated with the DB instance or cluster.

" }, "DomainMembershipList":{ "type":"list", @@ -7695,7 +7713,7 @@ "shape":"DomainMembership", "locationName":"DomainMembership" }, - "documentation":"

List of Active Directory Domain membership records associated with a DB instance.

" + "documentation":"

List of Active Directory Domain membership records associated with a DB instance or cluster.

" }, "DomainNotFoundFault":{ "type":"structure", @@ -9016,6 +9034,14 @@ "shape":"String", "documentation":"

The name of the DB parameter group to apply to all instances of the DB cluster.

When you apply a parameter group using the DBInstanceParameterGroupName parameter, the DB cluster isn't rebooted automatically. Also, parameter changes aren't applied during the next maintenance window but instead are applied immediately.

Default: The existing name setting

Constraints:

  • The DB parameter group must be in the same DB parameter group family as this DB cluster.

  • The DBInstanceParameterGroupName parameter is only valid in combination with the AllowMajorVersionUpgrade parameter.

" }, + "Domain":{ + "shape":"String", + "documentation":"

The Active Directory directory ID to move the DB cluster to. Specify none to remove the cluster from its current domain. The domain must be created prior to this operation.

" + }, + "DomainIAMRoleName":{ + "shape":"String", + "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

" + }, "ScalingConfiguration":{ "shape":"ScalingConfiguration", "documentation":"

The scaling properties of the DB cluster. You can only modify scaling properties for DB clusters in serverless DB engine mode.

" @@ -11028,6 +11054,14 @@ "CopyTagsToSnapshot":{ "shape":"BooleanOptional", "documentation":"

A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

" + }, + "Domain":{ + "shape":"String", + "documentation":"

Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation.

For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see Using Kerberos Authentication for Aurora MySQL in the Amazon Aurora User Guide.

" + }, + "DomainIAMRoleName":{ + "shape":"String", + "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

" } } }, @@ -11124,6 +11158,14 @@ "CopyTagsToSnapshot":{ "shape":"BooleanOptional", "documentation":"

A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

" + }, + "Domain":{ + "shape":"String", + "documentation":"

Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation.

" + }, + "DomainIAMRoleName":{ + "shape":"String", + "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

" } }, "documentation":"

" @@ -11205,6 +11247,14 @@ "CopyTagsToSnapshot":{ "shape":"BooleanOptional", "documentation":"

A value that indicates whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.

" + }, + "Domain":{ + "shape":"String", + "documentation":"

Specify the Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation.

For Amazon Aurora DB clusters, Amazon RDS can use Kerberos Authentication to authenticate users that connect to the DB cluster. For more information, see Using Kerberos Authentication for Aurora MySQL in the Amazon Aurora User Guide.

" + }, + "DomainIAMRoleName":{ + "shape":"String", + "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

" } }, "documentation":"

" diff --git a/botocore/data/redshift/2012-12-01/service-2.json b/botocore/data/redshift/2012-12-01/service-2.json index 6f6ac039..e4340a85 100644 --- a/botocore/data/redshift/2012-12-01/service-2.json +++ b/botocore/data/redshift/2012-12-01/service-2.json @@ -1069,7 +1069,8 @@ {"shape":"BucketNotFoundFault"}, {"shape":"InsufficientS3BucketPolicyFault"}, {"shape":"InvalidS3KeyPrefixFault"}, - {"shape":"InvalidS3BucketNameFault"} + {"shape":"InvalidS3BucketNameFault"}, + {"shape":"InvalidClusterStateFault"} ], "documentation":"

Starts logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster.

" }, @@ -1218,7 +1219,8 @@ "resultWrapper":"ModifyClusterMaintenanceResult" }, "errors":[ - {"shape":"ClusterNotFoundFault"} + {"shape":"ClusterNotFoundFault"}, + {"shape":"InvalidClusterStateFault"} ], "documentation":"

Modifies the maintenance settings of a cluster.

" }, @@ -1374,6 +1376,23 @@ ], "documentation":"

Modifies a snapshot schedule. Any schedule associated with a cluster is modified asynchronously.

" }, + "PauseCluster":{ + "name":"PauseCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PauseClusterMessage"}, + "output":{ + "shape":"PauseClusterResult", + "resultWrapper":"PauseClusterResult" + }, + "errors":[ + {"shape":"ClusterNotFoundFault"}, + {"shape":"InvalidClusterStateFault"} + ], + "documentation":"

Pauses a cluster.

" + }, "PurchaseReservedNodeOffering":{ "name":"PurchaseReservedNodeOffering", "http":{ @@ -1513,6 +1532,23 @@ ], "documentation":"

Creates a new table from a table in an Amazon Redshift cluster snapshot. You must create the new table within the Amazon Redshift cluster that the snapshot was taken from.

You cannot use RestoreTableFromClusterSnapshot to restore a table with the same name as an existing table in an Amazon Redshift cluster. That is, you cannot overwrite an existing table in a cluster with a restored table. If you want to replace your original table with a new, restored table, then rename or drop your original table before you call RestoreTableFromClusterSnapshot. When you have renamed your original table, then you can pass the original name of the table as the NewTableName parameter value in the call to RestoreTableFromClusterSnapshot. This way, you can replace the original table with the table created from the snapshot.

" }, + "ResumeCluster":{ + "name":"ResumeCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResumeClusterMessage"}, + "output":{ + "shape":"ResumeClusterResult", + "resultWrapper":"ResumeClusterResult" + }, + "errors":[ + {"shape":"ClusterNotFoundFault"}, + {"shape":"InvalidClusterStateFault"} + ], + "documentation":"

Resumes a paused cluster.

" + }, "RevokeClusterSecurityGroupIngress":{ "name":"RevokeClusterSecurityGroupIngress", "http":{ @@ -1655,7 +1691,8 @@ "type":"string", "enum":[ "restore-cluster", - "recommend-node-config" + "recommend-node-config", + "resize-cluster" ] }, "AssociatedClusterList":{ @@ -1940,7 +1977,7 @@ }, "ClusterStatus":{ "shape":"String", - "documentation":"

The current state of the cluster. Possible values are the following:

  • available

  • available, prep-for-resize

  • available, resize-cleanup

  • cancelling-resize

  • creating

  • deleting

  • final-snapshot

  • hardware-failure

  • incompatible-hsm

  • incompatible-network

  • incompatible-parameters

  • incompatible-restore

  • modifying

  • rebooting

  • renaming

  • resizing

  • rotating-keys

  • storage-full

  • updating-hsm

" + "documentation":"

The current state of the cluster. Possible values are the following:

  • available

  • available, prep-for-resize

  • available, resize-cleanup

  • cancelling-resize

  • creating

  • deleting

  • final-snapshot

  • hardware-failure

  • incompatible-hsm

  • incompatible-network

  • incompatible-parameters

  • incompatible-restore

  • modifying

  • paused

  • rebooting

  • renaming

  • resizing

  • rotating-keys

  • storage-full

  • updating-hsm

" }, "ClusterAvailabilityStatus":{ "shape":"String", @@ -4001,7 +4038,7 @@ "members":{ "ActionType":{ "shape":"ActionType", - "documentation":"

The action type to evaluate for possible node configurations. Specify \"restore-cluster\" to get configuration combinations based on an existing snapshot. Specify \"recommend-node-config\" to get configuration recommendations based on an existing cluster or snapshot.

" + "documentation":"

The action type to evaluate for possible node configurations. Specify \"restore-cluster\" to get configuration combinations based on an existing snapshot. Specify \"recommend-node-config\" to get configuration recommendations based on an existing cluster or snapshot. Specify \"resize-cluster\" to get configuration combinations for elastic resize based on an existing cluster.

" }, "ClusterIdentifier":{ "shape":"String", @@ -5928,6 +5965,22 @@ "locationName":"Parameter" } }, + "PauseClusterMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{ + "shape":"String", + "documentation":"

The identifier of the cluster to be paused.

" + } + } + }, + "PauseClusterResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, "PendingActionsList":{ "type":"list", "member":{"shape":"String"} @@ -6274,10 +6327,7 @@ }, "ResizeClusterMessage":{ "type":"structure", - "required":[ - "ClusterIdentifier", - "NumberOfNodes" - ], + "required":["ClusterIdentifier"], "members":{ "ClusterIdentifier":{ "shape":"String", @@ -6623,6 +6673,22 @@ "TableRestoreStatus":{"shape":"TableRestoreStatus"} } }, + "ResumeClusterMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "ClusterIdentifier":{ + "shape":"String", + "documentation":"

The identifier of the cluster to be resumed.

" + } + } + }, + "ResumeClusterResult":{ + "type":"structure", + "members":{ + "Cluster":{"shape":"Cluster"} + } + }, "RevisionTarget":{ "type":"structure", "members":{ @@ -6798,7 +6864,7 @@ }, "Schedule":{ "shape":"String", - "documentation":"

The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour.

Format of at expressions is \"at(yyyy-mm-ddThh:mm:ss)\". For example, \"at(2016-03-04T17:27:00)\".

Format of cron expressions is \"cron(Minutes Hours Day-of-month Month Day-of-week Year)\". For example, \"cron(0, 10, *, *, MON, *)\". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide.

" + "documentation":"

The schedule for a one-time (at format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour.

Format of at expressions is \"at(yyyy-mm-ddThh:mm:ss)\". For example, \"at(2016-03-04T17:27:00)\".

Format of cron expressions is \"cron(Minutes Hours Day-of-month Month Day-of-week Year)\". For example, \"cron(0 10 ? * MON *)\". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide.

" }, "IamRole":{ "shape":"String", @@ -6922,6 +6988,14 @@ "ResizeCluster":{ "shape":"ResizeClusterMessage", "documentation":"

An action that runs a ResizeCluster API operation.

" + }, + "PauseCluster":{ + "shape":"PauseClusterMessage", + "documentation":"

An action that runs a PauseCluster API operation.

" + }, + "ResumeCluster":{ + "shape":"ResumeClusterMessage", + "documentation":"

An action that runs a ResumeCluster API operation.

" } }, "documentation":"

The action type that specifies an Amazon Redshift API operation that is supported by the Amazon Redshift scheduler.

" @@ -6940,7 +7014,11 @@ }, "ScheduledActionTypeValues":{ "type":"string", - "enum":["ResizeCluster"] + "enum":[ + "ResizeCluster", + "PauseCluster", + "ResumeCluster" + ] }, "ScheduledActionsMessage":{ "type":"structure", diff --git a/botocore/data/rekognition/2016-06-27/service-2.json b/botocore/data/rekognition/2016-06-27/service-2.json index 13b95963..448a9a44 100644 --- a/botocore/data/rekognition/2016-06-27/service-2.json +++ b/botocore/data/rekognition/2016-06-27/service-2.json @@ -277,7 +277,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"InvalidImageFormatException"} ], - "documentation":"

Detects faces within an image that is provided as input.

DetectFaces detects the 100 largest faces in the image. For each face detected, the operation returns face details. These details include a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), presence of beard, sunglasses, and so on.

The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm might not detect the faces or might detect faces with lower confidence.

You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectFaces action.

" + "documentation":"

Detects faces within an image that is provided as input.

DetectFaces detects the 100 largest faces in the image. For each face detected, the operation returns face details. These details include a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), presence of beard, sunglasses, and so on.

The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm might not detect the faces or might detect faces with lower confidence.

You pass the input image either as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectFaces action.

" }, "DetectLabels":{ "name":"DetectLabels", @@ -472,6 +472,25 @@ ], "documentation":"

Gets the path tracking results of a Amazon Rekognition Video analysis started by StartPersonTracking.

The person path tracking operation is started by a call to StartPersonTracking which returns a job identifier (JobId). When the operation finishes, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartPersonTracking.

To get the results of the person path tracking operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetPersonTracking and pass the job identifier (JobId) from the initial call to StartPersonTracking.

GetPersonTracking returns an array, Persons, of tracked persons and the time(s) their paths were tracked in the video.

GetPersonTracking only returns the default facial attributes (BoundingBox, Confidence, Landmarks, Pose, and Quality). The other facial attributes listed in the Face object of the following response syntax are not returned.

For more information, see FaceDetail in the Amazon Rekognition Developer Guide.

By default, the array is sorted by the time(s) a person's path is tracked in the video. You can sort by tracked persons by specifying INDEX for the SortBy input parameter.

Use the MaxResults parameter to limit the number of items returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetPersonTracking and populate the NextToken request parameter with the token value returned from the previous call to GetPersonTracking.

" }, + "GetTextDetection":{ + "name":"GetTextDetection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTextDetectionRequest"}, + "output":{"shape":"GetTextDetectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPaginationTokenException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Gets the text detection results of a Amazon Rekognition Video analysis started by StartTextDetection.

Text detection with Amazon Rekognition Video is an asynchronous operation. You start text detection by calling StartTextDetection which returns a job identifier (JobId) When the text detection operation finishes, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic registered in the initial call to StartTextDetection. To get the results of the text detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. if so, call GetTextDetection and pass the job identifier (JobId) from the initial call of StartLabelDetection.

GetTextDetection returns an array of detected text (TextDetections) sorted by the time the text was detected, up to 50 words per frame of video.

Each element of the array includes the detected text, the precentage confidence in the acuracy of the detected text, the time the text was detected, bounding box information for where the text was located, and unique identifiers for words and their lines.

Use MaxResults parameter to limit the number of text detections returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetTextDetection and populate the NextToken request parameter with the token value returned from the previous call to GetTextDetection.

" + }, "IndexFaces":{ "name":"IndexFaces", "http":{ @@ -781,6 +800,28 @@ ], "documentation":"

Starts processing a stream processor. You create a stream processor by calling CreateStreamProcessor. To tell StartStreamProcessor which stream processor to start, use the value of the Name field specified in the call to CreateStreamProcessor.

" }, + "StartTextDetection":{ + "name":"StartTextDetection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartTextDetectionRequest"}, + "output":{"shape":"StartTextDetectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InternalServerError"}, + {"shape":"VideoTooLargeException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Starts asynchronous detection of text in a stored video.

Amazon Rekognition Video can detect text in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartTextDetection returns a job identifier (JobId) which you use to get the results of the operation. When text detection is finished, Amazon Rekognition Video publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the text detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. if so, call GetTextDetection and pass the job identifier (JobId) from the initial call to StartTextDetection.

", + "idempotent":true + }, "StopProjectVersion":{ "name":"StopProjectVersion", "http":{ @@ -901,6 +942,16 @@ }, "documentation":"

Identifies the bounding box around the label, face, or text. The left (x-coordinate) and top (y-coordinate) are coordinates representing the top and left sides of the bounding box. Note that the upper-left corner of the image is the origin (0,0).

The top and left values returned are ratios of the overall image size. For example, if the input image is 700x200 pixels, and the top-left coordinate of the bounding box is 350x50 pixels, the API returns a left value of 0.5 (350/700) and a top value of 0.25 (50/200).

The width and height values represent the dimensions of the bounding box as a ratio of the overall image dimension. For example, if the input image is 700x200 pixels, and the bounding box width is 70 pixels, the width returned is 0.1.

The bounding box coordinates can have negative values. For example, if Amazon Rekognition is able to detect a face that is at the image edge and is only partially visible, the service can return coordinates that are outside the image bounds and, depending on the image edge, you might get negative values or values greater than 1 for the left or top values.

" }, + "BoundingBoxHeight":{ + "type":"float", + "max":1, + "min":0 + }, + "BoundingBoxWidth":{ + "type":"float", + "max":1, + "min":0 + }, "Celebrity":{ "type":"structure", "members":{ @@ -1646,6 +1697,17 @@ } } }, + "DetectTextFilters":{ + "type":"structure", + "members":{ + "WordFilter":{"shape":"DetectionFilter"}, + "RegionsOfInterest":{ + "shape":"RegionsOfInterest", + "documentation":"

A Filter focusing on a certain area of the image. Uses a BoundingBox object to set the region of the image.

" + } + }, + "documentation":"

A set of optional parameters that you can use to set the criteria that the text must meet to be included in your response. WordFilter looks at a word’s height, width, and minimum confidence. RegionOfInterest lets you set a specific region of the image to look for text in.

" + }, "DetectTextRequest":{ "type":"structure", "required":["Image"], @@ -1653,6 +1715,10 @@ "Image":{ "shape":"Image", "documentation":"

The input image as base64-encoded bytes or an Amazon S3 object. If you use the AWS CLI to call Amazon Rekognition operations, you can't pass image bytes.

If you are using an AWS SDK to call Amazon Rekognition, you might not need to base64-encode image bytes passed using the Bytes field. For more information, see Images in the Amazon Rekognition developer guide.

" + }, + "Filters":{ + "shape":"DetectTextFilters", + "documentation":"

Optional parameters that let you set the criteria that the text must meet to be included in your response.

" } } }, @@ -1662,9 +1728,31 @@ "TextDetections":{ "shape":"TextDetectionList", "documentation":"

An array of text that was detected in the input image.

" + }, + "TextModelVersion":{ + "shape":"String", + "documentation":"

The model version used to detect text.

" } } }, + "DetectionFilter":{ + "type":"structure", + "members":{ + "MinConfidence":{ + "shape":"Percent", + "documentation":"

Sets confidence of word detection. Words with detection confidence below this will be excluded from the result. Values should be between 0.5 and 1 as Text in Video will not return any result below 0.5.

" + }, + "MinBoundingBoxHeight":{ + "shape":"BoundingBoxHeight", + "documentation":"

Sets the minimum height of the word bounding box. Words with bounding box heights lesser than this value will be excluded from the result. Value is relative to the video frame height.

" + }, + "MinBoundingBoxWidth":{ + "shape":"BoundingBoxWidth", + "documentation":"

Sets the minimum width of the word bounding box. Words with bounding boxes widths lesser than this value will be excluded from the result. Value is relative to the video frame width.

" + } + }, + "documentation":"

A set of parameters that allow you to filter out certain results from your returned results.

" + }, "Emotion":{ "type":"structure", "members":{ @@ -1933,7 +2021,7 @@ }, "FaceMatchThreshold":{ "shape":"Percent", - "documentation":"

Minimum face match confidence score that must be met to return a result for a recognized face. Default is 70. 0 is the lowest confidence. 100 is the highest confidence.

" + "documentation":"

Minimum face match confidence score that must be met to return a result for a recognized face. Default is 80. 0 is the lowest confidence. 100 is the highest confidence.

" } }, "documentation":"

Input face recognition parameters for an Amazon Rekognition stream processor. FaceRecognitionSettings is a request parameter for CreateStreamProcessor.

" @@ -2294,6 +2382,50 @@ } } }, + "GetTextDetectionRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

Job identifier for the label detection operation for which you want results returned. You get the job identifer from an initial call to StartTextDetection.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

Maximum number of results to return per paginated call. The largest value you can specify is 1000.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If the previous response was incomplete (because there are more labels to retrieve), Amazon Rekognition Video returns a pagination token in the response. You can use this pagination token to retrieve the next set of text.

" + } + } + }, + "GetTextDetectionResponse":{ + "type":"structure", + "members":{ + "JobStatus":{ + "shape":"VideoJobStatus", + "documentation":"

Current status of the text detection job.

" + }, + "StatusMessage":{ + "shape":"StatusMessage", + "documentation":"

If the job fails, StatusMessage provides a descriptive error message.

" + }, + "VideoMetadata":{"shape":"VideoMetadata"}, + "TextDetections":{ + "shape":"TextDetectionResults", + "documentation":"

An array of text detected in the video. Each element contains the detected text, the time in milliseconds from the start of the video that the text was detected, and where it was detected on the screen.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If the response is truncated, Amazon Rekognition Video returns this token that you can use in the subsequent request to retrieve the next set of text.

" + }, + "TextModelVersion":{ + "shape":"String", + "documentation":"

Version number of the text detection model that was used to detect text.

" + } + } + }, "GroundTruthManifest":{ "type":"structure", "members":{ @@ -3211,6 +3343,22 @@ } } }, + "RegionOfInterest":{ + "type":"structure", + "members":{ + "BoundingBox":{ + "shape":"BoundingBox", + "documentation":"

The box representing a region of interest on screen.

" + } + }, + "documentation":"

Specifies a location within the frame that Rekognition checks for text. Uses a BoundingBox object to set a region of the screen.

A word is included in the region if the word is more than half in that region. If there is more than one region, the word will be compared with all regions of the screen. Any word more than half in a region is kept in the results.

" + }, + "RegionsOfInterest":{ + "type":"list", + "member":{"shape":"RegionOfInterest"}, + "max":10, + "min":0 + }, "RekognitionUniqueId":{ "type":"string", "pattern":"[0-9A-Za-z]*" @@ -3645,6 +3793,49 @@ "members":{ } }, + "StartTextDetectionFilters":{ + "type":"structure", + "members":{ + "WordFilter":{ + "shape":"DetectionFilter", + "documentation":"

Filters focusing on qualities of the text, such as confidence or size.

" + }, + "RegionsOfInterest":{ + "shape":"RegionsOfInterest", + "documentation":"

Filter focusing on a certain area of the frame. Uses a BoundingBox object to set the region of the screen.

" + } + }, + "documentation":"

Set of optional parameters that let you set the criteria text must meet to be included in your response. WordFilter looks at a word's height, width and minimum confidence. RegionOfInterest lets you set a specific region of the screen to look for text in.

" + }, + "StartTextDetectionRequest":{ + "type":"structure", + "required":["Video"], + "members":{ + "Video":{"shape":"Video"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

Idempotent token used to identify the start request. If you use the same token with multiple StartTextDetection requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidentaly started more than once.

" + }, + "NotificationChannel":{"shape":"NotificationChannel"}, + "JobTag":{ + "shape":"JobTag", + "documentation":"

An identifier returned in the completion status published by your Amazon Simple Notification Service topic. For example, you can use JobTag to group related jobs and identify them in the completion notification.

" + }, + "Filters":{ + "shape":"StartTextDetectionFilters", + "documentation":"

Optional parameters that let you set criteria the text must meet to be included in your response.

" + } + } + }, + "StartTextDetectionResponse":{ + "type":"structure", + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

Identifier for the text detection job. Use JobId to identify the job in a subsequent call to GetTextDetection.

" + } + } + }, "StatusMessage":{"type":"string"}, "StopProjectVersionRequest":{ "type":"structure", @@ -3832,6 +4023,24 @@ "type":"list", "member":{"shape":"TextDetection"} }, + "TextDetectionResult":{ + "type":"structure", + "members":{ + "Timestamp":{ + "shape":"Timestamp", + "documentation":"

The time, in milliseconds from the start of the video, that the text was detected.

" + }, + "TextDetection":{ + "shape":"TextDetection", + "documentation":"

Details about text detected in a video.

" + } + }, + "documentation":"

Information about text detected in a video. Incudes the detected text, the time in milliseconds from the start of the video that the text was detected, and where it was detected on the screen.

" + }, + "TextDetectionResults":{ + "type":"list", + "member":{"shape":"TextDetectionResult"} + }, "TextTypes":{ "type":"string", "enum":[ @@ -3967,7 +4176,7 @@ "type":"structure", "members":{ }, - "documentation":"

The file size or duration of the supplied media is too large. The maximum file size is 8GB. The maximum duration is 2 hours.

", + "documentation":"

The file size or duration of the supplied media is too large. The maximum file size is 10GB. The maximum duration is 6 hours.

", "exception":true } }, diff --git a/botocore/data/robomaker/2018-06-29/service-2.json b/botocore/data/robomaker/2018-06-29/service-2.json index 4f5094ef..bde7e0e5 100644 --- a/botocore/data/robomaker/2018-06-29/service-2.json +++ b/botocore/data/robomaker/2018-06-29/service-2.json @@ -1555,10 +1555,12 @@ "RobotDeploymentNoResponse", "RobotAgentConnectionTimeout", "GreengrassDeploymentFailed", + "InvalidGreengrassGroup", "MissingRobotArchitecture", "MissingRobotApplicationArchitecture", "MissingRobotDeploymentResource", "GreengrassGroupVersionDoesNotExist", + "LambdaDeleted", "ExtractingBundleFailure", "PreLaunchFileFailure", "PostLaunchFileFailure", @@ -2192,7 +2194,12 @@ "min":0 }, "GenericInteger":{"type":"integer"}, - "GenericString":{"type":"string"}, + "GenericString":{ + "type":"string", + "max":1024, + "min":0, + "pattern":".*" + }, "IamRole":{ "type":"string", "max":255, @@ -2258,6 +2265,10 @@ "portForwardingConfig":{ "shape":"PortForwardingConfig", "documentation":"

The port forwarding configuration.

" + }, + "streamUI":{ + "shape":"Boolean", + "documentation":"

Boolean indicating whether a streaming session will be configured for the application. If True, AWS RoboMaker will configure a connection so you can interact with your application as it is running in the simulation. You must configure and luanch the component. It must have a graphical user interface.

" } }, "documentation":"

Information about a launch configuration.

" @@ -2551,7 +2562,8 @@ "NonEmptyString":{ "type":"string", "max":255, - "min":1 + "min":1, + "pattern":".+" }, "NonSystemPort":{ "type":"integer", @@ -2709,6 +2721,8 @@ }, "RenderingEngineVersionType":{ "type":"string", + "max":4, + "min":1, "pattern":"1.x" }, "ResourceAlreadyExistsException":{ @@ -3393,6 +3407,8 @@ }, "SimulationSoftwareSuiteVersionType":{ "type":"string", + "max":1024, + "min":0, "pattern":"7|9|Kinetic|Melodic|Dashing" }, "SimulationTimeMillis":{"type":"long"}, @@ -3450,7 +3466,8 @@ "members":{ "clientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

" + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "idempotencyToken":true }, "batchPolicy":{ "shape":"BatchPolicy", @@ -3842,6 +3859,8 @@ }, "VersionQualifier":{ "type":"string", + "max":255, + "min":1, "pattern":"ALL" }, "errorMessage":{"type":"string"} diff --git a/botocore/data/s3control/2018-08-20/service-2.json b/botocore/data/s3control/2018-08-20/service-2.json index 489cc982..b235e6e3 100644 --- a/botocore/data/s3control/2018-08-20/service-2.json +++ b/botocore/data/s3control/2018-08-20/service-2.json @@ -62,6 +62,21 @@ "input":{"shape":"DeleteAccessPointPolicyRequest"}, "documentation":"

Deletes the access point policy for the specified access point.

" }, + "DeleteJobTagging":{ + "name":"DeleteJobTagging", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/jobs/{id}/tagging" + }, + "input":{"shape":"DeleteJobTaggingRequest"}, + "output":{"shape":"DeleteJobTaggingResult"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Delete the tags on a Amazon S3 batch operations job, if any.

" + }, "DeletePublicAccessBlock":{ "name":"DeletePublicAccessBlock", "http":{ @@ -117,6 +132,21 @@ "output":{"shape":"GetAccessPointPolicyStatusResult"}, "documentation":"

Indicates whether the specified access point currently has a policy that allows public access. For more information about public access through access points, see Managing Data Access with Amazon S3 Access Points in the Amazon Simple Storage Service Developer Guide.

" }, + "GetJobTagging":{ + "name":"GetJobTagging", + "http":{ + "method":"GET", + "requestUri":"/v20180820/jobs/{id}/tagging" + }, + "input":{"shape":"GetJobTaggingRequest"}, + "output":{"shape":"GetJobTaggingResult"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Retrieve the tags on a Amazon S3 batch operations job.

" + }, "GetPublicAccessBlock":{ "name":"GetPublicAccessBlock", "http":{ @@ -168,6 +198,26 @@ }, "documentation":"

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

" }, + "PutJobTagging":{ + "name":"PutJobTagging", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/jobs/{id}/tagging" + }, + "input":{ + "shape":"PutJobTaggingRequest", + "locationName":"PutJobTaggingRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"PutJobTaggingResult"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyTagsException"} + ], + "documentation":"

Replace the set of tags on a Amazon S3 batch operations job.

" + }, "PutPublicAccessBlock":{ "name":"PutPublicAccessBlock", "http":{ @@ -353,6 +403,10 @@ "RoleArn":{ "shape":"IAMRoleArn", "documentation":"

The Amazon Resource Name (ARN) for the Identity and Access Management (IAM) Role that batch operations will use to execute this job's operation on each object in the manifest.

" + }, + "Tags":{ + "shape":"S3TagSet", + "documentation":"

An optional set of tags to associate with the job when it is created.

" } } }, @@ -408,6 +462,32 @@ } } }, + "DeleteJobTaggingRequest":{ + "type":"structure", + "required":[ + "AccountId", + "JobId" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The account ID for the Amazon Web Services account associated with the Amazon S3 batch operations job you want to remove tags from.

", + "location":"header", + "locationName":"x-amz-account-id" + }, + "JobId":{ + "shape":"JobId", + "documentation":"

The ID for the job whose tags you want to delete.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteJobTaggingResult":{ + "type":"structure", + "members":{ + } + }, "DeletePublicAccessBlockRequest":{ "type":"structure", "required":["AccountId"], @@ -562,6 +642,36 @@ } } }, + "GetJobTaggingRequest":{ + "type":"structure", + "required":[ + "AccountId", + "JobId" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The account ID for the Amazon Web Services account associated with the Amazon S3 batch operations job you want to retrieve tags for.

", + "location":"header", + "locationName":"x-amz-account-id" + }, + "JobId":{ + "shape":"JobId", + "documentation":"

The ID for the job whose tags you want to retrieve.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetJobTaggingResult":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"S3TagSet", + "documentation":"

The set of tags associated with the job.

" + } + } + }, "GetPublicAccessBlockOutput":{ "type":"structure", "members":{ @@ -1245,6 +1355,37 @@ } } }, + "PutJobTaggingRequest":{ + "type":"structure", + "required":[ + "AccountId", + "JobId", + "Tags" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The account ID for the Amazon Web Services account associated with the Amazon S3 batch operations job you want to replace tags on.

", + "location":"header", + "locationName":"x-amz-account-id" + }, + "JobId":{ + "shape":"JobId", + "documentation":"

The ID for the job whose tags you want to replace.

", + "location":"uri", + "locationName":"id" + }, + "Tags":{ + "shape":"S3TagSet", + "documentation":"

The set of tags to associate with the job.

" + } + } + }, + "PutJobTaggingResult":{ + "type":"structure", + "members":{ + } + }, "PutPublicAccessBlockRequest":{ "type":"structure", "required":[ @@ -1661,6 +1802,13 @@ "documentation":"

", "exception":true }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"} + }, + "exception":true + }, "UpdateJobPriorityRequest":{ "type":"structure", "required":[ diff --git a/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json b/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json index 474f668b..701d101c 100644 --- a/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json +++ b/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json @@ -57,7 +57,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Returns information about human loops, given the specified parameters.

" + "documentation":"

Returns information about human loops, given the specified parameters. If a human loop was deleted, it will not be included.

" }, "StartHumanLoop":{ "name":"StartHumanLoop", @@ -71,7 +71,8 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} ], "documentation":"

Starts a human loop, provided that at least one activation condition is met.

" }, @@ -93,7 +94,15 @@ } }, "shapes":{ - "Boolean":{"type":"boolean"}, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"FailureReason"} + }, + "documentation":"

Your request has the same name as another active human loop but has different input data. You cannot start two human loops with the same name and different input data.

", + "error":{"httpStatusCode":409}, + "exception":true + }, "ContentClassifier":{ "type":"string", "enum":[ @@ -129,7 +138,7 @@ "members":{ "HumanLoopName":{ "shape":"HumanLoopName", - "documentation":"

The name of the human loop.

", + "documentation":"

The unique name of the human loop.

", "location":"uri", "locationName":"HumanLoopName" } @@ -138,17 +147,16 @@ "DescribeHumanLoopResponse":{ "type":"structure", "required":[ - "CreationTimestamp", + "CreationTime", "HumanLoopStatus", "HumanLoopName", "HumanLoopArn", - "FlowDefinitionArn", - "HumanLoopInput" + "FlowDefinitionArn" ], "members":{ - "CreationTimestamp":{ + "CreationTime":{ "shape":"Timestamp", - "documentation":"

The timestamp when Amazon Augmented AI created the human loop.

" + "documentation":"

The creation time when Amazon Augmented AI created the human loop.

" }, "FailureReason":{ "shape":"String", @@ -174,12 +182,8 @@ "shape":"FlowDefinitionArn", "documentation":"

The Amazon Resource Name (ARN) of the flow definition.

" }, - "HumanLoopInput":{ - "shape":"HumanLoopInputContent", - "documentation":"

An object containing information about the human loop input.

" - }, "HumanLoopOutput":{ - "shape":"HumanLoopOutputContent", + "shape":"HumanLoopOutput", "documentation":"

An object containing information about the output of the human loop.

" } } @@ -193,45 +197,32 @@ "max":1024, "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:flow-definition/.*" }, - "HumanLoopActivationReason":{ - "type":"structure", - "members":{ - "ConditionsMatched":{ - "shape":"Boolean", - "documentation":"

True if the specified conditions were matched to trigger the human loop.

" - } - }, - "documentation":"

Contains information about why a human loop was triggered. If at least one activation reason is evaluated to be true, the human loop is activated.

" - }, - "HumanLoopActivationResults":{ - "type":"structure", - "members":{ - "HumanLoopActivationReason":{ - "shape":"HumanLoopActivationReason", - "documentation":"

An object containing information about why a human loop was triggered.

" - }, - "HumanLoopActivationConditionsEvaluationResults":{ - "shape":"String", - "documentation":"

A copy of the human loop activation conditions of the flow definition, augmented with the results of evaluating those conditions on the input provided to the StartHumanLoop operation.

" - } - }, - "documentation":"

Information about the corresponding flow definition's human loop activation condition evaluation. Null if StartHumanLoop was invoked directly.

" - }, "HumanLoopArn":{ "type":"string", "max":1024, "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:human-loop/.*" }, - "HumanLoopInputContent":{ + "HumanLoopDataAttributes":{ + "type":"structure", + "required":["ContentClassifiers"], + "members":{ + "ContentClassifiers":{ + "shape":"ContentClassifiers", + "documentation":"

Declares that your content is free of personally identifiable information or adult content.

Amazon SageMaker can restrict the Amazon Mechanical Turk workers who can view your task based on this information.

" + } + }, + "documentation":"

Attributes of the data specified by the customer. Use these to describe the data to be labeled.

" + }, + "HumanLoopInput":{ "type":"structure", "required":["InputContent"], "members":{ "InputContent":{ "shape":"InputContent", - "documentation":"

Serialized input from the human loop.

" + "documentation":"

Serialized input from the human loop. The input must be a string representation of a file in JSON format.

" } }, - "documentation":"

An object containing the input.

" + "documentation":"

An object containing the human loop input in JSON format.

" }, "HumanLoopName":{ "type":"string", @@ -239,13 +230,13 @@ "min":1, "pattern":"^[a-z0-9](-*[a-z0-9])*$" }, - "HumanLoopOutputContent":{ + "HumanLoopOutput":{ "type":"structure", "required":["OutputS3Uri"], "members":{ "OutputS3Uri":{ "shape":"String", - "documentation":"

The location of the Amazon S3 object where Amazon Augmented AI stores your human loop output. The output is stored at the following location: s3://S3OutputPath/HumanLoopName/CreationTime/output.json.

" + "documentation":"

The location of the Amazon S3 object where Amazon Augmented AI stores your human loop output.

" } }, "documentation":"

Information about where the human output will be stored.

" @@ -290,17 +281,6 @@ }, "documentation":"

Summary information about the human loop.

" }, - "HumanReviewDataAttributes":{ - "type":"structure", - "required":["ContentClassifiers"], - "members":{ - "ContentClassifiers":{ - "shape":"ContentClassifiers", - "documentation":"

Declares that your content is free of personally identifiable information or adult content. Amazon SageMaker may restrict the Amazon Mechanical Turk workers that can view your task based on this information.

" - } - }, - "documentation":"

Attributes of the data specified by the customer. Use these to describe the data to be labeled.

" - }, "InputContent":{ "type":"string", "max":4194304 @@ -316,19 +296,26 @@ }, "ListHumanLoopsRequest":{ "type":"structure", + "required":["FlowDefinitionArn"], "members":{ "CreationTimeAfter":{ "shape":"Timestamp", - "documentation":"

(Optional) The timestamp of the date when you want the human loops to begin. For example, 1551000000.

", + "documentation":"

(Optional) The timestamp of the date when you want the human loops to begin in ISO 8601 format. For example, 2020-02-24.

", "location":"querystring", "locationName":"CreationTimeAfter" }, "CreationTimeBefore":{ "shape":"Timestamp", - "documentation":"

(Optional) The timestamp of the date before which you want the human loops to begin. For example, 1550000000.

", + "documentation":"

(Optional) The timestamp of the date before which you want the human loops to begin in ISO 8601 format. For example, 2020-02-24.

", "location":"querystring", "locationName":"CreationTimeBefore" }, + "FlowDefinitionArn":{ + "shape":"FlowDefinitionArn", + "documentation":"

The Amazon Resource Name (ARN) of a flow definition.

", + "location":"querystring", + "locationName":"FlowDefinitionArn" + }, "SortOrder":{ "shape":"SortOrder", "documentation":"

An optional value that specifies whether you want the results sorted in Ascending or Descending order.

", @@ -416,11 +403,11 @@ "documentation":"

The Amazon Resource Name (ARN) of the flow definition.

" }, "HumanLoopInput":{ - "shape":"HumanLoopInputContent", + "shape":"HumanLoopInput", "documentation":"

An object containing information about the human loop.

" }, "DataAttributes":{ - "shape":"HumanReviewDataAttributes", + "shape":"HumanLoopDataAttributes", "documentation":"

Attributes of the data specified by the customer.

" } } @@ -431,10 +418,6 @@ "HumanLoopArn":{ "shape":"HumanLoopArn", "documentation":"

The Amazon Resource Name (ARN) of the human loop.

" - }, - "HumanLoopActivationResults":{ - "shape":"HumanLoopActivationResults", - "documentation":"

An object containing information about the human loop activation.

" } } }, @@ -474,5 +457,5 @@ "exception":true } }, - "documentation":"

Amazon Augmented AI (Augmented AI) (Preview) is a service that adds human judgment to any machine learning application. Human reviewers can take over when an AI application can't evaluate data with a high degree of confidence.

From fraudulent bank transaction identification to document processing to image analysis, machine learning models can be trained to make decisions as well as or better than a human. Nevertheless, some decisions require contextual interpretation, such as when you need to decide whether an image is appropriate for a given audience. Content moderation guidelines are nuanced and highly dependent on context, and they vary between countries. When trying to apply AI in these situations, you can be forced to choose between \"ML only\" systems with unacceptably high error rates or \"human only\" systems that are expensive and difficult to scale, and that slow down decision making.

This API reference includes information about API actions and data types you can use to interact with Augmented AI programmatically.

You can create a flow definition against the Augmented AI API. Provide the Amazon Resource Name (ARN) of a flow definition to integrate AI service APIs, such as Textract.AnalyzeDocument and Rekognition.DetectModerationLabels. These AI services, in turn, invoke the StartHumanLoop API, which evaluates conditions under which humans will be invoked. If humans are required, Augmented AI creates a human loop. Results of human work are available asynchronously in Amazon Simple Storage Service (Amazon S3). You can use Amazon CloudWatch Events to detect human work results.

You can find additional Augmented AI API documentation in the following reference guides: Amazon Rekognition, Amazon SageMaker, and Amazon Textract.

" + "documentation":"

Amazon Augmented AI (Augmented AI) (Preview) is a service that adds human judgment to any machine learning application. Human reviewers can take over when an AI application can't evaluate data with a high degree of confidence.

From fraudulent bank transaction identification to document processing to image analysis, machine learning models can be trained to make decisions as well as or better than a human. Nevertheless, some decisions require contextual interpretation, such as when you need to decide whether an image is appropriate for a given audience. Content moderation guidelines are nuanced and highly dependent on context, and they vary between countries. When trying to apply AI in these situations, you can be forced to choose between \"ML only\" systems with unacceptably high error rates or \"human only\" systems that are expensive and difficult to scale, and that slow down decision making.

This API reference includes information about API actions and data types you can use to interact with Augmented AI programmatically.

You can create a flow definition against the Augmented AI API. Provide the Amazon Resource Name (ARN) of a flow definition to integrate AI service APIs, such as Textract.AnalyzeDocument and Rekognition.DetectModerationLabels. These AI services, in turn, invoke the StartHumanLoop API, which evaluates conditions under which humans will be invoked. If humans are required, Augmented AI creates a human loop. Results of human work are available asynchronously in Amazon Simple Storage Service (Amazon S3). You can use Amazon CloudWatch Events to detect human work results.

You can find additional Augmented AI API documentation in the following reference guides: Amazon Rekognition, Amazon SageMaker, and Amazon Textract.

" } diff --git a/botocore/data/sagemaker/2017-07-24/service-2.json b/botocore/data/sagemaker/2017-07-24/service-2.json index b2d8a724..bebfd2a2 100644 --- a/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/botocore/data/sagemaker/2017-07-24/service-2.json @@ -125,7 +125,7 @@ "errors":[ {"shape":"ResourceLimitExceeded"} ], - "documentation":"

Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API.

Use this API only for hosting models using Amazon SageMaker hosting services.

You must not delete an EndpointConfig in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

The endpoint name must be unique within an AWS Region in your AWS account.

When it receives the request, Amazon SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.

When Amazon SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. Amazon SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API.

For an example, see Exercise 1: Using the K-Means Algorithm Provided by Amazon SageMaker.

If any of the models hosted at this endpoint get model data from an Amazon S3 location, Amazon SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provided. AWS STS is activated in your IAM user account by default. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region. For more information, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide.

" + "documentation":"

Creates an endpoint using the endpoint configuration specified in the request. Amazon SageMaker uses the endpoint to provision resources and deploy models. You create the endpoint configuration with the CreateEndpointConfig API.

Use this API to deploy models using Amazon SageMaker hosting services.

For an example that calls this method when deploying a model to Amazon SageMaker hosting services, see Deploy the Model to Amazon SageMaker Hosting Services (AWS SDK for Python (Boto 3)).

You must not delete an EndpointConfig that is in use by an endpoint that is live or while the UpdateEndpoint or CreateEndpoint operations are being performed on the endpoint. To update an endpoint, you must create a new EndpointConfig.

The endpoint name must be unique within an AWS Region in your AWS account.

When it receives the request, Amazon SageMaker creates the endpoint, launches the resources (ML compute instances), and deploys the model(s) on them.

When Amazon SageMaker receives the request, it sets the endpoint status to Creating. After it creates the endpoint, it sets the status to InService. Amazon SageMaker can then process incoming requests for inferences. To check the status of an endpoint, use the DescribeEndpoint API.

If any of the models hosted at this endpoint get model data from an Amazon S3 location, Amazon SageMaker uses AWS Security Token Service to download model artifacts from the S3 path you provided. AWS STS is activated in your IAM user account by default. If you previously deactivated AWS STS for a region, you need to reactivate AWS STS for that region. For more information, see Activating and Deactivating AWS STS in an AWS Region in the AWS Identity and Access Management User Guide.

" }, "CreateEndpointConfig":{ "name":"CreateEndpointConfig", @@ -138,7 +138,7 @@ "errors":[ {"shape":"ResourceLimitExceeded"} ], - "documentation":"

Creates an endpoint configuration that Amazon SageMaker hosting services uses to deploy models. In the configuration, you identify one or more models, created using the CreateModel API, to deploy and the resources that you want Amazon SageMaker to provision. Then you call the CreateEndpoint API.

Use this API only if you want to use Amazon SageMaker hosting services to deploy models into production.

In the request, you define one or more ProductionVariants, each of which identifies a model. Each ProductionVariant parameter also describes the resources that you want Amazon SageMaker to provision. This includes the number and type of ML compute instances to deploy.

If you are hosting multiple models, you also assign a VariantWeight to specify how much traffic you want to allocate to each model. For example, suppose that you want to host two models, A and B, and you assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker distributes two-thirds of the traffic to Model A, and one-third to model B.

" + "documentation":"

Creates an endpoint configuration that Amazon SageMaker hosting services uses to deploy models. In the configuration, you identify one or more models, created using the CreateModel API, to deploy and the resources that you want Amazon SageMaker to provision. Then you call the CreateEndpoint API.

Use this API if you want to use Amazon SageMaker hosting services to deploy models into production.

In the request, you define a ProductionVariant, for each model that you want to deploy. Each ProductionVariant parameter also describes the resources that you want Amazon SageMaker to provision. This includes the number and type of ML compute instances to deploy.

If you are hosting multiple models, you also assign a VariantWeight to specify how much traffic you want to allocate to each model. For example, suppose that you want to host two models, A and B, and you assign traffic weight 2 for model A and 1 for model B. Amazon SageMaker distributes two-thirds of the traffic to Model A, and one-third to model B.

For an example that calls this method when deploying a model to Amazon SageMaker hosting services, see Deploy the Model to Amazon SageMaker Hosting Services (AWS SDK for Python (Boto 3)).

" }, "CreateExperiment":{ "name":"CreateExperiment", @@ -220,7 +220,7 @@ "errors":[ {"shape":"ResourceLimitExceeded"} ], - "documentation":"

Creates a model in Amazon SageMaker. In the request, you name the model and describe a primary container. For the primary container, you specify the docker image containing inference code, artifacts (from prior training), and custom environment map that the inference code uses when you deploy the model for predictions.

Use this API to create a model if you want to use Amazon SageMaker hosting services or run a batch transform job.

To host your model, you create an endpoint configuration with the CreateEndpointConfig API, and then create an endpoint with the CreateEndpoint API. Amazon SageMaker then deploys all of the containers that you defined for the model in the hosting environment.

To run a batch transform using your model, you start a job with the CreateTransformJob API. Amazon SageMaker uses your model and your dataset to get inferences which are then saved to a specified S3 location.

In the CreateModel request, you must define a container with the PrimaryContainer parameter.

In the request, you also provide an IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute hosting instances or for batch transform jobs. In addition, you also use the IAM role to manage permissions the inference code needs. For example, if the inference code access any other AWS resources, you grant necessary permissions via this role.

" + "documentation":"

Creates a model in Amazon SageMaker. In the request, you name the model and describe a primary container. For the primary container, you specify the Docker image that contains inference code, artifacts (from prior training), and a custom environment map that the inference code uses when you deploy the model for predictions.

Use this API to create a model if you want to use Amazon SageMaker hosting services or run a batch transform job.

To host your model, you create an endpoint configuration with the CreateEndpointConfig API, and then create an endpoint with the CreateEndpoint API. Amazon SageMaker then deploys all of the containers that you defined for the model in the hosting environment.

For an example that calls this method when deploying a model to Amazon SageMaker hosting services, see Deploy the Model to Amazon SageMaker Hosting Services (AWS SDK for Python (Boto 3)).

To run a batch transform using your model, you start a job with the CreateTransformJob API. Amazon SageMaker uses your model and your dataset to get inferences which are then saved to a specified S3 location.

In the CreateModel request, you must define a container with the PrimaryContainer parameter.

In the request, you also provide an IAM role that Amazon SageMaker can assume to access model artifacts and docker image for deployment on ML compute hosting instances or for batch transform jobs. In addition, you also use the IAM role to manage permissions the inference code needs. For example, if the inference code access any other AWS resources, you grant necessary permissions via this role.

" }, "CreateModelPackage":{ "name":"CreateModelPackage", @@ -922,7 +922,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

Disassociates a trial component from a trial. This doesn't effect other trials the component is associated with. Before you can delete a component, you must disassociate the component from all trials it is associated with. To associate a trial component with a trial, call the AssociateTrialComponent API.

" + "documentation":"

Disassociates a trial component from a trial. This doesn't effect other trials the component is associated with. Before you can delete a component, you must disassociate the component from all trials it is associated with. To associate a trial component with a trial, call the AssociateTrialComponent API.

To get a list of the trials a component is associated with, use the Search API. Specify ExperimentTrialComponent for the Resource parameter. The list appears in the response under Results.TrialComponent.Parents.

" }, "GetSearchSuggestions":{ "name":"GetSearchSuggestions", @@ -1237,7 +1237,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

Lists the trials in your account. Specify an experiment name to limit the list to the trials that are part of that experiment. The list can be filtered to show only trials that were created in a specific time range. The list can be sorted by trial name or creation time.

" + "documentation":"

Lists the trials in your account. Specify an experiment name to limit the list to the trials that are part of that experiment. Specify a trial component name to limit the list to the trials that associated with that trial component. The list can be filtered to show only trials that were created in a specific time range. The list can be sorted by trial name or creation time.

" }, "ListUserProfiles":{ "name":"ListUserProfiles", @@ -1804,7 +1804,7 @@ "members":{ "AnnotationConsolidationLambdaArn":{ "shape":"LambdaFunctionArn", - "documentation":"

The Amazon Resource Name (ARN) of a Lambda function implements the logic for annotation consolidation.

For the built-in bounding box, image classification, semantic segmentation, and text classification task types, Amazon SageMaker Ground Truth provides the following Lambda functions:

  • Bounding box - Finds the most similar boxes from different workers based on the Jaccard index of the boxes.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox

  • Image classification - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass

  • Semantic segmentation - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as \"votes\" for the correct label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation

  • Text classification - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass

  • Named entity recognition - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition

  • Bounding box verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox

  • Semantic segmentation verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for semantic segmentation labels based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation

  • Bounding box adjustment - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox

  • Semantic segmentation adjustment - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as \"votes\" for the correct label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation

For more information, see Annotation Consolidation.

" + "documentation":"

The Amazon Resource Name (ARN) of a Lambda function implements the logic for annotation consolidation.

For the built-in bounding box, image classification, semantic segmentation, and text classification task types, Amazon SageMaker Ground Truth provides the following Lambda functions:

  • Bounding box - Finds the most similar boxes from different workers based on the Jaccard index of the boxes.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-BoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-BoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-BoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-BoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-BoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-BoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-BoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-BoundingBox

  • Image classification - Uses a variant of the Expectation Maximization approach to estimate the true class of an image based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-ImageMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-ImageMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-ImageMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-ImageMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-ImageMultiClass

  • Semantic segmentation - Treats each pixel in an image as a multi-class classification and treats pixel annotations from workers as \"votes\" for the correct label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-SemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-SemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-SemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-SemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-SemanticSegmentation

  • Text classification - Uses a variant of the Expectation Maximization approach to estimate the true class of text based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-TextMultiClass

    arn:aws:lambda:us-east-2:266458841044:function:ACS-TextMultiClass

    arn:aws:lambda:us-west-2:081040173940:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-TextMultiClass

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-TextMultiClass

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-TextMultiClass

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-TextMultiClass

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-TextMultiClass

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-TextMultiClass

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-TextMultiClass

  • Named entity recognition - Groups similar selections and calculates aggregate boundaries, resolving to most-assigned label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-east-2:266458841044:function:ACS-NamedEntityRecognition

    arn:aws:lambda:us-west-2:081040173940:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-NamedEntityRecognition

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-NamedEntityRecognition

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-NamedEntityRecognition

  • Bounding box verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgement for bounding box labels based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationBoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationBoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationBoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationBoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationBoundingBox

  • Semantic segmentation verification - Uses a variant of the Expectation Maximization approach to estimate the true class of verification judgment for semantic segmentation labels based on annotations from individual workers.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-VerificationSemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-VerificationSemanticSegmentation

  • Bounding box adjustment - Finds the most similar boxes from different workers based on the Jaccard index of the adjusted annotations.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentBoundingBox

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentBoundingBox

  • Semantic segmentation adjustment - Treats each pixel in an image as a multi-class classification and treats pixel adjusted annotations from workers as \"votes\" for the correct label.

    arn:aws:lambda:us-east-1:432418664414:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:us-east-2:266458841044:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:us-west-2:081040173940:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-west-1:568282634449:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-northeast-1:477331159723:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-southeast-2:454466003867:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-south-1:565803892007:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-central-1:203001061592:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-northeast-2:845288260483:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:eu-west-2:487402164563:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ap-southeast-1:377565633583:function:ACS-AdjustmentSemanticSegmentation

    arn:aws:lambda:ca-central-1:918755190332:function:ACS-AdjustmentSemanticSegmentation

For more information, see Annotation Consolidation.

" } }, "documentation":"

Configures how labels are consolidated across human workers.

" @@ -2087,7 +2087,7 @@ }, "TargetAttributeName":{ "shape":"TargetAttributeName", - "documentation":"

The name of the target variable in supervised learning, a.k.a. ‘y’.

" + "documentation":"

The name of the target variable in supervised learning, a.k.a. 'y'.

" } }, "documentation":"

Similar to Channel. A channel is a named input source that training algorithms can consume. Refer to Channel for detailed descriptions.

" @@ -4983,7 +4983,7 @@ }, "ResolvedAttributes":{ "shape":"ResolvedAttributes", - "documentation":"

This contains ProblemType, AutoMLJobObjective and CompletionCriteria. They’re auto-inferred values, if not provided by you. If you do provide them, then they’ll be the same as provided.

" + "documentation":"

This contains ProblemType, AutoMLJobObjective and CompletionCriteria. They're auto-inferred values, if not provided by you. If you do provide them, then they'll be the same as provided.

" } } }, @@ -5586,7 +5586,7 @@ }, "LabelCategoryConfigS3Uri":{ "shape":"S3Uri", - "documentation":"

The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits:

  • Semantic segmentation labeling jobs using automated labeling: 20 labels

  • Box bounding labeling jobs (all): 10 lables

The file is a JSON structure in the following format:

{

\"document-version\": \"2018-11-28\"

\"labels\": [

{

\"label\": \"label 1\"

},

{

\"label\": \"label 2\"

},

...

{

\"label\": \"label n\"

}

]

}

" + "documentation":"

The S3 location of the JSON file that defines the categories used to label data objects. Please note the following label-category limits:

  • Semantic segmentation labeling jobs using automated labeling: 20 labels

  • Box bounding labeling jobs (all): 10 labels

The file is a JSON structure in the following format:

{

\"document-version\": \"2018-11-28\"

\"labels\": [

{

\"label\": \"label 1\"

},

{

\"label\": \"label 2\"

},

...

{

\"label\": \"label n\"

}

]

}

" }, "StoppingConditions":{ "shape":"LabelingJobStoppingConditions", @@ -6487,7 +6487,7 @@ "members":{ "WorkforceName":{ "shape":"WorkforceName", - "documentation":"

The name of the private workforce whose access you want to restrict. WorkforceName is automatically set to \"default\" when a workforce is created and cannot be modified.

" + "documentation":"

The name of the private workforce whose access you want to restrict. WorkforceName is automatically set to default when a workforce is created and cannot be modified.

" } } }, @@ -6497,7 +6497,7 @@ "members":{ "Workforce":{ "shape":"Workforce", - "documentation":"

A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each AWS Region. By default, any workforce related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

" + "documentation":"

A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each AWS Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

" } } }, @@ -6932,26 +6932,20 @@ "type":"structure", "members":{ "ExperimentName":{ - "shape":"ExperimentConfigName", + "shape":"ExperimentEntityName", "documentation":"

The name of the experiment.

" }, "TrialName":{ - "shape":"ExperimentConfigName", + "shape":"ExperimentEntityName", "documentation":"

The name of the trial.

" }, "TrialComponentDisplayName":{ - "shape":"ExperimentConfigName", + "shape":"ExperimentEntityName", "documentation":"

Display name for the trial component.

" } }, "documentation":"

Configuration for the experiment.

" }, - "ExperimentConfigName":{ - "type":"string", - "max":64, - "min":1, - "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" - }, "ExperimentDescription":{ "type":"string", "max":3072, @@ -7395,7 +7389,7 @@ }, "TaskCount":{ "shape":"FlowDefinitionTaskCount", - "documentation":"

The number of human tasks.

" + "documentation":"

The number of distinct workers who will perform the same task on each object. For example, if TaskCount is set to 3 for an image classification labeling job, three workers will classify each input image. Increasing TaskCount can improve label accuracy.

" }, "TaskAvailabilityLifetimeInSeconds":{ "shape":"FlowDefinitionTaskAvailabilityLifetimeInSeconds", @@ -9939,6 +9933,10 @@ "shape":"ExperimentEntityName", "documentation":"

A filter that returns only trials that are part of the specified experiment.

" }, + "TrialComponentName":{ + "shape":"ExperimentEntityName", + "documentation":"

A filter that returns only trials that are associated with the specified trial component.

" + }, "CreatedAfter":{ "shape":"Timestamp", "documentation":"

A filter that returns only trials created after the specified time.

" @@ -12478,7 +12476,7 @@ "members":{ "Cidrs":{ "shape":"Cidrs", - "documentation":"

A list of one to four Classless Inter-Domain Routing (CIDR) values.

Maximum: 4 CIDR values

The following Length Constraints apply to individual CIDR values in the CIDR value list.

" + "documentation":"

A list of one to four Classless Inter-Domain Routing (CIDR) values.

Maximum: Four CIDR values

The following Length Constraints apply to individual CIDR values in the CIDR value list.

" } }, "documentation":"

A list of IP address ranges (CIDRs). Used to create an allow list of IP addresses for a private workforce. For more information, see .

" @@ -12759,14 +12757,17 @@ "jetson_tx1", "jetson_tx2", "jetson_nano", + "jetson_xavier", "rasp3b", + "imx8qm", "deeplens", "rk3399", "rk3288", "aisage", "sbe_c", "qcs605", - "qcs603" + "qcs603", + "amba_cv22" ] }, "TargetObjectiveMetricValue":{"type":"float"}, @@ -14025,6 +14026,14 @@ "EndpointConfigName":{ "shape":"EndpointConfigName", "documentation":"

The name of the new endpoint configuration.

" + }, + "RetainAllVariantProperties":{ + "shape":"Boolean", + "documentation":"

When updating endpoint resources, enables or disables the retention of variant properties, such as the instance count or the variant weight. To retain the variant properties of an endpoint when updating it, set RetainAllVariantProperties to true. To use the variant properties specified in a new EndpointConfig call when updating an endpoint, set RetainAllVariantProperties to false.

" + }, + "ExcludeRetainedVariantProperties":{ + "shape":"VariantPropertyList", + "documentation":"

When you are updating endpoint resources with RetainAllVariantProperties, whose value is set to true, ExcludeRetainedVariantProperties specifies the list of type VariantProperty to override with the values provided by EndpointConfig. If you don't specify a value for ExcludeAllVariantProperties, no variant properties are overridden.

" } } }, @@ -14323,11 +14332,11 @@ "members":{ "WorkforceName":{ "shape":"WorkforceName", - "documentation":"

The name of the private workforce whose access you want to restrict. WorkforceName is automatically set to \"default\" when a workforce is created and cannot be modified.

" + "documentation":"

The name of the private workforce whose access you want to restrict. WorkforceName is automatically set to default when a workforce is created and cannot be modified.

" }, "SourceIpConfig":{ "shape":"SourceIpConfig", - "documentation":"

A list of one to four worker IP address ranges (CIDRs) that can be used to access tasks assigned to this workforce.

Maximum: 4 CIDR values

" + "documentation":"

A list of one to four worker IP address ranges (CIDRs) that can be used to access tasks assigned to this workforce.

Maximum: Four CIDR values

" } } }, @@ -14337,7 +14346,7 @@ "members":{ "Workforce":{ "shape":"Workforce", - "documentation":"

A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each AWS Region. By default, any workforce related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

" + "documentation":"

A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each AWS Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

" } } }, @@ -14487,6 +14496,31 @@ "max":63, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" }, + "VariantProperty":{ + "type":"structure", + "required":["VariantPropertyType"], + "members":{ + "VariantPropertyType":{ + "shape":"VariantPropertyType", + "documentation":"

The type of variant property. The supported values are:

" + } + }, + "documentation":"

Specifies a production variant property type for an Endpoint.

If you are updating an endpoint with the RetainAllVariantProperties option set to true, the VariantProperty objects listed in ExcludeRetainedVariantProperties override the existing variant properties of the endpoint.

" + }, + "VariantPropertyList":{ + "type":"list", + "member":{"shape":"VariantProperty"}, + "max":3, + "min":0 + }, + "VariantPropertyType":{ + "type":"string", + "enum":[ + "DesiredInstanceCount", + "DesiredWeight", + "DataCaptureConfig" + ] + }, "VariantWeight":{ "type":"float", "min":0 @@ -14508,7 +14542,7 @@ }, "Subnets":{ "shape":"Subnets", - "documentation":"

The ID of the subnets in the VPC to which you want to connect your training job or model.

Amazon EC2 P3 accelerated computing instances are not available in the c/d/e availability zones of region us-east-1. If you want to create endpoints with P3 instances in VPC mode in region us-east-1, create subnets in a/b/f availability zones instead.

" + "documentation":"

The ID of the subnets in the VPC to which you want to connect your training job or model. For information about the availability of specific instance types, see Supported Instance Types and Availability Zones.

" } }, "documentation":"

Specifies a VPC that your training jobs and hosted models have access to. Control access to and from your training and model containers by configuring the VPC. For more information, see Protect Endpoints by Using an Amazon Virtual Private Cloud and Protect Training Jobs by Using an Amazon Virtual Private Cloud.

" @@ -14533,7 +14567,7 @@ "members":{ "WorkforceName":{ "shape":"WorkforceName", - "documentation":"

The name of the private workforce whose access you want to restrict. WorkforceName is automatically set to \"default\" when a workforce is created and cannot be modified.

" + "documentation":"

The name of the private workforce whose access you want to restrict. WorkforceName is automatically set to default when a workforce is created and cannot be modified.

" }, "WorkforceArn":{ "shape":"WorkforceArn", @@ -14548,7 +14582,7 @@ "documentation":"

A list of one to four IP address ranges (CIDRs) to be added to the workforce allow list.

" } }, - "documentation":"

A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each AWS Region. By default, any workforce related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

" + "documentation":"

A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each AWS Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

" }, "WorkforceArn":{ "type":"string", diff --git a/botocore/data/savingsplans/2019-06-28/service-2.json b/botocore/data/savingsplans/2019-06-28/service-2.json index 27306bff..7287a3b9 100644 --- a/botocore/data/savingsplans/2019-06-28/service-2.json +++ b/botocore/data/savingsplans/2019-06-28/service-2.json @@ -826,7 +826,8 @@ "type":"string", "enum":[ "EC2", - "Fargate" + "Fargate", + "Lambda" ] }, "SavingsPlanProductTypeList":{ @@ -959,7 +960,8 @@ "type":"string", "enum":[ "AmazonEC2", - "AmazonECS" + "AmazonECS", + "AWSLambda" ] }, "SavingsPlanRateServiceCodeList":{ @@ -968,7 +970,11 @@ }, "SavingsPlanRateUnit":{ "type":"string", - "enum":["Hrs"] + "enum":[ + "Hrs", + "Lambda-GB-Second", + "Request" + ] }, "SavingsPlanRateUsageType":{ "type":"string", diff --git a/botocore/data/secretsmanager/2017-10-17/service-2.json b/botocore/data/secretsmanager/2017-10-17/service-2.json index ec3075e5..b39a8876 100644 --- a/botocore/data/secretsmanager/2017-10-17/service-2.json +++ b/botocore/data/secretsmanager/2017-10-17/service-2.json @@ -542,7 +542,10 @@ "shape":"SecretVersionsToStagesMapType", "documentation":"

A list of all of the currently assigned VersionStage staging labels and the VersionId that each is attached to. Staging labels are used to keep track of the different versions during the rotation process.

A version that does not have any staging labels attached is considered deprecated and subject to deletion. Such versions are not included in this list.

" }, - "OwningService":{"shape":"OwningServiceType"} + "OwningService":{ + "shape":"OwningServiceType", + "documentation":"

Returns the name of the service that created this secret.

" + } } }, "DescriptionType":{ @@ -1057,7 +1060,7 @@ }, "SecretBinaryType":{ "type":"blob", - "max":10240, + "max":65536, "min":0, "sensitive":true }, @@ -1087,7 +1090,7 @@ }, "RotationEnabled":{ "shape":"RotationEnabledType", - "documentation":"

Indicated whether automatic, scheduled rotation is enabled for this secret.

", + "documentation":"

Indicates whether automatic, scheduled rotation is enabled for this secret.

", "box":true }, "RotationLambdaARN":{ @@ -1125,7 +1128,10 @@ "shape":"SecretVersionsToStagesMapType", "documentation":"

A list of all of the currently assigned SecretVersionStage staging labels and the SecretVersionId that each is attached to. Staging labels are used to keep track of the different versions during the rotation process.

A version that does not have any SecretVersionStage is considered deprecated and subject to deletion. Such versions are not included in this list.

" }, - "OwningService":{"shape":"OwningServiceType"} + "OwningService":{ + "shape":"OwningServiceType", + "documentation":"

Returns the name of the service that created the secret.

" + } }, "documentation":"

A structure that contains the details about a secret. It does not include the encrypted SecretString and SecretBinary values. To get those values, use the GetSecretValue operation.

" }, @@ -1140,7 +1146,7 @@ }, "SecretStringType":{ "type":"string", - "max":10240, + "max":65536, "min":0, "sensitive":true }, diff --git a/botocore/data/securityhub/2018-10-26/service-2.json b/botocore/data/securityhub/2018-10-26/service-2.json index 41411bdb..351ca586 100644 --- a/botocore/data/securityhub/2018-10-26/service-2.json +++ b/botocore/data/securityhub/2018-10-26/service-2.json @@ -43,7 +43,7 @@ {"shape":"InvalidAccessException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Disables the standards specified by the provided StandardsSubscriptionArns.

For more information, see Standards Supported in AWS Security Hub.

" + "documentation":"

Disables the standards specified by the provided StandardsSubscriptionArns.

For more information, see Security Standards section of the AWS Security Hub User Guide.

" }, "BatchEnableStandards":{ "name":"BatchEnableStandards", @@ -59,7 +59,7 @@ {"shape":"InvalidAccessException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Enables the standards specified by the provided standardsArn.

In this release, only CIS AWS Foundations standards are supported.

For more information, see Standards Supported in AWS Security Hub.

" + "documentation":"

Enables the standards specified by the provided StandardsArn. To obtain the ARN for a standard, use the DescribeStandards operation.

For more information, see the Security Standards section of the AWS Security Hub User Guide.

" }, "BatchImportFindings":{ "name":"BatchImportFindings", @@ -126,7 +126,7 @@ {"shape":"InvalidAccessException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Creates a member association in Security Hub between the specified accounts and the account used to make the request, which is the master account. To successfully create a member, you must use this action from an account that already has Security Hub enabled. To enable Security Hub, you can use the EnableSecurityHub operation.

After you use CreateMembers to create member account associations in Security Hub, you must use the InviteMembers operation to invite the accounts to enable Security Hub and become member accounts in Security Hub.

If the account owner accepts the invitation, the account becomes a member account in Security Hub, and a permission policy is added that permits the master account to view the findings generated in the member account. When Security Hub is enabled in the invited account, findings start to be sent to both the member and master accounts.

To remove the association between the master and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

" + "documentation":"

Creates a member association in Security Hub between the specified accounts and the account used to make the request, which is the master account. To successfully create a member, you must use this action from an account that already has Security Hub enabled. To enable Security Hub, you can use the EnableSecurityHub operation.

After you use CreateMembers to create member account associations in Security Hub, you must use the InviteMembers operation to invite the accounts to enable Security Hub and become member accounts in Security Hub.

If the account owner accepts the invitation, the account becomes a member account in Security Hub, and a permission policy is added that permits the master account to view the findings generated in the member account. When Security Hub is enabled in the invited account, findings start to be sent to both the member and master accounts.

To remove the association between the master and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

" }, "DeclineInvitations":{ "name":"DeclineInvitations", @@ -260,6 +260,21 @@ ], "documentation":"

Returns information about the available products that you can subscribe to and integrate with Security Hub in order to consolidate findings.

" }, + "DescribeStandards":{ + "name":"DescribeStandards", + "http":{ + "method":"GET", + "requestUri":"/standards" + }, + "input":{"shape":"DescribeStandardsRequest"}, + "output":{"shape":"DescribeStandardsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"InvalidInputException"}, + {"shape":"InvalidAccessException"} + ], + "documentation":"

Returns a list of the available standards in Security Hub.

For each standard, the results include the standard ARN, the name, and a description.

" + }, "DescribeStandardsControls":{ "name":"DescribeStandardsControls", "http":{ @@ -274,7 +289,7 @@ {"shape":"InvalidAccessException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Returns a list of compliance standards controls.

For each control, the results include information about whether it is currently enabled, the severity, and a link to remediation information.

" + "documentation":"

Returns a list of security standards controls.

For each control, the results include information about whether it is currently enabled, the severity, and a link to remediation information.

" }, "DisableImportFindingsForProduct":{ "name":"DisableImportFindingsForProduct", @@ -375,7 +390,7 @@ {"shape":"ResourceConflictException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Enables Security Hub for your account in the current Region or the Region you specify in the request.

Enabling Security Hub also enables the CIS AWS Foundations standard.

When you enable Security Hub, you grant to Security Hub the permissions necessary to gather findings from AWS Config, Amazon GuardDuty, Amazon Inspector, and Amazon Macie.

To learn more, see Setting Up AWS Security Hub.

" + "documentation":"

Enables Security Hub for your account in the current Region or the Region you specify in the request.

When you enable Security Hub, you grant to Security Hub the permissions necessary to gather findings from AWS Config, Amazon GuardDuty, Amazon Inspector, and Amazon Macie.

When you use the EnableSecurityHub operation to enable Security Hub, you also automatically enable the CIS AWS Foundations standard. You do not enable the Payment Card Industry Data Security Standard (PCI DSS) standard. To enable a standard, use the BatchEnableStandards operation. To disable a standard, use the BatchDisableStandards operation.

To learn more, see Setting Up AWS Security Hub in the AWS Security Hub User Guide.

" }, "GetEnabledStandards":{ "name":"GetEnabledStandards", @@ -508,7 +523,7 @@ {"shape":"LimitExceededException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Invites other AWS accounts to become member accounts for the Security Hub master account that the invitation is sent from.

Before you can use this action to invite a member, you must first use the CreateMembers action to create the member account in Security Hub.

When the account owner accepts the invitation to become a member account and enables Security Hub, the master account can view the findings generated from the member account.

" + "documentation":"

Invites other AWS accounts to become member accounts for the Security Hub master account that the invitation is sent from.

Before you can use this action to invite a member, you must first use the CreateMembers action to create the member account in Security Hub.

When the account owner accepts the invitation to become a member account and enables Security Hub, the master account can view the findings generated from the member account.

" }, "ListEnabledProductsForImport":{ "name":"ListEnabledProductsForImport", @@ -667,7 +682,7 @@ {"shape":"InvalidAccessException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Used to control whether an individual compliance standard control is enabled or disabled.

" + "documentation":"

Used to control whether an individual security standard control is enabled or disabled.

" } }, "shapes":{ @@ -1679,7 +1694,7 @@ }, "CompatibleRuntimes":{ "shape":"NonEmptyStringList", - "documentation":"

The layer's compatible runtimes. Maximum number of 5 items.

Valid values: nodejs8.10 | nodejs10.x | nodejs12.x | java8 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | dotnetcore1.0 | dotnetcore2.1 | go1.x | ruby2.5 | provided

" + "documentation":"

The layer's compatible runtimes. Maximum number of 5 items.

Valid values: nodejs10.x | nodejs12.x | java8 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | dotnetcore1.0 | dotnetcore2.1 | go1.x | ruby2.5 | provided

" }, "CreatedDate":{ "shape":"NonEmptyString", @@ -1839,10 +1854,86 @@ "OwnerName":{ "shape":"NonEmptyString", "documentation":"

The display name of the owner of the S3 bucket.

" + }, + "CreatedAt":{ + "shape":"NonEmptyString", + "documentation":"

The date and time when the S3 bucket was created.

" + }, + "ServerSideEncryptionConfiguration":{ + "shape":"AwsS3BucketServerSideEncryptionConfiguration", + "documentation":"

The encryption rules that are applied to the S3 bucket.

" } }, "documentation":"

The details of an Amazon S3 bucket.

" }, + "AwsS3BucketServerSideEncryptionByDefault":{ + "type":"structure", + "members":{ + "SSEAlgorithm":{ + "shape":"NonEmptyString", + "documentation":"

Server-side encryption algorithm to use for the default encryption.

" + }, + "KMSMasterKeyID":{ + "shape":"NonEmptyString", + "documentation":"

AWS KMS customer master key (CMK) ID to use for the default encryption.

" + } + }, + "documentation":"

Specifies the default server-side encryption to apply to new objects in the bucket.

" + }, + "AwsS3BucketServerSideEncryptionConfiguration":{ + "type":"structure", + "members":{ + "Rules":{ + "shape":"AwsS3BucketServerSideEncryptionRules", + "documentation":"

The encryption rules that are applied to the S3 bucket.

" + } + }, + "documentation":"

The encryption configuration for the S3 bucket.

" + }, + "AwsS3BucketServerSideEncryptionRule":{ + "type":"structure", + "members":{ + "ApplyServerSideEncryptionByDefault":{ + "shape":"AwsS3BucketServerSideEncryptionByDefault", + "documentation":"

Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption is applied.

" + } + }, + "documentation":"

An encryption rule to apply to the S3 bucket.

" + }, + "AwsS3BucketServerSideEncryptionRules":{ + "type":"list", + "member":{"shape":"AwsS3BucketServerSideEncryptionRule"} + }, + "AwsS3ObjectDetails":{ + "type":"structure", + "members":{ + "LastModified":{ + "shape":"NonEmptyString", + "documentation":"

The date and time when the object was last modified.

" + }, + "ETag":{ + "shape":"NonEmptyString", + "documentation":"

The opaque identifier assigned by a web server to a specific version of a resource found at a URL.

" + }, + "VersionId":{ + "shape":"NonEmptyString", + "documentation":"

The version of the object.

" + }, + "ContentType":{ + "shape":"NonEmptyString", + "documentation":"

A standard MIME type describing the format of the object data.

" + }, + "ServerSideEncryption":{ + "shape":"NonEmptyString", + "documentation":"

If the object is stored using server-side encryption, the value of the server-side encryption algorithm used when storing this object in Amazon S3.

" + }, + "SSEKMSKeyId":{ + "shape":"NonEmptyString", + "documentation":"

The identifier of the AWS Key Management Service (AWS KMS) symmetric customer managed customer master key (CMK) that was used for the object.

" + } + }, + "documentation":"

Details about an AWS S3 object.

" + }, "AwsSecurityFinding":{ "type":"structure", "required":[ @@ -1870,7 +1961,7 @@ }, "ProductArn":{ "shape":"NonEmptyString", - "documentation":"

The ARN generated by Security Hub that uniquely identifies a third-party company (security-findings provider) after this provider's product (solution that generates findings) is registered with Security Hub.

" + "documentation":"

The ARN generated by Security Hub that uniquely identifies a product that generates findings. This can be the ARN for a third-party product that is integrated with Security Hub, or the ARN for a custom integration.

" }, "GeneratorId":{ "shape":"NonEmptyString", @@ -1958,7 +2049,7 @@ }, "Compliance":{ "shape":"Compliance", - "documentation":"

This data type is exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard (for example, CIS AWS Foundations). Contains compliance-related finding details.

" + "documentation":"

This data type is exclusive to findings that are generated as the result of a check run against a specific rule in a supported security standard, such as CIS AWS Foundations. Contains security standard-related finding details.

" }, "VerificationState":{ "shape":"VerificationState", @@ -1968,6 +2059,10 @@ "shape":"WorkflowState", "documentation":"

The workflow state of a finding.

" }, + "Workflow":{ + "shape":"Workflow", + "documentation":"

Provides information about the status of the investigation into a finding.

" + }, "RecordState":{ "shape":"RecordState", "documentation":"

The record state of a finding.

" @@ -1981,7 +2076,7 @@ "documentation":"

A user-defined note added to a finding.

" } }, - "documentation":"

Provides consistent format for the contents of the Security Hub-aggregated findings. AwsSecurityFinding format enables you to share findings between AWS security services and third-party solutions, and compliance checks.

A finding is a potential security issue generated either by AWS services (Amazon GuardDuty, Amazon Inspector, and Amazon Macie) or by the integrated third-party solutions and compliance checks.

" + "documentation":"

Provides consistent format for the contents of the Security Hub-aggregated findings. AwsSecurityFinding format enables you to share findings between AWS security services and third-party solutions, and security standards checks.

A finding is a potential security issue generated either by AWS services (Amazon GuardDuty, Amazon Inspector, and Amazon Macie) or by the integrated third-party solutions and standards checks.

" }, "AwsSecurityFindingFilters":{ "type":"structure", @@ -2280,7 +2375,7 @@ }, "ComplianceStatus":{ "shape":"StringFilterList", - "documentation":"

Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard (for example, CIS AWS Foundations). Contains compliance-related finding details.

" + "documentation":"

Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard, such as CIS AWS Foundations. Contains security standard-related finding details.

" }, "VerificationState":{ "shape":"StringFilterList", @@ -2290,6 +2385,10 @@ "shape":"StringFilterList", "documentation":"

The workflow state of a finding.

" }, + "WorkflowStatus":{ + "shape":"StringFilterList", + "documentation":"

The status of the investigation into a finding. Allowed values are the following.

  • NEW - The initial state of a finding, before it is reviewed.

  • NOTIFIED - Indicates that the resource owner has been notified about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner.

  • SUPPRESSED - The finding will not be reviewed again and will not be acted upon.

  • RESOLVED - The finding was reviewed and remediated and is now considered resolved.

" + }, "RecordState":{ "shape":"StringFilterList", "documentation":"

The updated record state for the finding.

" @@ -2468,7 +2567,7 @@ "members":{ "StandardsSubscriptionRequests":{ "shape":"StandardsSubscriptionRequests", - "documentation":"

The list of standards compliance checks to enable.

In this release, Security Hub supports only the CIS AWS Foundations standard.

The ARN for the standard is arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0.

" + "documentation":"

The list of standards checks to enable.

" } } }, @@ -2522,14 +2621,14 @@ "members":{ "Status":{ "shape":"ComplianceStatus", - "documentation":"

The result of a compliance check.

" + "documentation":"

The result of a standards check.

" }, "RelatedRequirements":{ "shape":"RelatedRequirementsList", "documentation":"

List of requirements that are related to a standards control.

" } }, - "documentation":"

Exclusive to findings that are generated as the result of a check run against a specific rule in a supported standard (for example, CIS AWS Foundations). Contains compliance-related finding details.

Values include the following:

  • Allowed values are the following:

    • PASSED - Compliance check passed for all evaluated resources.

    • WARNING - Some information is missing or this check is not supported given your configuration.

    • FAILED - Compliance check failed for at least one evaluated resource.

    • NOT_AVAILABLE - Check could not be performed due to a service outage, API error, or because the result of the AWS Config evaluation was NOT_APPLICABLE. If the AWS Config evaluation result was NOT_APPLICABLE, then after 3 days, Security Hub automatically archives the finding.

" + "documentation":"

Exclusive to findings that are generated as the result of a check run against a specific rule in a supported security standard, such as CIS AWS Foundations. Contains security standard-related finding details.

Values include the following:

  • Allowed values are the following:

    • PASSED - Standards check passed for all evaluated resources.

    • WARNING - Some information is missing or this check is not supported given your configuration.

    • FAILED - Standards check failed for at least one evaluated resource.

    • NOT_AVAILABLE - Check could not be performed due to a service outage, API error, or because the result of the AWS Config evaluation was NOT_APPLICABLE. If the AWS Config evaluation result was NOT_APPLICABLE, then after 3 days, Security Hub automatically archives the finding.

" }, "ComplianceStatus":{ "type":"string", @@ -2800,7 +2899,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The token that is required for pagination. On your first call to the DescribeActionTargets operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

" }, "MaxResults":{ "shape":"MaxResults", @@ -2818,7 +2917,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -2851,7 +2950,7 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

", + "documentation":"

The token that is required for pagination. On your first call to the DescribeProducts operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

", "location":"querystring", "locationName":"NextToken" }, @@ -2873,7 +2972,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -2889,13 +2988,13 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

For requests to get the next page of results, the pagination token that was returned with the previous set of results. The initial request does not include a pagination token.

", + "documentation":"

The token that is required for pagination. On your first call to the DescribeStandardsControls operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

", "location":"querystring", "locationName":"NextToken" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of compliance standard controls to return.

", + "documentation":"

The maximum number of security standard controls to return.

", "location":"querystring", "locationName":"MaxResults" } @@ -2906,11 +3005,41 @@ "members":{ "Controls":{ "shape":"StandardsControls", - "documentation":"

A list of compliance standards controls.

" + "documentation":"

A list of security standards controls.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If there are more compliance standards control remaining in the results, then this is the pagination token to use to request the next page of compliance standard controls.

" + "documentation":"

The pagination token to use to request the next page of results.

" + } + } + }, + "DescribeStandardsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token that is required for pagination. On your first call to the DescribeStandards operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

", + "location":"querystring", + "locationName":"NextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of standards to return.

", + "location":"querystring", + "locationName":"MaxResults" + } + } + }, + "DescribeStandardsResponse":{ + "type":"structure", + "members":{ + "Standards":{ + "shape":"Standards", + "documentation":"

A list of available standards.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -3013,7 +3142,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

Paginates results. On your first call to the GetEnabledStandards operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set nextToken in the request to the value of nextToken from the previous response.

" + "documentation":"

The token that is required for pagination. On your first call to the GetEnabledStandards operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

" }, "MaxResults":{ "shape":"MaxResults", @@ -3030,7 +3159,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -3047,7 +3176,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

Paginates results. On your first call to the GetFindings operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set nextToken in the request to the value of nextToken from the previous response.

" + "documentation":"

The token that is required for pagination. On your first call to the GetFindings operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

" }, "MaxResults":{ "shape":"MaxResults", @@ -3065,7 +3194,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -3096,11 +3225,11 @@ "members":{ "InsightArns":{ "shape":"ArnList", - "documentation":"

The ARNs of the insights to describe.

" + "documentation":"

The ARNs of the insights to describe. If you do not provide any insight ARNs, then GetInsights returns all of your custom insights. It does not return any managed insights.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Paginates results. On your first call to the GetInsights operation, set the value of this parameter to NULL. For subsequent calls to the operation, to continue listing data, set nextToken in the request to the value of nextToken from the previous response.

" + "documentation":"

The token that is required for pagination. On your first call to the GetInsights operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

" }, "MaxResults":{ "shape":"MaxResults", @@ -3118,7 +3247,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -3278,6 +3407,17 @@ "documentation":"

The insight results returned by the GetInsightResults operation.

" }, "Integer":{"type":"integer"}, + "IntegrationType":{ + "type":"string", + "enum":[ + "SEND_FINDINGS_TO_SECURITY_HUB", + "RECEIVE_FINDINGS_FROM_SECURITY_HUB" + ] + }, + "IntegrationTypeList":{ + "type":"list", + "member":{"shape":"IntegrationType"} + }, "InternalException":{ "type":"structure", "members":{ @@ -3395,7 +3535,7 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

Paginates results. On your first call to the ListEnabledProductsForImport operation, set the value of this parameter to NULL. For subsequent calls to the operation, to continue listing data, set nextToken in the request to the value of NextToken from the previous response.

", + "documentation":"

The token that is required for pagination. On your first call to the ListEnabledProductsForImport operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

", "location":"querystring", "locationName":"NextToken" }, @@ -3416,7 +3556,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -3431,7 +3571,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

Paginates results. On your first call to the ListInvitations operation, set the value of this parameter to NULL. For subsequent calls to the operation, to continue listing data, set nextToken in the request to the value of NextToken from the previous response.

", + "documentation":"

The token that is required for pagination. On your first call to the ListInvitations operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

", "location":"querystring", "locationName":"NextToken" } @@ -3446,7 +3586,7 @@ }, "NextToken":{ "shape":"NonEmptyString", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -3455,7 +3595,7 @@ "members":{ "OnlyAssociated":{ "shape":"Boolean", - "documentation":"

Specifies which member accounts to include in the response based on their relationship status with the master account. The default value is TRUE.

If onlyAssociated is set to TRUE, the response includes member accounts whose relationship status with the master is set to ENABLED or DISABLED.

If onlyAssociated is set to FALSE, the response includes all existing member accounts.

", + "documentation":"

Specifies which member accounts to include in the response based on their relationship status with the master account. The default value is TRUE.

If OnlyAssociated is set to TRUE, the response includes member accounts whose relationship status with the master is set to ENABLED or DISABLED.

If OnlyAssociated is set to FALSE, the response includes all existing member accounts.

", "location":"querystring", "locationName":"OnlyAssociated" }, @@ -3467,7 +3607,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

Paginates results. On your first call to the ListMembers operation, set the value of this parameter to NULL. For subsequent calls to the operation, to continue listing data, set nextToken in the request to the value of nextToken from the previous response.

", + "documentation":"

The token that is required for pagination. On your first call to the ListMembers operation, set the value of this parameter to NULL.

For subsequent calls to the operation, to continue listing data, set the value of this parameter to the value returned from the previous response.

", "location":"querystring", "locationName":"NextToken" } @@ -3482,7 +3622,7 @@ }, "NextToken":{ "shape":"NonEmptyString", - "documentation":"

The token that is required for pagination.

" + "documentation":"

The pagination token to use to request the next page of results.

" } } }, @@ -3832,6 +3972,10 @@ "shape":"CategoryList", "documentation":"

The categories assigned to the product.

" }, + "IntegrationTypes":{ + "shape":"IntegrationTypeList", + "documentation":"

The types of integration that the product supports. Available values are the following.

  • SEND_FINDINGS_TO_SECURITY_HUB - Indicates that the integration sends findings to Security Hub.

  • RECEIVE_FINDINGS_FROM_SECURITY_HUB - Indicates that the integration receives findings from Security Hub.

" + }, "MarketplaceUrl":{ "shape":"NonEmptyString", "documentation":"

The URL for the page that contains more information about the product.

" @@ -3995,6 +4139,10 @@ "shape":"AwsS3BucketDetails", "documentation":"

Details about an Amazon S3 Bucket related to a finding.

" }, + "AwsS3Object":{ + "shape":"AwsS3ObjectDetails", + "documentation":"

Details about an Amazon S3 object related to a finding.

" + }, "AwsIamAccessKey":{ "shape":"AwsIamAccessKeyDetails", "documentation":"

Details about an IAM access key related to a finding.

" @@ -4080,19 +4228,32 @@ }, "Severity":{ "type":"structure", - "required":["Normalized"], "members":{ "Product":{ "shape":"Double", "documentation":"

The native severity as defined by the AWS service or integrated partner product that generated the finding.

" }, + "Label":{ + "shape":"SeverityLabel", + "documentation":"

The severity value of the finding. The allowed values are the following.

  • INFORMATIONAL - No issue was found.

  • LOW - The issue does not require action on its own.

  • MEDIUM - The issue must be addressed but not urgently.

  • HIGH - The issue must be addressed as a priority.

  • CRITICAL - The issue must be remediated immediately to avoid it escalating.

" + }, "Normalized":{ "shape":"Integer", - "documentation":"

The normalized severity of a finding.

" + "documentation":"

Deprecated. This attribute is being deprecated. Instead of providing Normalized, provide Label.

If you provide Normalized and do not provide Label, Label is set automatically as follows.

  • 0 - INFORMATIONAL

  • 1–39 - LOW

  • 40–69 - MEDIUM

  • 70–89 - HIGH

  • 90–100 - CRITICAL

" } }, "documentation":"

The severity of the finding.

" }, + "SeverityLabel":{ + "type":"string", + "enum":[ + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ] + }, "SeverityRating":{ "type":"string", "enum":[ @@ -4127,16 +4288,38 @@ "desc" ] }, + "Standard":{ + "type":"structure", + "members":{ + "StandardsArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN of a standard.

" + }, + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the standard.

" + }, + "Description":{ + "shape":"NonEmptyString", + "documentation":"

A description of the standard.

" + } + }, + "documentation":"

Provides information about a specific standard.

" + }, + "Standards":{ + "type":"list", + "member":{"shape":"Standard"} + }, "StandardsControl":{ "type":"structure", "members":{ "StandardsControlArn":{ "shape":"NonEmptyString", - "documentation":"

The ARN of the compliance standard control.

" + "documentation":"

The ARN of the security standard control.

" }, "ControlStatus":{ "shape":"ControlStatus", - "documentation":"

The current status of the compliance standard control. Indicates whether the control is enabled or disabled. Security Hub does not check against disabled controls.

" + "documentation":"

The current status of the security standard control. Indicates whether the control is enabled or disabled. Security Hub does not check against disabled controls.

" }, "DisabledReason":{ "shape":"NonEmptyString", @@ -4144,30 +4327,34 @@ }, "ControlStatusUpdatedAt":{ "shape":"Timestamp", - "documentation":"

The date and time that the status of the compliance standard control was most recently updated.

" + "documentation":"

The date and time that the status of the security standard control was most recently updated.

" }, "ControlId":{ "shape":"NonEmptyString", - "documentation":"

The identifier of the compliance standard control.

" + "documentation":"

The identifier of the security standard control.

" }, "Title":{ "shape":"NonEmptyString", - "documentation":"

The title of the compliance standard control.

" + "documentation":"

The title of the security standard control.

" }, "Description":{ "shape":"NonEmptyString", - "documentation":"

The longer description of the compliance standard control. Provides information about what the control is checking for.

" + "documentation":"

The longer description of the security standard control. Provides information about what the control is checking for.

" }, "RemediationUrl":{ "shape":"NonEmptyString", - "documentation":"

A link to remediation information for the control in the Security Hub user documentation

" + "documentation":"

A link to remediation information for the control in the Security Hub user documentation.

" }, "SeverityRating":{ "shape":"SeverityRating", - "documentation":"

The severity of findings generated from this compliance standard control.

The finding severity is based on an assessment of how easy it would be to compromise AWS resources if the compliance issue is detected.

" + "documentation":"

The severity of findings generated from this security standard control.

The finding severity is based on an assessment of how easy it would be to compromise AWS resources if the issue is detected.

" + }, + "RelatedRequirements":{ + "shape":"RelatedRequirementsList", + "documentation":"

The list of requirements that are related to this control.

" } }, - "documentation":"

Details for an individual compliance standard control.

" + "documentation":"

Details for an individual security standard control.

" }, "StandardsControls":{ "type":"list", @@ -4203,7 +4390,7 @@ }, "StandardsArn":{ "shape":"NonEmptyString", - "documentation":"

The ARN of a standard.

In this release, Security Hub supports only the CIS AWS Foundations standard, which uses the following ARN: arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0.

" + "documentation":"

The ARN of a standard.

" }, "StandardsInput":{ "shape":"StandardsInputParameterMap", @@ -4228,7 +4415,7 @@ "members":{ "StandardsArn":{ "shape":"NonEmptyString", - "documentation":"

The ARN of the standard that you want to enable.

In this release, Security Hub only supports the CIS AWS Foundations standard.

Its ARN is arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0.

" + "documentation":"

The ARN of the standard that you want to enable. To view the list of available standards and their ARNs, use the DescribeStandards operation.

" }, "StandardsInput":{ "shape":"StandardsInputParameterMap", @@ -4501,17 +4688,17 @@ "members":{ "StandardsControlArn":{ "shape":"NonEmptyString", - "documentation":"

The ARN of the compliance standard control to enable or disable.

", + "documentation":"

The ARN of the security standard control to enable or disable.

", "location":"uri", "locationName":"StandardsControlArn" }, "ControlStatus":{ "shape":"ControlStatus", - "documentation":"

The updated status of the compliance standard control.

" + "documentation":"

The updated status of the security standard control.

" }, "DisabledReason":{ "shape":"NonEmptyString", - "documentation":"

A description of the reason why you are disabling a compliance standard control.

" + "documentation":"

A description of the reason why you are disabling a security standard control.

" } } }, @@ -4563,8 +4750,20 @@ }, "documentation":"

Details about an override action for a rule.

" }, + "Workflow":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"WorkflowStatus", + "documentation":"

The status of the investigation into the finding. The allowed values are the following.

  • NEW - The initial state of a finding, before it is reviewed.

  • NOTIFIED - Indicates that you notified the resource owner about the security issue. Used when the initial reviewer is not the resource owner, and needs intervention from the resource owner.

  • SUPPRESSED - The finding will not be reviewed again and will not be acted upon.

  • RESOLVED - The finding was reviewed and remediated and is now considered resolved.

" + } + }, + "documentation":"

Provides information about the status of the investigation into a finding.

" + }, "WorkflowState":{ "type":"string", + "deprecated":true, + "deprecatedMessage":"This field is deprecated, use Workflow.Status instead.", "enum":[ "NEW", "ASSIGNED", @@ -4572,7 +4771,16 @@ "DEFERRED", "RESOLVED" ] + }, + "WorkflowStatus":{ + "type":"string", + "enum":[ + "NEW", + "NOTIFIED", + "RESOLVED", + "SUPPRESSED" + ] } }, - "documentation":"

Security Hub provides you with a comprehensive view of the security state of your AWS environment and resources. It also provides you with the compliance status of your environment based on CIS AWS Foundations compliance checks. Security Hub collects security data from AWS accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the AWS Security Hub User Guide .

When you use operations in the Security Hub API, the requests are executed only in the AWS Region that is currently active or in the specific AWS Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, execute the same command for each Region to apply the change to.

For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of the member account with the master account is created only in the us-west-2 Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from.

The following throttling limits apply to using Security Hub API operations.

  • GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests per second.

  • UpdateFindings - RateLimit of 1 request per second. BurstLimit of 5 requests per second.

  • All other operations - RateLimit of 10 request per second. BurstLimit of 30 requests per second.

" + "documentation":"

Security Hub provides you with a comprehensive view of the security state of your AWS environment and resources. It also provides you with the readiness status of your environment based on controls from supported security standards. Security Hub collects security data from AWS accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the AWS Security Hub User Guide .

When you use operations in the Security Hub API, the requests are executed only in the AWS Region that is currently active or in the specific AWS Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, execute the same command for each Region to apply the change to.

For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of the member account with the master account is created only in the us-west-2 Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from.

The following throttling limits apply to using Security Hub API operations.

  • GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests per second.

  • UpdateFindings - RateLimit of 1 request per second. BurstLimit of 5 requests per second.

  • All other operations - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

" } diff --git a/botocore/data/serverlessrepo/2017-09-08/service-2.json b/botocore/data/serverlessrepo/2017-09-08/service-2.json index 41259c3b..0cbcbfb5 100644 --- a/botocore/data/serverlessrepo/2017-09-08/service-2.json +++ b/botocore/data/serverlessrepo/2017-09-08/service-2.json @@ -388,6 +388,34 @@ } ], "documentation" : "

Sets the permission policy for an application. For the list of actions supported for this operation, see\n Application \n Permissions\n .

" }, + "UnshareApplication" : { + "name" : "UnshareApplication", + "http" : { + "method" : "POST", + "requestUri" : "/applications/{applicationId}/unshare", + "responseCode" : 204 + }, + "input" : { + "shape" : "UnshareApplicationRequest" + }, + "errors" : [ { + "shape" : "NotFoundException", + "documentation" : "

The resource (for example, an access policy statement) specified in the request doesn't exist.

" + }, { + "shape" : "TooManyRequestsException", + "documentation" : "

The client is sending more than the allowed number of requests per unit of time.

" + }, { + "shape" : "BadRequestException", + "documentation" : "

One of the parameters in the request is invalid.

" + }, { + "shape" : "InternalServerErrorException", + "documentation" : "

The AWS Serverless Application Repository service encountered an internal error.

" + }, { + "shape" : "ForbiddenException", + "documentation" : "

The client is not authenticated.

" + } ], + "documentation" : "

Unshares an application from an AWS Organization.

This operation can be called only from the organization's master account.

" + }, "UpdateApplication" : { "name" : "UpdateApplication", "http" : { @@ -568,6 +596,11 @@ "locationName" : "actions", "documentation" : "

For the list of actions supported for this operation, see Application \n Permissions.

" }, + "PrincipalOrgIDs" : { + "shape" : "__listOf__string", + "locationName" : "principalOrgIDs", + "documentation" : "

An array of PrinciplalOrgIDs, which corresponds to AWS IAM aws:PrincipalOrgID global condition key.

" + }, "Principals" : { "shape" : "__listOf__string", "locationName" : "principals", @@ -1879,6 +1912,35 @@ "httpStatusCode" : 429 } }, + "UnshareApplicationInput" : { + "type" : "structure", + "members" : { + "OrganizationId" : { + "shape" : "__string", + "locationName" : "organizationId", + "documentation" : "

The AWS Organization ID to unshare the application from.

" + } + }, + "required" : [ "OrganizationId" ], + "documentation":"

Unshare application request.

" + }, + "UnshareApplicationRequest" : { + "type" : "structure", + "members" : { + "ApplicationId" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "applicationId", + "documentation" : "

The Amazon Resource Name (ARN) of the application.

" + }, + "OrganizationId" : { + "shape" : "__string", + "locationName" : "organizationId", + "documentation" : "

The AWS Organization ID to unshare the application from.

" + } + }, + "required" : [ "ApplicationId", "OrganizationId" ] + }, "UpdateApplicationInput" : { "type" : "structure", "members" : { diff --git a/botocore/data/servicecatalog/2015-12-10/service-2.json b/botocore/data/servicecatalog/2015-12-10/service-2.json index b8fb691f..d95463d7 100644 --- a/botocore/data/servicecatalog/2015-12-10/service-2.json +++ b/botocore/data/servicecatalog/2015-12-10/service-2.json @@ -574,7 +574,8 @@ "errors":[ {"shape":"InvalidParametersException"}, {"shape":"ResourceNotFoundException"} - ] + ], + "documentation":"

Finds the default parameters for a specific self-service action on a specific provisioned product and returns a map of the results to the user.

" }, "DescribeTagOption":{ "name":"DescribeTagOption", @@ -813,7 +814,8 @@ "input":{"shape":"ListPortfolioAccessInput"}, "output":{"shape":"ListPortfolioAccessOutput"}, "errors":[ - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParametersException"} ], "documentation":"

Lists the account IDs that have access to the specified portfolio.

" }, @@ -1522,6 +1524,14 @@ "Owner":{ "shape":"AccountId", "documentation":"

The owner of the constraint.

" + }, + "ProductId":{ + "shape":"Id", + "documentation":"

The identifier of the product the constraint applies to. Note that a constraint applies to a specific instance of a product within a certain portfolio.

" + }, + "PortfolioId":{ + "shape":"Id", + "documentation":"

The identifier of the portfolio the product resides in. The constraint applies only to the instance of the product that lives within this portfolio.

" } }, "documentation":"

Information about a constraint.

" @@ -1978,7 +1988,7 @@ }, "Definition":{ "shape":"ServiceActionDefinitionMap", - "documentation":"

The self-service action definition. Can be one of the following:

Name

The name of the AWS Systems Manager Document. For example, AWS-RestartEC2Instance.

Version

The AWS Systems Manager automation document version. For example, \"Version\": \"1\"

AssumeRole

The Amazon Resource Name (ARN) of the role that performs the self-service actions on your behalf. For example, \"AssumeRole\": \"arn:aws:iam::12345678910:role/ActionRole\".

To reuse the provisioned product launch role, set to \"AssumeRole\": \"LAUNCH_ROLE\".

Parameters

The list of parameters in JSON format.

For example: [{\\\"Name\\\":\\\"InstanceId\\\",\\\"Type\\\":\\\"TARGET\\\"}].

" + "documentation":"

The self-service action definition. Can be one of the following:

Name

The name of the AWS Systems Manager Document. For example, AWS-RestartEC2Instance.

Version

The AWS Systems Manager automation document version. For example, \"Version\": \"1\"

AssumeRole

The Amazon Resource Name (ARN) of the role that performs the self-service actions on your behalf. For example, \"AssumeRole\": \"arn:aws:iam::12345678910:role/ActionRole\".

To reuse the provisioned product launch role, set to \"AssumeRole\": \"LAUNCH_ROLE\".

Parameters

The list of parameters in JSON format.

For example: [{\\\"Name\\\":\\\"InstanceId\\\",\\\"Type\\\":\\\"TARGET\\\"}] or [{\\\"Name\\\":\\\"InstanceId\\\",\\\"Type\\\":\\\"TEXT_VALUE\\\"}].

" }, "Description":{ "shape":"ServiceActionDescription", @@ -2637,15 +2647,27 @@ "ServiceActionId" ], "members":{ - "ProvisionedProductId":{"shape":"Id"}, - "ServiceActionId":{"shape":"Id"}, - "AcceptLanguage":{"shape":"AcceptLanguage"} + "ProvisionedProductId":{ + "shape":"Id", + "documentation":"

The identifier of the provisioned product.

" + }, + "ServiceActionId":{ + "shape":"Id", + "documentation":"

The self-service action identifier.

" + }, + "AcceptLanguage":{ + "shape":"AcceptLanguage", + "documentation":"

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

" + } } }, "DescribeServiceActionExecutionParametersOutput":{ "type":"structure", "members":{ - "ServiceActionParameters":{"shape":"ExecutionParameters"} + "ServiceActionParameters":{ + "shape":"ExecutionParameters", + "documentation":"

The parameters of the self-service action.

" + } } }, "DescribeServiceActionInput":{ @@ -2912,7 +2934,10 @@ "shape":"AcceptLanguage", "documentation":"

The language code.

  • en - English (default)

  • jp - Japanese

  • zh - Chinese

" }, - "Parameters":{"shape":"ExecutionParameterMap"} + "Parameters":{ + "shape":"ExecutionParameterMap", + "documentation":"

A map of all self-service action parameters and their values. If a provided parameter is of a special type, such as TARGET, the provided value will override the default value generated by AWS Service Catalog. If the parameters field is not provided, no additional parameters are passed and default values will be used for any special parameters such as TARGET.

" + } } }, "ExecuteProvisionedProductServiceActionOutput":{ @@ -2927,10 +2952,20 @@ "ExecutionParameter":{ "type":"structure", "members":{ - "Name":{"shape":"ExecutionParameterKey"}, - "Type":{"shape":"ExecutionParameterType"}, - "DefaultValues":{"shape":"ExecutionParameterValueList"} - } + "Name":{ + "shape":"ExecutionParameterKey", + "documentation":"

The name of the execution parameter.

" + }, + "Type":{ + "shape":"ExecutionParameterType", + "documentation":"

The execution parameter type.

" + }, + "DefaultValues":{ + "shape":"ExecutionParameterValueList", + "documentation":"

The default values for the execution parameter.

" + } + }, + "documentation":"

Details of an execution parameter value that is passed to a self-service action when executed on a provisioned product.

" }, "ExecutionParameterKey":{ "type":"string", @@ -3269,6 +3304,18 @@ "PortfolioId":{ "shape":"Id", "documentation":"

The portfolio identifier.

" + }, + "OrganizationParentId":{ + "shape":"Id", + "documentation":"

The ID of an organization node the portfolio is shared with. All children of this node with an inherited portfolio share will be returned.

" + }, + "PageToken":{ + "shape":"PageToken", + "documentation":"

The page token for the next set of results. To retrieve the first set of results, use null.

" + }, + "PageSize":{ + "shape":"PageSize", + "documentation":"

The maximum number of items to return with this call.

" } } }, @@ -5924,7 +5971,7 @@ }, "Active":{ "shape":"ProvisioningArtifactActive", - "documentation":"

Indicates whether the product version is active.

" + "documentation":"

Indicates whether the product version is active.

Inactive provisioning artifacts are invisible to end users. End users cannot launch or update a provisioned product from an inactive provisioning artifact.

" }, "Guidance":{ "shape":"ProvisioningArtifactGuidance", diff --git a/botocore/data/shield/2016-06-02/service-2.json b/botocore/data/shield/2016-06-02/service-2.json index 711c053e..c9226f46 100644 --- a/botocore/data/shield/2016-06-02/service-2.json +++ b/botocore/data/shield/2016-06-02/service-2.json @@ -51,6 +51,23 @@ ], "documentation":"

Authorizes the DDoS Response team (DRT), using the specified role, to access your AWS account to assist with DDoS attack mitigation during potential attacks. This enables the DRT to inspect your AWS WAF configuration and create or update AWS WAF rules and web ACLs.

You can associate only one RoleArn with your subscription. If you submit an AssociateDRTRole request for an account that already has an associated role, the new RoleArn will replace the existing RoleArn.

Prior to making the AssociateDRTRole request, you must attach the AWSShieldDRTAccessPolicy managed policy to the role you will specify in the request. For more information see Attaching and Detaching IAM Policies. The role must also trust the service principal drt.shield.amazonaws.com. For more information, see IAM JSON Policy Elements: Principal.

The DRT will have access only to your AWS WAF and Shield resources. By submitting this request, you authorize the DRT to inspect your AWS WAF and Shield configuration and create and update AWS WAF rules and web ACLs on your behalf. The DRT takes these actions only if explicitly authorized by you.

You must have the iam:PassRole permission to make an AssociateDRTRole request. For more information, see Granting a User Permissions to Pass a Role to an AWS Service.

To use the services of the DRT and make an AssociateDRTRole request, you must be subscribed to the Business Support plan or the Enterprise Support plan.

" }, + "AssociateHealthCheck":{ + "name":"AssociateHealthCheck", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateHealthCheckRequest"}, + "output":{"shape":"AssociateHealthCheckResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"LimitsExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"OptimisticLockException"} + ], + "documentation":"

Adds health-based detection to the Shield Advanced protection for a resource. Shield Advanced health-based detection uses the health of your AWS resource to improve responsiveness and accuracy in attack detection and mitigation.

You define the health check in Route 53 and then associate it with your Shield Advanced protection. For more information, see Shield Advanced Health-Based Detection in the AWS WAF and AWS Shield Developer Guide.

" + }, "CreateProtection":{ "name":"CreateProtection", "http":{ @@ -220,6 +237,22 @@ ], "documentation":"

Removes the DDoS Response team's (DRT) access to your AWS account.

To make a DisassociateDRTRole request, you must be subscribed to the Business Support plan or the Enterprise Support plan. However, if you are not subscribed to one of these support plans, but had been previously and had granted the DRT access to your account, you can submit a DisassociateDRTRole request to remove this access.

" }, + "DisassociateHealthCheck":{ + "name":"DisassociateHealthCheck", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateHealthCheckRequest"}, + "output":{"shape":"DisassociateHealthCheckResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OptimisticLockException"} + ], + "documentation":"

Removes health-based detection from the Shield Advanced protection for a resource. Shield Advanced health-based detection uses the health of your AWS resource to improve responsiveness and accuracy in attack detection and mitigation.

You define the health check in Route 53 and then associate or disassociate it with your Shield Advanced protection. For more information, see Shield Advanced Health-Based Detection in the AWS WAF and AWS Shield Developer Guide.

" + }, "GetSubscriptionState":{ "name":"GetSubscriptionState", "http":{ @@ -311,7 +344,7 @@ "members":{ "message":{"shape":"errorMessage"} }, - "documentation":"

In order to grant the necessary access to the DDoS Response Team, the user submitting AssociateDRTRole must have the iam:PassRole permission. This error indicates the user did not have the appropriate permissions. For more information, see Granting a User Permissions to Pass a Role to an AWS Service.

", + "documentation":"

In order to grant the necessary access to the DDoS Response Team, the user submitting the request must have the iam:PassRole permission. This error indicates the user did not have the appropriate permissions. For more information, see Granting a User Permissions to Pass a Role to an AWS Service.

", "exception":true }, "AssociateDRTLogBucketRequest":{ @@ -344,6 +377,28 @@ "members":{ } }, + "AssociateHealthCheckRequest":{ + "type":"structure", + "required":[ + "ProtectionId", + "HealthCheckArn" + ], + "members":{ + "ProtectionId":{ + "shape":"ProtectionId", + "documentation":"

The unique identifier (ID) for the Protection object to add the health check association to.

" + }, + "HealthCheckArn":{ + "shape":"HealthCheckArn", + "documentation":"

The Amazon Resource Name (ARN) of the health check to associate with the protection.

" + } + } + }, + "AssociateHealthCheckResponse":{ + "type":"structure", + "members":{ + } + }, "AttackDetail":{ "type":"structure", "members":{ @@ -680,6 +735,28 @@ "members":{ } }, + "DisassociateHealthCheckRequest":{ + "type":"structure", + "required":[ + "ProtectionId", + "HealthCheckArn" + ], + "members":{ + "ProtectionId":{ + "shape":"ProtectionId", + "documentation":"

The unique identifier (ID) for the Protection object to remove the health check association from.

" + }, + "HealthCheckArn":{ + "shape":"HealthCheckArn", + "documentation":"

The Amazon Resource Name (ARN) of the health check that is associated with the protection.

" + } + } + }, + "DisassociateHealthCheckResponse":{ + "type":"structure", + "members":{ + } + }, "Double":{"type":"double"}, "DurationInSeconds":{ "type":"long", @@ -723,6 +800,17 @@ } } }, + "HealthCheckArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^arn:aws:route53:::healthcheck/\\S{36}$" + }, + "HealthCheckId":{"type":"string"}, + "HealthCheckIds":{ + "type":"list", + "member":{"shape":"HealthCheckId"} + }, "Integer":{"type":"integer"}, "InternalErrorException":{ "type":"structure", @@ -930,6 +1018,10 @@ "ResourceArn":{ "shape":"ResourceArn", "documentation":"

The ARN (Amazon Resource Name) of the AWS resource that is protected.

" + }, + "HealthCheckIds":{ + "shape":"HealthCheckIds", + "documentation":"

The unique identifier (ID) for the Route 53 health check that's associated with the protection.

" } }, "documentation":"

An object that represents a resource that is under DDoS protection.

" diff --git a/botocore/data/signer/2017-08-25/service-2.json b/botocore/data/signer/2017-08-25/service-2.json index 5335e0af..c72da71c 100644 --- a/botocore/data/signer/2017-08-25/service-2.json +++ b/botocore/data/signer/2017-08-25/service-2.json @@ -183,7 +183,7 @@ {"shape":"BadRequestException"}, {"shape":"NotFoundException"} ], - "documentation":"

Adds one or more tags to a signing profile. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the signing profile using its Amazon Resource Name (ARN). You specify the tag by using a key-value pair.

" + "documentation":"

Adds one or more tags to a signing profile. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. To specify the signing profile, use its Amazon Resource Name (ARN). To specify the tag, use a key-value pair.

" }, "UntagResource":{ "name":"UntagResource", @@ -198,7 +198,7 @@ {"shape":"BadRequestException"}, {"shape":"NotFoundException"} ], - "documentation":"

Remove one or more tags from a signing profile. Specify a list of tag keys to remove the tags.

" + "documentation":"

Removes one or more tags from a signing profile. To remove the tags, specify a list of tag keys.

" } }, "shapes":{ @@ -267,7 +267,7 @@ }, "signingMaterial":{ "shape":"SigningMaterial", - "documentation":"

Amazon Resource Name (ARN) of your code signing certificate.

" + "documentation":"

The Amazon Resource Name (ARN) of your code signing certificate.

" }, "platformId":{ "shape":"PlatformId", @@ -481,7 +481,11 @@ }, "ImageFormat":{ "type":"string", - "enum":["JSON"] + "enum":[ + "JSON", + "JSONEmbedded", + "JSONDetached" + ] }, "ImageFormats":{ "type":"list", @@ -672,7 +676,7 @@ "Prefix":{"type":"string"}, "ProfileName":{ "type":"string", - "max":20, + "max":64, "min":2, "pattern":"^[a-zA-Z0-9_]{2,}" }, @@ -696,7 +700,7 @@ }, "platformId":{ "shape":"PlatformId", - "documentation":"

The ID of the signing profile to be created.

" + "documentation":"

The ID of the signing platform to be created.

" }, "overrides":{ "shape":"SigningPlatformOverrides", @@ -708,7 +712,7 @@ }, "tags":{ "shape":"TagMap", - "documentation":"

Tags to be associated with the signing profile being created.

" + "documentation":"

Tags to be associated with the signing profile that is being created.

" } } }, @@ -805,7 +809,7 @@ }, "hashAlgorithmOptions":{ "shape":"HashAlgorithmOptions", - "documentation":"

The hash algorithm options that are available for a a code signing job.

" + "documentation":"

The hash algorithm options that are available for a code signing job.

" } }, "documentation":"

The configuration of a code signing operation.

" @@ -833,11 +837,11 @@ "members":{ "supportedFormats":{ "shape":"ImageFormats", - "documentation":"

The supported formats of a code signing signing image.

" + "documentation":"

The supported formats of a code signing image.

" }, "defaultFormat":{ "shape":"ImageFormat", - "documentation":"

The default format of a code signing signing image.

" + "documentation":"

The default format of a code signing image.

" } }, "documentation":"

The image format of a code signing platform or profile.

" @@ -927,7 +931,7 @@ "documentation":"

The maximum size (in MB) of code that can be signed by a code signing platform.

" } }, - "documentation":"

Contains information about the signing configurations and parameters that is used to perform a code signing job.

" + "documentation":"

Contains information about the signing configurations and parameters that are used to perform a code signing job.

" }, "SigningPlatformOverrides":{ "type":"structure", @@ -935,6 +939,10 @@ "signingConfiguration":{ "shape":"SigningConfigurationOverrides", "documentation":"

A signing configuration that overrides the default encryption or hash algorithm of a signing job.

" + }, + "signingImageFormat":{ + "shape":"ImageFormat", + "documentation":"

A signed image is a JSON object. When overriding the default signing platform configuration, a customer can select either of two signing formats, JSONEmbedded or JSONDetached. (A third format value, JSON, is reserved for future use.) With JSONEmbedded, the signing image has the payload embedded in it. With JSONDetached, the payload is not be embedded in the signing image.

" } }, "documentation":"

Any overrides that are applied to the signing configuration of a code signing platform.

" @@ -968,7 +976,7 @@ }, "arn":{ "shape":"string", - "documentation":"

Amazon Resource Name (ARN) for the signing profile.

" + "documentation":"

The Amazon Resource Name (ARN) for the signing profile.

" }, "tags":{ "shape":"TagMap", @@ -1072,7 +1080,7 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

Amazon Resource Name (ARN) for the signing profile.

", + "documentation":"

The Amazon Resource Name (ARN) for the signing profile.

", "location":"uri", "locationName":"resourceArn" }, @@ -1109,13 +1117,13 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

Amazon Resource Name (ARN) for the signing profile .

", + "documentation":"

The Amazon Resource Name (ARN) for the signing profile.

", "location":"uri", "locationName":"resourceArn" }, "tagKeys":{ "shape":"TagKeyList", - "documentation":"

A list of tag keys to be removed from the signing profile .

", + "documentation":"

A list of tag keys to be removed from the signing profile.

", "location":"querystring", "locationName":"tagKeys" } diff --git a/botocore/data/snowball/2016-06-30/service-2.json b/botocore/data/snowball/2016-06-30/service-2.json index c170a641..1063cd63 100644 --- a/botocore/data/snowball/2016-06-30/service-2.json +++ b/botocore/data/snowball/2016-06-30/service-2.json @@ -464,7 +464,7 @@ }, "SnowballType":{ "shape":"SnowballType", - "documentation":"

The type of AWS Snowball device to use for this cluster. Currently, the only supported device type for cluster jobs is EDGE.

" + "documentation":"

The type of AWS Snowball device to use for this cluster. Currently, the only supported device type for cluster jobs is EDGE.

For more information, see Snowball Edge Device Options in the Snowball Edge Developer Guide.

" }, "CreationDate":{ "shape":"Timestamp", @@ -489,6 +489,10 @@ "ForwardingAddressId":{ "shape":"AddressId", "documentation":"

The ID of the address that you want a cluster shipped to, after it will be shipped to its primary address. This field is not supported in most regions.

" + }, + "TaxDocuments":{ + "shape":"TaxDocuments", + "documentation":"

The tax documents required in your AWS Region.

" } }, "documentation":"

Contains metadata about a specific cluster.

" @@ -576,7 +580,7 @@ }, "SnowballType":{ "shape":"SnowballType", - "documentation":"

The type of AWS Snowball device to use for this cluster. Currently, the only supported device type for cluster jobs is EDGE.

" + "documentation":"

The type of AWS Snowball device to use for this cluster. Currently, the only supported device type for cluster jobs is EDGE.

For more information, see Snowball Edge Device Options in the Snowball Edge Developer Guide.

" }, "ShippingOption":{ "shape":"ShippingOption", @@ -589,6 +593,10 @@ "ForwardingAddressId":{ "shape":"AddressId", "documentation":"

The forwarding address ID for a cluster. This field is not supported in most regions.

" + }, + "TaxDocuments":{ + "shape":"TaxDocuments", + "documentation":"

The tax documents required in your AWS Region.

" } } }, @@ -646,11 +654,15 @@ }, "SnowballType":{ "shape":"SnowballType", - "documentation":"

The type of AWS Snowball device to use for this job. Currently, the only supported device type for cluster jobs is EDGE.

" + "documentation":"

The type of AWS Snowball device to use for this job. Currently, the only supported device type for cluster jobs is EDGE.

For more information, see Snowball Edge Device Options in the Snowball Edge Developer Guide.

" }, "ForwardingAddressId":{ "shape":"AddressId", "documentation":"

The forwarding address ID for a job. This field is not supported in most regions.

" + }, + "TaxDocuments":{ + "shape":"TaxDocuments", + "documentation":"

The tax documents required in your AWS Region.

" } } }, @@ -813,6 +825,10 @@ "type":"list", "member":{"shape":"EventTriggerDefinition"} }, + "GSTIN":{ + "type":"string", + "pattern":"\\d{2}[A-Z]{5}\\d{4}[A-Z]{1}[A-Z\\d]{1}[Z]{1}[A-Z\\d]{1}" + }, "GetJobManifestRequest":{ "type":"structure", "required":["JobId"], @@ -888,6 +904,16 @@ } } }, + "INDTaxDocuments":{ + "type":"structure", + "members":{ + "GSTIN":{ + "shape":"GSTIN", + "documentation":"

The Goods and Services Tax (GST) documents required in AWS Regions in India.

" + } + }, + "documentation":"

The tax documents required in AWS Regions in India.

" + }, "Integer":{"type":"integer"}, "InvalidAddressException":{ "type":"structure", @@ -1065,6 +1091,10 @@ "ForwardingAddressId":{ "shape":"AddressId", "documentation":"

The ID of the address that you want a job shipped to, after it will be shipped to its primary address. This field is not supported in most regions.

" + }, + "TaxDocuments":{ + "shape":"TaxDocuments", + "documentation":"

The metadata associated with the tax documents required in your AWS Region.

" } }, "documentation":"

Contains information about a specific job including shipping information, job status, and other important metadata. This information is returned as a part of the response syntax of the DescribeJob action.

" @@ -1395,6 +1425,16 @@ "type":"string", "min":1 }, + "TaxDocuments":{ + "type":"structure", + "members":{ + "IND":{ + "shape":"INDTaxDocuments", + "documentation":"

The tax documents required in AWS Regions in India.

" + } + }, + "documentation":"

The tax documents required in your AWS Region.

" + }, "Timestamp":{"type":"timestamp"}, "UnsupportedAddressException":{ "type":"structure", diff --git a/botocore/data/ssm/2014-11-06/service-2.json b/botocore/data/ssm/2014-11-06/service-2.json index 35d82c90..0415aaf9 100644 --- a/botocore/data/ssm/2014-11-06/service-2.json +++ b/botocore/data/ssm/2014-11-06/service-2.json @@ -5533,7 +5533,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.

" + "documentation":"

The token to use when requesting the next set of items.

" } } }, @@ -11300,8 +11300,8 @@ "box":true }, "ApproveUntilDate":{ - "shape":"PatchStringDate", - "documentation":"

The cutoff date for auto approval of released patches. Any patches released on or before this date will be installed automatically

", + "shape":"PatchStringDateTime", + "documentation":"

Example API

", "box":true }, "EnableNonSecurity":{ @@ -11405,11 +11405,10 @@ }, "documentation":"

Information about the approval status of a patch.

" }, - "PatchStringDate":{ + "PatchStringDateTime":{ "type":"string", "max":10, - "min":1, - "pattern":"^(\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))$" + "min":1 }, "PatchTitle":{"type":"string"}, "PatchUnreportedNotApplicableCount":{"type":"integer"}, @@ -11969,6 +11968,21 @@ "exception":true }, "ResourceDataSyncCreatedTime":{"type":"timestamp"}, + "ResourceDataSyncDestinationDataSharing":{ + "type":"structure", + "members":{ + "DestinationDataSharingType":{ + "shape":"ResourceDataSyncDestinationDataSharingType", + "documentation":"

The sharing data type. Only Organization is supported.

" + } + }, + "documentation":"

Synchronize Systems Manager Inventory data from multiple AWS accounts defined in AWS Organizations to a centralized Amazon S3 bucket. Data is synchronized to individual key prefixes in the central bucket. Each key prefix represents a different AWS account ID.

" + }, + "ResourceDataSyncDestinationDataSharingType":{ + "type":"string", + "max":64, + "min":1 + }, "ResourceDataSyncIncludeFutureRegions":{"type":"boolean"}, "ResourceDataSyncInvalidConfigurationException":{ "type":"structure", @@ -12103,6 +12117,10 @@ "AWSKMSKeyARN":{ "shape":"ResourceDataSyncAWSKMSKeyARN", "documentation":"

The ARN of an encryption key for a destination in Amazon S3. Must belong to the same Region as the destination Amazon S3 bucket.

" + }, + "DestinationDataSharing":{ + "shape":"ResourceDataSyncDestinationDataSharing", + "documentation":"

Enables destination data sharing. By default, this field is null.

" } }, "documentation":"

Information about the target Amazon S3 bucket for the Resource Data Sync.

" diff --git a/botocore/data/stepfunctions/2016-11-23/service-2.json b/botocore/data/stepfunctions/2016-11-23/service-2.json index 7d96a2b3..3bc9a331 100644 --- a/botocore/data/stepfunctions/2016-11-23/service-2.json +++ b/botocore/data/stepfunctions/2016-11-23/service-2.json @@ -48,7 +48,7 @@ {"shape":"StateMachineTypeNotSupported"}, {"shape":"TooManyTags"} ], - "documentation":"

Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateStateMachine is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateStateMachine's idempotency check is based on the state machine name and definition. If a following request has a different roleArn or tags, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, roleArn and tags will not be updated, even if they are different.

", + "documentation":"

Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language. For more information, see Amazon States Language in the AWS Step Functions User Guide.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateStateMachine is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateStateMachine's idempotency check is based on the state machine name, definition, type, and LoggingConfiguration. If a following request has a different roleArn or tags, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, roleArn and tags will not be updated, even if they are different.

", "idempotent":true }, "DeleteActivity":{ @@ -75,7 +75,7 @@ "errors":[ {"shape":"InvalidArn"} ], - "documentation":"

Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to DELETING and begins the deletion process. Each state machine execution is deleted the next time it makes a state transition.

The state machine itself is deleted after all executions are completed or deleted.

" + "documentation":"

Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to DELETING and begins the deletion process.

For EXPRESSstate machines, the deletion will happen eventually (usually less than a minute). Running executions may emit logs after DeleteStateMachine API is called.

" }, "DescribeActivity":{ "name":"DescribeActivity", @@ -103,7 +103,7 @@ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"} ], - "documentation":"

Describes an execution.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

" + "documentation":"

Describes an execution.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" }, "DescribeStateMachine":{ "name":"DescribeStateMachine", @@ -131,7 +131,7 @@ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"} ], - "documentation":"

Describes the state machine associated with a specific execution.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

" + "documentation":"

Describes the state machine associated with a specific execution.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" }, "GetActivityTask":{ "name":"GetActivityTask", @@ -161,7 +161,7 @@ {"shape":"InvalidArn"}, {"shape":"InvalidToken"} ], - "documentation":"

Returns the history of the specified execution as a list of events. By default, the results are returned in ascending order of the timeStamp of the events. Use the reverseOrder parameter to get the latest events first.

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + "documentation":"

Returns the history of the specified execution as a list of events. By default, the results are returned in ascending order of the timeStamp of the events. Use the reverseOrder parameter to get the latest events first.

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

This API action is not supported by EXPRESS state machines.

" }, "ListActivities":{ "name":"ListActivities", @@ -190,7 +190,7 @@ {"shape":"StateMachineDoesNotExist"}, {"shape":"StateMachineTypeNotSupported"} ], - "documentation":"

Lists the executions of a state machine that meet the filtering criteria. Results are sorted by time, with the most recent execution first.

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

" + "documentation":"

Lists the executions of a state machine that meet the filtering criteria. Results are sorted by time, with the most recent execution first.

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" }, "ListStateMachines":{ "name":"ListStateMachines", @@ -297,7 +297,7 @@ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"} ], - "documentation":"

Stops an execution.

" + "documentation":"

Stops an execution.

This API action is not supported by EXPRESS state machines.

" }, "TagResource":{ "name":"TagResource", @@ -344,7 +344,7 @@ {"shape":"StateMachineDeleting"}, {"shape":"StateMachineDoesNotExist"} ], - "documentation":"

Updates an existing state machine by modifying its definition and/or roleArn. Running executions will continue to use the previous definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

All StartExecution calls within a few seconds will use the updated definition and roleArn. Executions started immediately after calling UpdateStateMachine may use the previous state machine definition and roleArn.

", + "documentation":"

Updates an existing state machine by modifying its definition, roleArn, or loggingConfiguration. Running executions will continue to use the previous definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

All StartExecution calls within a few seconds will use the updated definition and roleArn. Executions started immediately after calling UpdateStateMachine may use the previous state machine definition and roleArn.

", "idempotent":true } }, @@ -397,7 +397,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the activity.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the activity.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "creationDate":{ "shape":"Timestamp", @@ -514,7 +514,7 @@ "members":{ "name":{ "shape":"Name", - "documentation":"

The name of the activity to create. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the activity to create. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "tags":{ "shape":"TagList", @@ -549,7 +549,7 @@ "members":{ "name":{ "shape":"Name", - "documentation":"

The name of the state machine.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the state machine.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "definition":{ "shape":"Definition", @@ -561,11 +561,11 @@ }, "type":{ "shape":"StateMachineType", - "documentation":"

Determines whether a Standard or Express state machine is created. If not set, Standard is created.

" + "documentation":"

Determines whether a Standard or Express state machine is created. The default is STANDARD. You cannot update the type of a state machine once it has been created.

" }, "loggingConfiguration":{ "shape":"LoggingConfiguration", - "documentation":"

Defines what execution history events are logged and where they are logged.

" + "documentation":"

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF. For more information see Log Levels in the AWS Step Functions User Guide.

" }, "tags":{ "shape":"TagList", @@ -650,7 +650,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the activity.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the activity.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "creationDate":{ "shape":"Timestamp", @@ -680,7 +680,7 @@ "members":{ "executionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) that identifies the execution.

" + "documentation":"

The Amazon Resource Name (ARN) that id entifies the execution.

" }, "stateMachineArn":{ "shape":"Arn", @@ -688,7 +688,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the execution.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the execution.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "status":{ "shape":"ExecutionStatus", @@ -751,7 +751,8 @@ "updateDate":{ "shape":"Timestamp", "documentation":"

The date and time the state machine associated with an execution was updated. For a newly created state machine, this is the creation date.

" - } + }, + "loggingConfiguration":{"shape":"LoggingConfiguration"} } }, "DescribeStateMachineInput":{ @@ -781,7 +782,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the state machine.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the state machine.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "status":{ "shape":"StateMachineStatus", @@ -797,16 +798,13 @@ }, "type":{ "shape":"StateMachineType", - "documentation":"

" + "documentation":"

The type of the state machine (STANDARD or EXPRESS).

" }, "creationDate":{ "shape":"Timestamp", "documentation":"

The date the state machine is created.

" }, - "loggingConfiguration":{ - "shape":"LoggingConfiguration", - "documentation":"

" - } + "loggingConfiguration":{"shape":"LoggingConfiguration"} } }, "ErrorMessage":{"type":"string"}, @@ -879,7 +877,7 @@ "members":{ "executionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) that identifies the execution.

" + "documentation":"

The Amazon Resource Name (ARN) that id entifies the execution.

" }, "stateMachineArn":{ "shape":"Arn", @@ -887,7 +885,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the execution.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the execution.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "status":{ "shape":"ExecutionStatus", @@ -1477,14 +1475,14 @@ }, "includeExecutionData":{ "shape":"IncludeExecutionData", - "documentation":"

Determines whether execution history data is included in your log. When set to FALSE, data is excluded.

" + "documentation":"

Determines whether execution data is included in your log. When set to FALSE, data is excluded.

" }, "destinations":{ "shape":"LogDestinationList", - "documentation":"

An object that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF.

" + "documentation":"

An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF.

" } }, - "documentation":"

" + "documentation":"

The LoggingConfiguration data type is used to set CloudWatch Logs options.

" }, "MapIterationEventDetails":{ "type":"structure", @@ -1635,7 +1633,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the execution. This name must be unique for your AWS account, region, and state machine for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the execution. This name must be unique for your AWS account, region, and state machine for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "input":{ "shape":"SensitiveData", @@ -1652,7 +1650,7 @@ "members":{ "executionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) that identifies the execution.

" + "documentation":"

The Amazon Resource Name (ARN) that id entifies the execution.

" }, "startDate":{ "shape":"Timestamp", @@ -1681,7 +1679,7 @@ "members":{ "name":{ "shape":"Name", - "documentation":"

The name of the state.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the state.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "output":{ "shape":"SensitiveData", @@ -1741,7 +1739,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the state machine.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

" + "documentation":"

The name of the state machine.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "type":{ "shape":"StateMachineType", @@ -2131,7 +2129,7 @@ }, "loggingConfiguration":{ "shape":"LoggingConfiguration", - "documentation":"

" + "documentation":"

The LoggingConfiguration data type is used to set CloudWatch Logs options.

" } } }, diff --git a/botocore/data/transcribe/2017-10-26/service-2.json b/botocore/data/transcribe/2017-10-26/service-2.json index 965af489..fc8743b7 100644 --- a/botocore/data/transcribe/2017-10-26/service-2.json +++ b/botocore/data/transcribe/2017-10-26/service-2.json @@ -103,7 +103,7 @@ {"shape":"InternalFailureException"}, {"shape":"NotFoundException"} ], - "documentation":"

Returns information about a transcription job. To see the status of the job, check the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished and you can find the results at the location specified in the TranscriptionFileUri field.

" + "documentation":"

Returns information about a transcription job. To see the status of the job, check the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished and you can find the results at the location specified in the TranscriptFileUri field. If you enable content redaction, the redacted transcript appears in RedactedTranscriptFileUri.

" }, "GetVocabulary":{ "name":"GetVocabulary", @@ -250,6 +250,24 @@ "documentation":"

When you are using the CreateVocabulary operation, the JobName field is a duplicate of a previously entered job name. Resend your request with a different name.

When you are using the UpdateVocabulary operation, there are two jobs running at the same time. Resend the second request later.

", "exception":true }, + "ContentRedaction":{ + "type":"structure", + "required":[ + "RedactionType", + "RedactionOutput" + ], + "members":{ + "RedactionType":{ + "shape":"RedactionType", + "documentation":"

Request parameter that defines the entities to be redacted. The only accepted value is PII.

" + }, + "RedactionOutput":{ + "shape":"RedactionOutput", + "documentation":"

Request parameter where you choose whether to output only the redacted transcript or generate an additional unredacted transcript.

When you choose redacted Amazon Transcribe outputs a JSON file with only the redacted transcript and related information.

When you choose redacted_and_unredacted Amazon Transcribe outputs a JSON file with the unredacted transcript and related information in addition to the JSON file with the redacted transcript.

" + } + }, + "documentation":"

Settings for content redaction within a transcription job.

You can redact transcripts in US English (en-us). For more information see: Automatic Content Redaction

" + }, "CreateVocabularyFilterRequest":{ "type":"structure", "required":[ @@ -666,7 +684,7 @@ "members":{ "MediaFileUri":{ "shape":"Uri", - "documentation":"

The S3 location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is:

https://s3.<aws-region>.amazonaws.com/<bucket-name>/<keyprefix>/<objectkey>

For example:

https://s3.us-east-1.amazonaws.com/examplebucket/example.mp4

https://s3.us-east-1.amazonaws.com/examplebucket/mediadocs/example.mp4

For more information about S3 object names, see Object Keys in the Amazon S3 Developer Guide.

" + "documentation":"

The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is:

s3://<bucket-name>/<keyprefix>/<objectkey>

For example:

s3://examplebucket/example.mp4

s3://examplebucket/mediadocs/example.mp4

For more information about S3 object names, see Object Keys in the Amazon S3 Developer Guide.

" } }, "documentation":"

Describes the input media file in a transcription request.

" @@ -720,6 +738,17 @@ "type":"list", "member":{"shape":"Phrase"} }, + "RedactionOutput":{ + "type":"string", + "enum":[ + "redacted", + "redacted_and_unredacted" + ] + }, + "RedactionType":{ + "type":"string", + "enum":["PII"] + }, "Settings":{ "type":"structure", "members":{ @@ -788,7 +817,7 @@ }, "OutputBucketName":{ "shape":"OutputBucketName", - "documentation":"

The location where the transcription is stored.

If you set the OutputBucketName, Amazon Transcribe puts the transcription in the specified S3 bucket. When you call the GetTranscriptionJob operation, the operation returns this location in the TranscriptFileUri field. The S3 bucket must have permissions that allow Amazon Transcribe to put files in the bucket. For more information, see Permissions Required for IAM User Roles.

You can specify an AWS Key Management Service (KMS) key to encrypt the output of your transcription using the OutputEncryptionKMSKeyId parameter. If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption of transcripts that are placed in your S3 bucket.

If you don't set the OutputBucketName, Amazon Transcribe generates a pre-signed URL, a shareable URL that provides secure access to your transcription, and returns it in the TranscriptFileUri field. Use this URL to download the transcription.

" + "documentation":"

The location where the transcription is stored.

If you set the OutputBucketName, Amazon Transcribe puts the transcript in the specified S3 bucket. When you call the GetTranscriptionJob operation, the operation returns this location in the TranscriptFileUri field. If you enable content redaction, the redacted transcript appears in RedactedTranscriptFileUri. If you enable content redaction and choose to output an unredacted transcript, that transcript's location still appears in the TranscriptFileUri. The S3 bucket must have permissions that allow Amazon Transcribe to put files in the bucket. For more information, see Permissions Required for IAM User Roles.

You can specify an AWS Key Management Service (KMS) key to encrypt the output of your transcription using the OutputEncryptionKMSKeyId parameter. If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption of transcripts that are placed in your S3 bucket.

If you don't set the OutputBucketName, Amazon Transcribe generates a pre-signed URL, a shareable URL that provides secure access to your transcription, and returns it in the TranscriptFileUri field. Use this URL to download the transcription.

" }, "OutputEncryptionKMSKeyId":{ "shape":"KMSKeyId", @@ -801,6 +830,10 @@ "JobExecutionSettings":{ "shape":"JobExecutionSettings", "documentation":"

Provides information about how a transcription job is executed. Use this field to indicate that the job can be queued for deferred execution if the concurrency limit is reached and there are no slots available to immediately run the job.

" + }, + "ContentRedaction":{ + "shape":"ContentRedaction", + "documentation":"

An object that contains the request parameters for content redaction.

" } } }, @@ -819,7 +852,11 @@ "members":{ "TranscriptFileUri":{ "shape":"Uri", - "documentation":"

The location where the transcription is stored.

Use this URI to access the transcription. If you specified an S3 bucket in the OutputBucketName field when you created the job, this is the URI of that bucket. If you chose to store the transcription in Amazon Transcribe, this is a shareable URL that provides secure access to that location.

" + "documentation":"

The S3 object location of the the transcript.

Use this URI to access the transcript. If you specified an S3 bucket in the OutputBucketName field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.

" + }, + "RedactedTranscriptFileUri":{ + "shape":"Uri", + "documentation":"

The S3 object location of the redacted transcript.

Use this URI to access the redacated transcript. If you specified an S3 bucket in the OutputBucketName field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.

" } }, "documentation":"

Identifies the location of a transcription.

" @@ -878,6 +915,10 @@ "JobExecutionSettings":{ "shape":"JobExecutionSettings", "documentation":"

Provides information about how a transcription job is executed.

" + }, + "ContentRedaction":{ + "shape":"ContentRedaction", + "documentation":"

An object that describes content redaction settings for the transcription job.

" } }, "documentation":"

Describes an asynchronous transcription job that was created with the StartTranscriptionJob operation.

" @@ -935,6 +976,10 @@ "OutputLocationType":{ "shape":"OutputLocationType", "documentation":"

Indicates the location of the output of the transcription job.

If the value is CUSTOMER_BUCKET then the location is the S3 bucket specified in the outputBucketName field when the transcription job was started with the StartTranscriptionJob operation.

If the value is SERVICE_BUCKET then the output is stored by Amazon Transcribe and can be retrieved using the URI in the GetTranscriptionJob response's TranscriptFileUri field.

" + }, + "ContentRedaction":{ + "shape":"ContentRedaction", + "documentation":"

The content redaction settings of the transcription job.

" } }, "documentation":"

Provides a summary of information about a transcription job.

" diff --git a/botocore/data/wafv2/2019-07-29/service-2.json b/botocore/data/wafv2/2019-07-29/service-2.json index 67757d4d..e97298b3 100644 --- a/botocore/data/wafv2/2019-07-29/service-2.json +++ b/botocore/data/wafv2/2019-07-29/service-2.json @@ -27,7 +27,7 @@ {"shape":"WAFNonexistentItemException"}, {"shape":"WAFUnavailableEntityException"} ], - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Associates a Web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

For AWS CloudFront, you can associate the Web ACL by providing the Id of the WebACL to the CloudFront API call UpdateDistribution. For information, see UpdateDistribution.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Associates a Web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

For AWS CloudFront, you can associate the Web ACL by providing the ARN of the WebACL to the CloudFront API call UpdateDistribution. For information, see UpdateDistribution.

" }, "CheckCapacity":{ "name":"CheckCapacity", @@ -43,7 +43,8 @@ {"shape":"WAFNonexistentItemException"}, {"shape":"WAFLimitsExceededException"}, {"shape":"WAFInvalidResourceException"}, - {"shape":"WAFUnavailableEntityException"} + {"shape":"WAFUnavailableEntityException"}, + {"shape":"WAFSubscriptionNotFoundException"} ], "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a RuleGroup or WebACL.

AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

" }, @@ -83,7 +84,7 @@ {"shape":"WAFTagOperationException"}, {"shape":"WAFTagOperationInternalErrorException"} ], - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Creates a RegexPatternSet per the specifications provided.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Creates a RegexPatternSet, which you reference in a RegexPatternSetReferenceStatement, to have AWS WAF inspect a web request component for the specified patterns.

" }, "CreateRuleGroup":{ "name":"CreateRuleGroup", @@ -101,7 +102,8 @@ {"shape":"WAFLimitsExceededException"}, {"shape":"WAFUnavailableEntityException"}, {"shape":"WAFTagOperationException"}, - {"shape":"WAFTagOperationInternalErrorException"} + {"shape":"WAFTagOperationInternalErrorException"}, + {"shape":"WAFSubscriptionNotFoundException"} ], "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Creates a RuleGroup per the specifications provided.

A rule group defines a collection of rules to inspect and control web requests that you can use in a WebACL. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements.

" }, @@ -123,7 +125,8 @@ {"shape":"WAFUnavailableEntityException"}, {"shape":"WAFNonexistentItemException"}, {"shape":"WAFTagOperationException"}, - {"shape":"WAFTagOperationInternalErrorException"} + {"shape":"WAFTagOperationInternalErrorException"}, + {"shape":"WAFSubscriptionNotFoundException"} ], "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Creates a WebACL per the specifications provided.

A Web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the Web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a Web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a Web ACL with one or more AWS resources to protect. The resources can be Amazon CloudFront, an Amazon API Gateway API, or an Application Load Balancer.

" }, @@ -140,6 +143,7 @@ {"shape":"WAFInvalidParameterException"}, {"shape":"WAFNonexistentItemException"}, {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFAssociatedItemException"}, {"shape":"WAFTagOperationException"}, {"shape":"WAFTagOperationInternalErrorException"} ], @@ -173,6 +177,7 @@ {"shape":"WAFInvalidParameterException"}, {"shape":"WAFNonexistentItemException"}, {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFAssociatedItemException"}, {"shape":"WAFTagOperationException"}, {"shape":"WAFTagOperationInternalErrorException"} ], @@ -191,6 +196,7 @@ {"shape":"WAFInvalidParameterException"}, {"shape":"WAFNonexistentItemException"}, {"shape":"WAFOptimisticLockException"}, + {"shape":"WAFAssociatedItemException"}, {"shape":"WAFTagOperationException"}, {"shape":"WAFTagOperationInternalErrorException"} ], @@ -244,7 +250,7 @@ {"shape":"WAFInvalidParameterException"}, {"shape":"WAFNonexistentItemException"} ], - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Disassociates a Web ACL from a regional application resource. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

For AWS CloudFront, you can disassociate the Web ACL by providing an empty WebACLId in the CloudFront API call UpdateDistribution. For information, see UpdateDistribution.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Disassociates a Web ACL from a regional application resource. A regional application can be an Application Load Balancer (ALB) or an API Gateway stage.

For AWS CloudFront, you can disassociate the Web ACL by providing an empty web ACL ARN in the CloudFront API call UpdateDistribution. For information, see UpdateDistribution.

" }, "GetIPSet":{ "name":"GetIPSet", @@ -378,7 +384,7 @@ {"shape":"WAFInternalErrorException"}, {"shape":"WAFInvalidParameterException"} ], - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of managed rule groups that are available for you to use. This list includes all AWS managed rule groups and the AWS Marketplace managed rule groups that you're subscribed to.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Retrieves an array of managed rule groups that are available for you to use. This list includes all AWS Managed Rules rule groups and the AWS Marketplace managed rule groups that you're subscribed to.

" }, "ListIPSets":{ "name":"ListIPSets", @@ -585,7 +591,8 @@ {"shape":"WAFDuplicateItemException"}, {"shape":"WAFOptimisticLockException"}, {"shape":"WAFLimitsExceededException"}, - {"shape":"WAFUnavailableEntityException"} + {"shape":"WAFUnavailableEntityException"}, + {"shape":"WAFSubscriptionNotFoundException"} ], "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Updates the specified RuleGroup.

A rule group defines a collection of rules to inspect and control web requests that you can use in a WebACL. When you create a rule group, you define an immutable capacity limit. If you update a rule group, you must stay within the capacity. This allows others to reuse the rule group with confidence in its capacity requirements.

" }, @@ -605,7 +612,8 @@ {"shape":"WAFOptimisticLockException"}, {"shape":"WAFLimitsExceededException"}, {"shape":"WAFInvalidResourceException"}, - {"shape":"WAFUnavailableEntityException"} + {"shape":"WAFUnavailableEntityException"}, + {"shape":"WAFSubscriptionNotFoundException"} ], "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Updates the specified WebACL.

A Web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the Web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a Web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a Web ACL with one or more AWS resources to protect. The resources can be Amazon CloudFront, an Amazon API Gateway API, or an Application Load Balancer.

" } @@ -616,13 +624,13 @@ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

All query arguments of a web request.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

All query arguments of a web request.

This is used only to indicate the web request component for AWS WAF to inspect, in the FieldToMatch specification.

" }, "AllowAction":{ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should allow requests.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should allow requests.

This is used only in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

" }, "AndStatement":{ "type":"structure", @@ -648,7 +656,7 @@ }, "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The Amazon Resource Name (ARN) of the resource to associate with the web ACL.

The ARN must be in one of the following formats:

  • For a CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For an Application Load Balancer: arn:aws:elasticloadbalancing: region:account-id:loadbalancer/app/load-balancer-name /load-balancer-id

  • For an Amazon API Gateway stage: arn:aws:apigateway:region ::/restapis/api-id/stages/stage-name

" + "documentation":"

The Amazon Resource Name (ARN) of the resource to associate with the web ACL.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

" } } }, @@ -661,13 +669,13 @@ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should block requests.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should block requests.

This is used only in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

" }, "Body":{ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The body of a web request. This immediately follows the request headers.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The body of a web request. This immediately follows the request headers.

This is used only to indicate the web request component for AWS WAF to inspect, in the FieldToMatch specification.

" }, "Boolean":{"type":"boolean"}, "ByteMatchStatement":{ @@ -747,7 +755,7 @@ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should count requests.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should count requests.

This is used only in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

" }, "Country":{"type":"string"}, "CountryCode":{ @@ -1200,7 +1208,7 @@ "documentation":"

Specifies that AWS WAF should allow requests by default.

" } }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

In a WebACL, this is the action that you want AWS WAF to perform when a web request doesn't match any of the rules in the WebACL. The default action must be a terminating action, so count is not allowed.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

In a WebACL, this is the action that you want AWS WAF to perform when a web request doesn't match any of the rules in the WebACL. The default action must be a terminating action, so count is not allowed.

" }, "DeleteIPSetRequest":{ "type":"structure", @@ -1386,7 +1394,7 @@ "members":{ "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.

The ARN must be in one of the following formats:

  • For a CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For an Application Load Balancer: arn:aws:elasticloadbalancing: region:account-id:loadbalancer/app/load-balancer-name /load-balancer-id

  • For an Amazon API Gateway stage: arn:aws:apigateway:region ::/restapis/api-id/stages/stage-name

" + "documentation":"

The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

" } } }, @@ -1439,7 +1447,7 @@ }, "SingleQueryArgument":{ "shape":"SingleQueryArgument", - "documentation":"

Inspect a single query argument. Provide the name of the query argument to inspect, such as UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.

" + "documentation":"

Inspect a single query argument. Provide the name of the query argument to inspect, such as UserName or SalesRegion. The name can be up to 30 characters long and isn't case sensitive.

This is used only to indicate the web request component for AWS WAF to inspect, in the FieldToMatch specification.

" }, "AllQueryArguments":{ "shape":"AllQueryArguments", @@ -1455,7 +1463,7 @@ }, "Body":{ "shape":"Body", - "documentation":"

Inspect the request body, which immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.

Note that only the first 8 KB (8192 bytes) of the request body are forwarded to AWS WAF for inspection. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as ByteMatchStatement or RegexPatternSetReferenceStatement, with a SizeConstraintStatement that enforces an 8 KB size limit on the body of the request. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit.

" + "documentation":"

Inspect the request body, which immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form.

Note that only the first 8 KB (8192 bytes) of the request body are forwarded to AWS WAF for inspection by the underlying host service. If you don't need to inspect more than 8 KB, you can guarantee that you don't allow additional bytes in by combining a statement that inspects the body of the web request, such as ByteMatchStatement or RegexPatternSetReferenceStatement, with a SizeConstraintStatement that enforces an 8 KB size limit on the body of the request. AWS WAF doesn't support inspecting the entire contents of web requests whose bodies exceed the 8 KB limit.

" }, "Method":{ "shape":"Method", @@ -2216,16 +2224,16 @@ }, "Description":{ "shape":"EntityDescription", - "documentation":"

The description of the managed rule group, provided by AWS or the AWS Marketplace seller who manages it.

" + "documentation":"

The description of the managed rule group, provided by AWS Managed Rules or the AWS Marketplace seller who manages it.

" } }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about a managed rule group, returned by ListAvailableManagedRuleGroups. This provides information like the name and vendor name, that you provide when you add a ManagedRuleGroupStatement to a web ACL. Managed rule groups include AWS managed rule groups, which are free of charge to AWS WAF customers, and AWS Marketplace managed rule groups, which you can subscribe to through AWS Marketplace.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

High-level information about a managed rule group, returned by ListAvailableManagedRuleGroups. This provides information like the name and vendor name, that you provide when you add a ManagedRuleGroupStatement to a web ACL. Managed rule groups include AWS Managed Rules rule groups, which are free of charge to AWS WAF customers, and AWS Marketplace managed rule groups, which you can subscribe to through AWS Marketplace.

" }, "Method":{ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The HTTP method of a web request. The method indicates the type of operation that the request is asking the origin to perform.

This is used only to indicate the web request component for AWS WAF to inspect, in the FieldToMatch specification.

" }, "MetricName":{ "type":"string", @@ -2243,7 +2251,7 @@ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should do nothing. This is generally used to try out a rule without performing any actions. You set the OverrideAction on the Rule, and override the actions that are set at the statement level.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

Specifies that AWS WAF should do nothing. This is generally used to try out a rule without performing any actions. You set the OverrideAction on the Rule.

This is used only in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

" }, "NotStatement":{ "type":"structure", @@ -2324,7 +2332,8 @@ "RESOURCE_ARN", "RESOURCE_TYPE", "TAGS", - "TAG_KEYS" + "TAG_KEYS", + "METRIC_NAME" ] }, "ParameterExceptionParameter":{ @@ -2365,7 +2374,7 @@ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The query string of a web request. This is the part of a URL that appears after a ? character, if any.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The query string of a web request. This is the part of a URL that appears after a ? character, if any.

This is used only to indicate the web request component for AWS WAF to inspect, in the FieldToMatch specification.

" }, "RateBasedStatement":{ "type":"structure", @@ -2749,7 +2758,7 @@ "documentation":"

The name of the query header to inspect.

" } }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

One of the headers in a web request, identified by name, for example, User-Agent or Referer. This setting isn't case sensitive.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

One of the headers in a web request, identified by name, for example, User-Agent or Referer. This setting isn't case sensitive.

This is used only to indicate the web request component for AWS WAF to inspect, in the FieldToMatch specification.

" }, "SingleQueryArgument":{ "type":"structure", @@ -3228,7 +3237,7 @@ "type":"structure", "members":{ }, - "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.

" + "documentation":"

This is the latest version of AWS WAF, named AWS WAFV2, released in November, 2019. For information, including how to migrate your AWS WAF resources from the prior release, see the AWS WAF Developer Guide.

The path component of the URI of a web request. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg.

This is used only to indicate the web request component for AWS WAF to inspect, in the FieldToMatch specification.

" }, "VendorName":{ "type":"string", @@ -3335,6 +3344,14 @@ "documentation":"

AWS WAF is not able to access the service linked role. This can be caused by a previous PutLoggingConfiguration request, which can lock the service linked role for about 20 seconds. Please try your request again. The service linked role can also be locked by a previous DeleteServiceLinkedRole request, which can lock the role for 15 minutes or more. If you recently made a call to DeleteServiceLinkedRole, wait at least 15 minutes and try the request again. If you receive this same exception again, you will have to wait additional time until the role is unlocked.

", "exception":true }, + "WAFSubscriptionNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

", + "exception":true + }, "WAFTagOperationException":{ "type":"structure", "members":{ diff --git a/botocore/data/workdocs/2016-05-01/service-2.json b/botocore/data/workdocs/2016-05-01/service-2.json index 84fdf10c..c36e3d95 100644 --- a/botocore/data/workdocs/2016-05-01/service-2.json +++ b/botocore/data/workdocs/2016-05-01/service-2.json @@ -525,7 +525,7 @@ {"shape":"FailedDependencyException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Retrieves details of the current user for whom the authentication token was generated. This is not a valid action for SigV4 (administrative API) clients.

" + "documentation":"

Retrieves details of the current user for whom the authentication token was generated. This is not a valid action for SigV4 (administrative API) clients.

This action requires an authentication token. To get an authentication token, register an application with Amazon WorkDocs. For more information, see Authentication and Access Control for User Applications in the Amazon WorkDocs Developer Guide.

" }, "GetDocument":{ "name":"GetDocument", @@ -793,7 +793,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -823,7 +823,7 @@ }, "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" } @@ -933,7 +933,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1104,7 +1104,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1160,7 +1160,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1193,7 +1193,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1235,7 +1235,7 @@ }, "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" } @@ -1327,7 +1327,7 @@ }, "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" } @@ -1387,7 +1387,7 @@ }, "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" } @@ -1411,7 +1411,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1441,7 +1441,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1482,7 +1482,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1500,7 +1500,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1518,7 +1518,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1542,7 +1542,7 @@ }, "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1609,7 +1609,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1691,7 +1691,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1740,7 +1740,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1795,7 +1795,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1866,7 +1866,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -1952,7 +1952,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2001,7 +2001,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token.

", "location":"header", "locationName":"Authentication" }, @@ -2037,7 +2037,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2397,7 +2397,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token.

", "location":"header", "locationName":"Authentication" } @@ -2418,7 +2418,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2463,7 +2463,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2503,7 +2503,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2552,7 +2552,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2597,7 +2597,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2633,7 +2633,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

The Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API operation using AWS credentials.

", + "documentation":"

The Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2737,7 +2737,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -2986,7 +2986,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -3007,7 +3007,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -3390,7 +3390,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -3423,7 +3423,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -3451,7 +3451,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, @@ -3481,7 +3481,7 @@ "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", - "documentation":"

Amazon WorkDocs authentication token. Do not set this field when using administrative API actions, as in accessing the API using AWS credentials.

", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", "location":"header", "locationName":"Authentication" }, diff --git a/botocore/data/workmail/2017-10-01/service-2.json b/botocore/data/workmail/2017-10-01/service-2.json index 20ad1a2f..58289d38 100644 --- a/botocore/data/workmail/2017-10-01/service-2.json +++ b/botocore/data/workmail/2017-10-01/service-2.json @@ -136,6 +136,20 @@ "documentation":"

Creates a user who can be used in Amazon WorkMail by calling the RegisterToWorkMail operation.

", "idempotent":true }, + "DeleteAccessControlRule":{ + "name":"DeleteAccessControlRule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAccessControlRuleRequest"}, + "output":{"shape":"DeleteAccessControlRuleResponse"}, + "errors":[ + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

Deletes an access control rule for the specified WorkMail organization.

" + }, "DeleteAlias":{ "name":"DeleteAlias", "http":{ @@ -352,6 +366,22 @@ "documentation":"

Removes a member from a group.

", "idempotent":true }, + "GetAccessControlEffect":{ + "name":"GetAccessControlEffect", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAccessControlEffectRequest"}, + "output":{"shape":"GetAccessControlEffectResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

Gets the effects of an organization's access control rules as they apply to a specified IPv4 address, access protocol action, or user ID.

" + }, "GetMailboxDetails":{ "name":"GetMailboxDetails", "http":{ @@ -368,6 +398,20 @@ "documentation":"

Requests a user's mailbox details for a specified organization and user.

", "idempotent":true }, + "ListAccessControlRules":{ + "name":"ListAccessControlRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAccessControlRulesRequest"}, + "output":{"shape":"ListAccessControlRulesResponse"}, + "errors":[ + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

Lists the access control rules for the specified organization.

" + }, "ListAliases":{ "name":"ListAliases", "http":{ @@ -515,6 +559,23 @@ "documentation":"

Returns summaries of the organization's users.

", "idempotent":true }, + "PutAccessControlRule":{ + "name":"PutAccessControlRule", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutAccessControlRuleRequest"}, + "output":{"shape":"PutAccessControlRuleResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"InvalidParameterException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

Adds a new access control rule for the specified organization. The rule allows or denies access to the organization for the specified IPv4 addresses, access protocol actions, and user IDs. Adding a new rule with the same name as an existing rule replaces the older rule.

" + }, "PutMailboxPermissions":{ "name":"PutMailboxPermissions", "http":{ @@ -554,7 +615,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Registers an existing and disabled user, group, or resource for Amazon WorkMail use by associating a mailbox and calendaring capabilities. It performs no change if the user, group, or resource is enabled and fails if the user, group, or resource is deleted. This operation results in the accumulation of costs. For more information, see Pricing. The equivalent console functionality for this operation is Enable.

Users can either be created by calling the CreateUser API operation or they can be synchronized from your directory. For more information, see DeregisterFromWorkMail.

", + "documentation":"

Registers an existing and disabled user, group, or resource for Amazon WorkMail use by associating a mailbox and calendaring capabilities. It performs no change if the user, group, or resource is enabled and fails if the user, group, or resource is deleted. This operation results in the accumulation of costs. For more information, see Pricing. The equivalent console functionality for this operation is Enable.

Users can either be created by calling the CreateUser API operation or they can be synchronized from your directory. For more information, see DeregisterFromWorkMail.

", "idempotent":true }, "ResetPassword":{ @@ -675,6 +736,99 @@ } }, "shapes":{ + "AccessControlRule":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"AccessControlRuleName", + "documentation":"

The rule name.

" + }, + "Effect":{ + "shape":"AccessControlRuleEffect", + "documentation":"

The rule effect.

" + }, + "Description":{ + "shape":"AccessControlRuleDescription", + "documentation":"

The rule description.

" + }, + "IpRanges":{ + "shape":"IpRangeList", + "documentation":"

IPv4 CIDR ranges to include in the rule.

" + }, + "NotIpRanges":{ + "shape":"IpRangeList", + "documentation":"

IPv4 CIDR ranges to exclude from the rule.

" + }, + "Actions":{ + "shape":"ActionsList", + "documentation":"

Access protocol actions to include in the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

" + }, + "NotActions":{ + "shape":"ActionsList", + "documentation":"

Access protocol actions to exclude from the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

" + }, + "UserIds":{ + "shape":"UserIdList", + "documentation":"

User IDs to include in the rule.

" + }, + "NotUserIds":{ + "shape":"UserIdList", + "documentation":"

User IDs to exclude from the rule.

" + }, + "DateCreated":{ + "shape":"Timestamp", + "documentation":"

The date that the rule was created.

" + }, + "DateModified":{ + "shape":"Timestamp", + "documentation":"

The date that the rule was modified.

" + } + }, + "documentation":"

A rule that controls access to an Amazon WorkMail organization.

" + }, + "AccessControlRuleAction":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z]+" + }, + "AccessControlRuleDescription":{ + "type":"string", + "max":255, + "min":0, + "pattern":"[\\u0020-\\u00FF]+" + }, + "AccessControlRuleEffect":{ + "type":"string", + "enum":[ + "ALLOW", + "DENY" + ] + }, + "AccessControlRuleName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, + "AccessControlRuleNameList":{ + "type":"list", + "member":{"shape":"AccessControlRuleName"}, + "max":10, + "min":0 + }, + "AccessControlRulesList":{ + "type":"list", + "member":{"shape":"AccessControlRule"}, + "max":10, + "min":0 + }, + "ActionsList":{ + "type":"list", + "member":{"shape":"AccessControlRuleAction"}, + "max":10, + "min":0 + }, "Aliases":{ "type":"list", "member":{"shape":"EmailAddress"} @@ -895,6 +1049,25 @@ }, "documentation":"

The name of the attribute, which is one of the values defined in the UserAttribute enumeration.

" }, + "DeleteAccessControlRuleRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The identifier for the organization.

" + }, + "Name":{ + "shape":"AccessControlRuleName", + "documentation":"

The name of the access control rule.

" + } + } + }, + "DeleteAccessControlRuleResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteAliasRequest":{ "type":"structure", "required":[ @@ -1358,6 +1531,46 @@ "documentation":"

You are performing an operation on a user, group, or resource that isn't in the expected state, such as trying to delete an active user.

", "exception":true }, + "GetAccessControlEffectRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "IpAddress", + "Action", + "UserId" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The identifier for the organization.

" + }, + "IpAddress":{ + "shape":"IpAddress", + "documentation":"

The IPv4 address.

" + }, + "Action":{ + "shape":"AccessControlRuleAction", + "documentation":"

The access protocol action. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

" + }, + "UserId":{ + "shape":"WorkMailIdentifier", + "documentation":"

The user ID.

" + } + } + }, + "GetAccessControlEffectResponse":{ + "type":"structure", + "members":{ + "Effect":{ + "shape":"AccessControlRuleEffect", + "documentation":"

The rule effect.

" + }, + "MatchedRules":{ + "shape":"AccessControlRuleNameList", + "documentation":"

The rules that match the given parameters, resulting in an effect.

" + } + } + }, "GetMailboxDetailsRequest":{ "type":"structure", "required":[ @@ -1452,6 +1665,24 @@ "documentation":"

The supplied password doesn't match the minimum security constraints, such as length or use of special characters.

", "exception":true }, + "IpAddress":{ + "type":"string", + "max":15, + "min":1, + "pattern":"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" + }, + "IpRange":{ + "type":"string", + "max":18, + "min":1, + "pattern":"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([0-9]|[12][0-9]|3[0-2])$" + }, + "IpRangeList":{ + "type":"list", + "member":{"shape":"IpRange"}, + "max":10, + "min":0 + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -1460,6 +1691,25 @@ "documentation":"

The request exceeds the limit of the resource.

", "exception":true }, + "ListAccessControlRulesRequest":{ + "type":"structure", + "required":["OrganizationId"], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The identifier for the organization.

" + } + } + }, + "ListAccessControlRulesResponse":{ + "type":"structure", + "members":{ + "Rules":{ + "shape":"AccessControlRulesList", + "documentation":"

The access control rules.

" + } + } + }, "ListAliasesRequest":{ "type":"structure", "required":[ @@ -1932,6 +2182,62 @@ "type":"list", "member":{"shape":"Permission"} }, + "PutAccessControlRuleRequest":{ + "type":"structure", + "required":[ + "Name", + "Effect", + "Description", + "OrganizationId" + ], + "members":{ + "Name":{ + "shape":"AccessControlRuleName", + "documentation":"

The rule name.

" + }, + "Effect":{ + "shape":"AccessControlRuleEffect", + "documentation":"

The rule effect.

" + }, + "Description":{ + "shape":"AccessControlRuleDescription", + "documentation":"

The rule description.

" + }, + "IpRanges":{ + "shape":"IpRangeList", + "documentation":"

IPv4 CIDR ranges to include in the rule.

" + }, + "NotIpRanges":{ + "shape":"IpRangeList", + "documentation":"

IPv4 CIDR ranges to exclude from the rule.

" + }, + "Actions":{ + "shape":"ActionsList", + "documentation":"

Access protocol actions to include in the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

" + }, + "NotActions":{ + "shape":"ActionsList", + "documentation":"

Access protocol actions to exclude from the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

" + }, + "UserIds":{ + "shape":"UserIdList", + "documentation":"

User IDs to include in the rule.

" + }, + "NotUserIds":{ + "shape":"UserIdList", + "documentation":"

User IDs to exclude from the rule.

" + }, + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The identifier of the organization.

" + } + } + }, + "PutAccessControlRuleResponse":{ + "type":"structure", + "members":{ + } + }, "PutMailboxPermissionsRequest":{ "type":"structure", "required":[ @@ -2320,6 +2626,12 @@ }, "documentation":"

The representation of an Amazon WorkMail user.

" }, + "UserIdList":{ + "type":"list", + "member":{"shape":"WorkMailIdentifier"}, + "max":10, + "min":0 + }, "UserName":{ "type":"string", "max":64, diff --git a/botocore/exceptions.py b/botocore/exceptions.py index 3c42cafb..9b39b61e 100644 --- a/botocore/exceptions.py +++ b/botocore/exceptions.py @@ -480,7 +480,15 @@ class InvalidMaxRetryAttemptsError(InvalidRetryConfigurationError): """Error when invalid retry configuration is specified""" fmt = ( 'Value provided to "max_attempts": {provided_max_attempts} must ' - 'be an integer greater than or equal to zero.' + 'be an integer greater than or equal to {min_value}.' + ) + + +class InvalidRetryModeError(InvalidRetryConfigurationError): + """Error when invalid retry mode configuration is specified""" + fmt = ( + 'Invalid value provided to "mode": "{provided_retry_mode}" must ' + 'be one of: "legacy", "standard", "adaptive"' ) @@ -549,3 +557,9 @@ class MissingServiceIdError(UndefinedModelAttributeError): msg = self.fmt.format(**kwargs) Exception.__init__(self, msg) self.kwargs = kwargs + + +class CapacityNotAvailableError(BotoCoreError): + fmt = ( + 'Insufficient request capacity available.' + ) diff --git a/botocore/handlers.py b/botocore/handlers.py index daa22886..a312f5c2 100644 --- a/botocore/handlers.py +++ b/botocore/handlers.py @@ -484,8 +484,7 @@ def parse_get_bucket_location(parsed, http_response, **kwargs): # The "parsed" passed in only has the ResponseMetadata # filled out. This handler will fill in the LocationConstraint # value. - if 'LocationConstraint' in parsed: - # Response already set - a stub? + if http_response.raw is None: return response_body = http_response.content parser = xml.etree.cElementTree.XMLParser( diff --git a/botocore/model.py b/botocore/model.py index 0a39a733..de5d17f5 100644 --- a/botocore/model.py +++ b/botocore/model.py @@ -55,7 +55,7 @@ class Shape(object): 'jsonvalue', 'timestampFormat', 'hostLabel'] METADATA_ATTRS = ['required', 'min', 'max', 'sensitive', 'enum', 'idempotencyToken', 'error', 'exception', - 'endpointdiscoveryid'] + 'endpointdiscoveryid', 'retryable'] MAP_TYPE = OrderedDict def __init__(self, shape_name, shape_model, shape_resolver=None): diff --git a/botocore/retries/__init__.py b/botocore/retries/__init__.py new file mode 100644 index 00000000..a6d6b377 --- /dev/null +++ b/botocore/retries/__init__.py @@ -0,0 +1,6 @@ +"""New retry v2 handlers. + +This package obsoletes the botocore/retryhandler.py module and contains +new retry logic. + +""" diff --git a/botocore/retries/adaptive.py b/botocore/retries/adaptive.py new file mode 100644 index 00000000..d85e2e49 --- /dev/null +++ b/botocore/retries/adaptive.py @@ -0,0 +1,117 @@ +import math +import logging +import threading + +from botocore.retries import bucket +from botocore.retries import throttling +from botocore.retries import standard + + +logger = logging.getLogger(__name__) + + +def register_retry_handler(client): + clock = bucket.Clock() + rate_adjustor = throttling.CubicCalculator(starting_max_rate=0, + start_time=clock.current_time()) + token_bucket = bucket.TokenBucket(max_rate=1, clock=clock) + rate_clocker = RateClocker(clock) + throttling_detector = standard.ThrottlingErrorDetector( + retry_event_adapter=standard.RetryEventAdapter(), + ) + limiter = ClientRateLimiter( + rate_adjustor=rate_adjustor, + rate_clocker=rate_clocker, + token_bucket=token_bucket, + throttling_detector=throttling_detector, + clock=clock, + ) + client.meta.events.register( + 'before-send', limiter.on_sending_request, + ) + client.meta.events.register( + 'needs-retry', limiter.on_receiving_response, + ) + return limiter + + +class ClientRateLimiter(object): + + _MAX_RATE_ADJUST_SCALE = 2.0 + + def __init__(self, rate_adjustor, rate_clocker, token_bucket, + throttling_detector, clock): + self._rate_adjustor = rate_adjustor + self._rate_clocker = rate_clocker + self._token_bucket = token_bucket + self._throttling_detector = throttling_detector + self._clock = clock + self._enabled = False + self._lock = threading.Lock() + + def on_sending_request(self, request, **kwargs): + if self._enabled: + self._token_bucket.acquire() + + # Hooked up to needs-retry. + def on_receiving_response(self, **kwargs): + measured_rate = self._rate_clocker.record() + timestamp = self._clock.current_time() + with self._lock: + if not self._throttling_detector.is_throttling_error(**kwargs): + throttling = False + new_rate = self._rate_adjustor.success_received(timestamp) + else: + throttling = True + if not self._enabled: + rate_to_use = measured_rate + else: + rate_to_use = min(measured_rate, self._token_bucket.max_rate) + new_rate = self._rate_adjustor.error_received( + rate_to_use, timestamp) + logger.debug("Throttling response received, new send rate: %s " + "measured rate: %s, token bucket capacity " + "available: %s", new_rate, measured_rate, + self._token_bucket.available_capacity) + self._enabled = True + self._token_bucket.max_rate = min( + new_rate, self._MAX_RATE_ADJUST_SCALE * measured_rate) + + +class RateClocker(object): + """Tracks the rate at which a client is sending a request.""" + + _DEFAULT_SMOOTHING = 0.8 + # Update the rate every _TIME_BUCKET_RANGE seconds. + _TIME_BUCKET_RANGE = 0.5 + + def __init__(self, clock, smoothing=_DEFAULT_SMOOTHING, + time_bucket_range=_TIME_BUCKET_RANGE): + self._clock = clock + self._measured_rate = 0 + self._smoothing = smoothing + self._last_bucket = math.floor(self._clock.current_time()) + self._time_bucket_scale = 1 / self._TIME_BUCKET_RANGE + self._count = 0 + self._lock = threading.Lock() + + def record(self, amount=1): + with self._lock: + t = self._clock.current_time() + bucket = math.floor( + t * self._time_bucket_scale) / self._time_bucket_scale + self._count += amount + if bucket > self._last_bucket: + current_rate = self._count / float( + bucket - self._last_bucket) + self._measured_rate = ( + (current_rate * self._smoothing) + + (self._measured_rate * (1 - self._smoothing)) + ) + self._count = 0 + self._last_bucket = bucket + return self._measured_rate + + @property + def measured_rate(self): + return self._measured_rate diff --git a/botocore/retries/base.py b/botocore/retries/base.py new file mode 100644 index 00000000..eec9da97 --- /dev/null +++ b/botocore/retries/base.py @@ -0,0 +1,27 @@ +class BaseRetryBackoff(object): + + def delay_amount(self, context): + """Calculate how long we should delay before retrying. + + :type context: RetryContext + + """ + raise NotImplementedError("delay_amount") + + +class BaseRetryableChecker(object): + """Base class for determining if a retry should happen. + + This base class checks for specific retryable conditions. + A single retryable checker doesn't necessarily indicate a retry + will happen. It's up to the ``RetryPolicy`` to use its + ``BaseRetryableCheckers`` to make the final decision on whether a retry + should happen. + """ + + def is_retryable(self, context): + """Returns True if retryable, False if not. + + :type context: RetryContext + """ + raise NotImplementedError("is_retryable") \ No newline at end of file diff --git a/botocore/retries/bucket.py b/botocore/retries/bucket.py new file mode 100644 index 00000000..338a4401 --- /dev/null +++ b/botocore/retries/bucket.py @@ -0,0 +1,114 @@ +"""This module implements token buckets used for client side throttling.""" +import time +import threading + +from botocore.exceptions import CapacityNotAvailableError + + +class Clock(object): + def __init__(self): + pass + + def sleep(self, amount): + time.sleep(amount) + + def current_time(self): + return time.time() + + +class TokenBucket(object): + + _MIN_RATE = 0.5 + + def __init__(self, max_rate, clock, min_rate=_MIN_RATE): + self._fill_rate = None + self._max_capacity = None + self._current_capacity = 0 + self._clock = clock + self._last_timestamp = None + self._min_rate = min_rate + self._lock = threading.Lock() + self._new_fill_rate_condition = threading.Condition(self._lock) + self.max_rate = max_rate + + @property + def max_rate(self): + return self._fill_rate + + @max_rate.setter + def max_rate(self, value): + with self._new_fill_rate_condition: + # Before we can change the rate we need to fill any pending + # tokens we might have based on the current rate. If we don't + # do this it means everything since the last recorded timestamp + # will accumulate at the rate we're about to set which isn't + # correct. + self._refill() + self._fill_rate = max(value, self._min_rate) + if value >= 1: + self._max_capacity = value + else: + self._max_capacity = 1 + # If we're scaling down, we also can't have a capacity that's + # more than our max_capacity. + self._current_capacity = min(self._current_capacity, + self._max_capacity) + self._new_fill_rate_condition.notify() + + @property + def max_capacity(self): + return self._max_capacity + + @property + def available_capacity(self): + return self._current_capacity + + def acquire(self, amount=1, block=True): + """Acquire token or return amount of time until next token available. + + If block is True, then this method will block until there's sufficient + capacity to acquire the desired amount. + + If block is False, then this method will return True is capacity + was successfully acquired, False otherwise. + + """ + with self._new_fill_rate_condition: + return self._acquire(amount=amount, block=block) + + def _acquire(self, amount, block): + self._refill() + if amount <= self._current_capacity: + self._current_capacity -= amount + return True + else: + if not block: + raise CapacityNotAvailableError() + # Not enough capacity. + sleep_amount = self._sleep_amount(amount) + while sleep_amount > 0: + # Until python3.2, wait() always returned None so we can't + # tell if a timeout occurred waiting on the cond var. + # Because of this we'll unconditionally call _refill(). + # The downside to this is that we were waken up via + # a notify(), we're calling unnecessarily calling _refill() an + # extra time. + self._new_fill_rate_condition.wait(sleep_amount) + self._refill() + sleep_amount = self._sleep_amount(amount) + self._current_capacity -= amount + return True + + def _sleep_amount(self, amount): + return (amount - self._current_capacity) / self._fill_rate + + def _refill(self): + timestamp = self._clock.current_time() + if self._last_timestamp is None: + self._last_timestamp = timestamp + return + current_capacity = self._current_capacity + fill_amount = (timestamp - self._last_timestamp) * self._fill_rate + new_capacity = min(self._max_capacity, current_capacity + fill_amount) + self._current_capacity = new_capacity + self._last_timestamp = timestamp diff --git a/botocore/retries/quota.py b/botocore/retries/quota.py new file mode 100644 index 00000000..cc0b3d5d --- /dev/null +++ b/botocore/retries/quota.py @@ -0,0 +1,57 @@ +"""Retry quota implementation. + + +""" +import threading + + +class RetryQuota(object): + INITIAL_CAPACITY = 500 + + def __init__(self, initial_capacity=INITIAL_CAPACITY, lock=None): + self._max_capacity = initial_capacity + self._available_capacity = initial_capacity + if lock is None: + lock = threading.Lock() + self._lock = lock + + def acquire(self, capacity_amount): + """Attempt to aquire a certain amount of capacity. + + If there's not sufficient amount of capacity available, ``False`` + is returned. Otherwise, ``True`` is returned, which indicates that + capacity was successfully allocated. + + """ + # The acquire() is only called when we encounter a retryable + # response so we aren't worried about locking the entire method. + with self._lock: + if capacity_amount > self._available_capacity: + return False + self._available_capacity -= capacity_amount + return True + + def release(self, capacity_amount): + """Release capacity back to the retry quota. + + The capacity being released will be truncated if necessary + to ensure the max capacity is never exceeded. + + """ + # Implementation note: The release() method is called as part + # of the "after-call" event, which means it gets invoked for + # every API call. In the common case where the request is + # successful and we're at full capacity, we can avoid locking. + # We can't exceed max capacity so there's no work we have to do. + if self._max_capacity == self._available_capacity: + return + with self._lock: + amount = min( + self._max_capacity - self._available_capacity, + capacity_amount + ) + self._available_capacity += amount + + @property + def available_capacity(self): + return self._available_capacity diff --git a/botocore/retries/special.py b/botocore/retries/special.py new file mode 100644 index 00000000..71a40e06 --- /dev/null +++ b/botocore/retries/special.py @@ -0,0 +1,48 @@ +"""Special cased retries. + +These are additional retry cases we still have to handle from the legacy +retry handler. They don't make sense as part of the standard mode retry +module. Ideally we should be able to remove this module. + +""" +import logging +from binascii import crc32 +from botocore.retries.base import BaseRetryableChecker + + +logger = logging.getLogger(__name__) + + +# TODO: This is an ideal candidate for the retryable trait once that's +# available. +class RetryIDPCommunicationError(BaseRetryableChecker): + + _SERVICE_NAME = 'sts' + + def is_retryable(self, context): + service_name = context.operation_model.service_model.service_name + if service_name != self._SERVICE_NAME: + return False + error_code = context.get_error_code() + return error_code == 'IDPCommunicationError' + + +class RetryDDBChecksumError(BaseRetryableChecker): + + _CHECKSUM_HEADER = 'x-amz-crc32' + _SERVICE_NAME = 'dynamodb' + + def is_retryable(self, context): + service_name = context.operation_model.service_model.service_name + if service_name != self._SERVICE_NAME: + return False + if context.http_response is None: + return False + checksum = context.http_response.headers.get(self._CHECKSUM_HEADER) + if checksum is None: + return False + actual_crc32 = crc32(context.http_response.content) & 0xffffffff + if actual_crc32 != int(checksum): + logger.debug("DynamoDB crc32 checksum does not match, " + "expected: %s, actual: %s", checksum, actual_crc32) + return True diff --git a/botocore/retries/standard.py b/botocore/retries/standard.py new file mode 100644 index 00000000..1f0b3690 --- /dev/null +++ b/botocore/retries/standard.py @@ -0,0 +1,495 @@ +"""Standard retry behavior. + +This contains the default standard retry behavior. +It provides consistent behavior with other AWS SDKs. + +The key base classes uses for retries: + + * ``BaseRetryableChecker`` - Use to check a specific condition that + indicates a retry should happen. This can include things like + max attempts, HTTP status code checks, error code checks etc. + * ``RetryBackoff`` - Use to determine how long we should backoff until + we retry a request. This is the class that will implement delay such + as exponential backoff. + * ``RetryPolicy`` - Main class that determines if a retry should + happen. It can combine data from a various BaseRetryableCheckers + to make a final call as to whether or not a retry should happen. + It then uses a ``BaseRetryBackoff`` to determine how long to delay. + * ``RetryHandler`` - The bridge between botocore's event system + used by endpoint.py to manage retries and the interfaces defined + in this module. + +This allows us to define an API that has minimal coupling to the event +based API used by botocore. + +""" +import random +import logging + +from botocore.exceptions import ConnectionError, HTTPClientError +from botocore.exceptions import ReadTimeoutError, ConnectTimeoutError +from botocore.retries import quota +from botocore.retries import special +from botocore.retries.base import BaseRetryBackoff, BaseRetryableChecker + +DEFAULT_MAX_ATTEMPTS = 3 +logger = logging.getLogger(__name__) + + +def register_retry_handler(client, max_attempts=DEFAULT_MAX_ATTEMPTS): + retry_quota = RetryQuotaChecker(quota.RetryQuota()) + + service_id = client.meta.service_model.service_id + service_event_name = service_id.hyphenize() + client.meta.events.register('after-call.%s' % service_event_name, + retry_quota.release_retry_quota) + + handler = RetryHandler( + retry_policy=RetryPolicy( + retry_checker=StandardRetryConditions(max_attempts=max_attempts), + retry_backoff=ExponentialBackoff(), + ), + retry_event_adapter=RetryEventAdapter(), + retry_quota=retry_quota, + ) + + unique_id = 'retry-config-%s' % service_event_name + client.meta.events.register( + 'needs-retry.%s' % service_event_name, handler.needs_retry, + unique_id=unique_id + ) + return handler + + +class RetryHandler(object): + """Bridge between botocore's event system and this module. + + This class is intended to be hooked to botocore's event system + as an event handler. + """ + def __init__(self, retry_policy, retry_event_adapter, retry_quota): + self._retry_policy = retry_policy + self._retry_event_adapter = retry_event_adapter + self._retry_quota = retry_quota + + def needs_retry(self, **kwargs): + """Connect as a handler to the needs-retry event.""" + retry_delay = None + context = self._retry_event_adapter.create_retry_context(**kwargs) + if self._retry_policy.should_retry(context): + # Before we can retry we need to ensure we have sufficient + # capacity in our retry quota. + if self._retry_quota.acquire_retry_quota(context): + retry_delay = self._retry_policy.compute_retry_delay(context) + logger.debug("Retry needed, retrying request after " + "delay of: %s", retry_delay) + else: + logger.debug("Retry needed but retry quota reached, " + "not retrying request.") + else: + logger.debug("Not retrying request.") + self._retry_event_adapter.adapt_retry_response_from_context( + context) + return retry_delay + + +class RetryEventAdapter(object): + """Adapter to existing retry interface used in the endpoints layer. + + This existing interface for determining if a retry needs to happen + is event based and used in ``botocore.endpoint``. The interface has + grown organically over the years and could use some cleanup. This + adapter converts that interface into the interface used by the + new retry strategies. + + """ + def create_retry_context(self, **kwargs): + """Create context based on needs-retry kwargs.""" + response = kwargs['response'] + if response is None: + # If response is None it means that an exception was raised + # because we never received a response from the service. This + # could be something like a ConnectionError we get from our + # http layer. + http_response = None + parsed_response = None + else: + http_response, parsed_response = response + # This provides isolation between the kwargs emitted in the + # needs-retry event, and what this module uses to check for + # retries. + context = RetryContext( + attempt_number=kwargs['attempts'], + operation_model=kwargs['operation'], + http_response=http_response, + parsed_response=parsed_response, + caught_exception=kwargs['caught_exception'], + request_context=kwargs['request_dict']['context'], + ) + return context + + def adapt_retry_response_from_context(self, context): + """Modify response back to user back from context.""" + # This will mutate attributes that are returned back to the end + # user. We do it this way so that all the various retry classes + # don't mutate any input parameters from the needs-retry event. + metadata = context.get_retry_metadata() + if context.parsed_response is not None: + context.parsed_response.setdefault( + 'ResponseMetadata', {}).update(metadata) + + +# Implementation note: this is meant to encapsulate all the misc stuff +# that gets sent in the needs-retry event. This is mapped so that params +# are more clear and explicit. +class RetryContext(object): + """Normalize a response that we use to check if a retry should occur. + + This class smoothes over the different types of responses we may get + from a service including: + + * A modeled error response from the service that contains a service + code and error message. + * A raw HTTP response that doesn't contain service protocol specific + error keys. + * An exception received while attempting to retrieve a response. + This could be a ConnectionError we receive from our HTTP layer which + could represent that we weren't able to receive a response from + the service. + + This class guarantees that at least one of the above attributes will be + non None. + + This class is meant to provide a read-only view into the properties + associated with a possible retryable response. None of the properties + are meant to be modified directly. + + """ + def __init__(self, attempt_number, operation_model=None, + parsed_response=None, http_response=None, + caught_exception=None, request_context=None): + # 1-based attempt number. + self.attempt_number = attempt_number + self.operation_model = operation_model + # This is the parsed response dictionary we get from parsing + # the HTTP response from the service. + self.parsed_response = parsed_response + # This is an instance of botocore.awsrequest.AWSResponse. + self.http_response = http_response + # This is a subclass of Exception that will be non None if + # an exception was raised when retrying to retrieve a response. + self.caught_exception = caught_exception + # This is the request context dictionary that's added to the + # request dict. This is used to story any additional state + # about the request. We use this for storing retry quota + # capacity. + if request_context is None: + request_context = {} + self.request_context = request_context + self._retry_metadata = {} + + # These are misc helper methods to avoid duplication in the various + # checkers. + def get_error_code(self): + """Check if there was a parsed response with an error code. + + If we could not find any error codes, ``None`` is returned. + + """ + if self.parsed_response is None: + return + return self.parsed_response.get('Error', {}).get('Code') + + def add_retry_metadata(self, **kwargs): + """Add key/value pairs to the retry metadata. + + This allows any objects during the retry process to add + metadata about any checks/validations that happened. + + This gets added to the response metadata in the retry handler. + + """ + self._retry_metadata.update(**kwargs) + + def get_retry_metadata(self): + return self._retry_metadata.copy() + + +class RetryPolicy(object): + def __init__(self, retry_checker, retry_backoff): + self._retry_checker = retry_checker + self._retry_backoff = retry_backoff + + def should_retry(self, context): + return self._retry_checker.is_retryable(context) + + def compute_retry_delay(self, context): + return self._retry_backoff.delay_amount(context) + + +class ExponentialBackoff(BaseRetryBackoff): + + _BASE = 2 + _MAX_BACKOFF = 20 + + def __init__(self, max_backoff=20, random=random.random): + self._base = self._BASE + self._max_backoff = max_backoff + self._random = random + + def delay_amount(self, context): + """Calculates delay based on exponential backoff. + + This class implements truncated binary exponential backoff + with jitter:: + + t_i = min(rand(0, 1) * 2 ** attempt, MAX_BACKOFF) + + where ``i`` is the request attempt (0 based). + + """ + # The context.attempt_number is a 1-based value, but we have + # to calculate the delay based on i based a 0-based value. We + # want the first delay to just be ``rand(0, 1)``. + return min( + self._random() * (self._base ** (context.attempt_number - 1)), + self._max_backoff + ) + + +class MaxAttemptsChecker(BaseRetryableChecker): + def __init__(self, max_attempts): + self._max_attempts = max_attempts + + def is_retryable(self, context): + under_max_attempts = context.attempt_number < self._max_attempts + if not under_max_attempts: + logger.debug("Max attempts of %s reached.", self._max_attempts) + context.add_retry_metadata(MaxAttemptsReached=True) + return under_max_attempts + + +class TransientRetryableChecker(BaseRetryableChecker): + _TRANSIENT_ERROR_CODES = [ + 'RequestTimeout', + 'RequestTimeoutException', + 'PriorRequestNotComplete', + ] + _TRANSIENT_STATUS_CODES = [500, 502, 503, 504] + _TRANSIENT_EXCEPTION_CLS = ( + ConnectionError, + HTTPClientError, + ) + + def __init__(self, transient_error_codes=None, + transient_status_codes=None, + transient_exception_cls=None): + if transient_error_codes is None: + transient_error_codes = self._TRANSIENT_ERROR_CODES[:] + if transient_status_codes is None: + transient_status_codes = self._TRANSIENT_STATUS_CODES[:] + if transient_exception_cls is None: + transient_exception_cls = self._TRANSIENT_EXCEPTION_CLS + self._transient_error_codes = transient_error_codes + self._transient_status_codes = transient_status_codes + self._transient_exception_cls = transient_exception_cls + + def is_retryable(self, context): + if context.get_error_code() in self._transient_error_codes: + return True + if context.http_response is not None: + if context.http_response.status_code in \ + self._transient_status_codes: + return True + if context.caught_exception is not None: + return isinstance(context.caught_exception, + self._transient_exception_cls) + return False + + +class ThrottledRetryableChecker(BaseRetryableChecker): + # This is the union of all error codes we've seen that represent + # a throttled error. + _THROTTLED_ERROR_CODES = [ + 'Throttling', + 'ThrottlingException', + 'ThrottledException', + 'RequestThrottledException', + 'TooManyRequestsException', + 'ProvisionedThroughputExceededException', + 'TransactionInProgressException', + 'RequestLimitExceeded', + 'BandwidthLimitExceeded', + 'LimitExceededException', + 'RequestThrottled', + 'SlowDown', + 'PriorRequestNotComplete', + 'EC2ThrottledException', + ] + + def __init__(self, throttled_error_codes=None): + if throttled_error_codes is None: + throttled_error_codes = self._THROTTLED_ERROR_CODES[:] + self._throttled_error_codes = throttled_error_codes + + def is_retryable(self, context): + # Only the error code from a parsed service response is used + # to determine if the response is a throttled response. + return context.get_error_code() in self._throttled_error_codes + + +class ModeledRetryableChecker(BaseRetryableChecker): + """Check if an error has been modeled as retryable.""" + + def __init__(self): + self._error_detector = ModeledRetryErrorDetector() + + def is_retryable(self, context): + error_code = context.get_error_code() + if error_code is None: + return False + return self._error_detector.detect_error_type(context) is not None + + +class ModeledRetryErrorDetector(object): + """Checks whether or not an error is a modeled retryable error.""" + # There are return values from the detect_error_type() method. + TRANSIENT_ERROR = 'TRANSIENT_ERROR' + THROTTLING_ERROR = 'THROTTLING_ERROR' + # This class is lower level than ModeledRetryableChecker, which + # implements BaseRetryableChecker. This object allows you to distinguish + # between the various types of retryable errors. + + def detect_error_type(self, context): + """Detect the error type associated with an error code and model. + + This will either return: + + * ``self.TRANSIENT_ERROR`` - If the error is a transient error + * ``self.THROTTLING_ERROR`` - If the error is a throttling error + * ``None`` - If the error is neither type of error. + + """ + error_code = context.get_error_code() + op_model = context.operation_model + if op_model is None or not op_model.error_shapes: + return + for shape in op_model.error_shapes: + if shape.metadata.get('retryable') is not None: + # Check if this error code matches the shape. This can + # be either by name or by a modeled error code. + error_code_to_check = ( + shape.metadata.get('error', {}).get('code') + or shape.name + ) + if error_code == error_code_to_check: + if shape.metadata['retryable'].get('throttling'): + return self.THROTTLING_ERROR + return self.TRANSIENT_ERROR + + +class ThrottlingErrorDetector(object): + def __init__(self, retry_event_adapter): + self._modeled_error_detector = ModeledRetryErrorDetector() + self._fixed_error_code_detector = ThrottledRetryableChecker() + self._retry_event_adapter = retry_event_adapter + + # This expects the kwargs from needs-retry to be passed through. + def is_throttling_error(self, **kwargs): + context = self._retry_event_adapter.create_retry_context(**kwargs) + if self._fixed_error_code_detector.is_retryable(context): + return True + error_type = self._modeled_error_detector.detect_error_type(context) + return error_type == self._modeled_error_detector.THROTTLING_ERROR + + +class StandardRetryConditions(BaseRetryableChecker): + """Concrete class that implements the standard retry policy checks. + + Specifically: + + not max_attempts and (transient or throttled or modeled_retry) + + """ + + def __init__(self, max_attempts=DEFAULT_MAX_ATTEMPTS): + # Note: This class is for convenience so you can have the + # standard retry condition in a single class. + self._max_attempts_checker = MaxAttemptsChecker(max_attempts) + self._additional_checkers = OrRetryChecker([ + TransientRetryableChecker(), + ThrottledRetryableChecker(), + ModeledRetryableChecker(), + OrRetryChecker([ + special.RetryIDPCommunicationError(), + special.RetryDDBChecksumError(), + ]) + ]) + + def is_retryable(self, context): + return (self._max_attempts_checker.is_retryable(context) and + self._additional_checkers.is_retryable(context)) + + +class OrRetryChecker(BaseRetryableChecker): + def __init__(self, checkers): + self._checkers = checkers + + def is_retryable(self, context): + return any(checker.is_retryable(context) for checker in self._checkers) + + +class RetryQuotaChecker(object): + _RETRY_COST = 5 + _NO_RETRY_INCREMENT = 1 + _TIMEOUT_RETRY_REQUEST = 10 + _TIMEOUT_EXCEPTIONS = (ConnectTimeoutError, ReadTimeoutError) + + # Implementation note: We're not making this a BaseRetryableChecker + # because this isn't just a check if we can retry. This also changes + # state so we have to careful when/how we call this. Making it + # a BaseRetryableChecker implies you can call .is_retryable(context) + # as many times as you want and not affect anything. + + def __init__(self, quota): + self._quota = quota + # This tracks the last amount + self._last_amount_acquired = None + + def acquire_retry_quota(self, context): + if self._is_timeout_error(context): + capacity_amount = self._TIMEOUT_RETRY_REQUEST + else: + capacity_amount = self._RETRY_COST + success = self._quota.acquire(capacity_amount) + if success: + # We add the capacity amount to the request context so we know + # how much to release later. The capacity amount can vary based + # on the error. + context.request_context['retry_quota_capacity'] = capacity_amount + return True + context.add_retry_metadata(RetryQuotaReached=True) + return False + + def _is_timeout_error(self, context): + return isinstance(context.caught_exception, self._TIMEOUT_EXCEPTIONS) + + # This is intended to be hooked up to ``after-call``. + def release_retry_quota(self, context, http_response, **kwargs): + # There's three possible options. + # 1. The HTTP response did not have a 2xx response. In that case we + # give no quota back. + # 2. The HTTP request was successful and was never retried. In + # that case we give _NO_RETRY_INCREMENT back. + # 3. The API call had retries, and we eventually receive an HTTP + # response with a 2xx status code. In that case we give back + # whatever quota was associated with the last acquisition. + if http_response is None: + return + status_code = http_response.status_code + if 200 <= status_code < 300: + if 'retry_quota_capacity' not in context: + self._quota.release(self._NO_RETRY_INCREMENT) + else: + capacity_amount = context['retry_quota_capacity'] + self._quota.release(capacity_amount) diff --git a/botocore/retries/throttling.py b/botocore/retries/throttling.py new file mode 100644 index 00000000..2143f394 --- /dev/null +++ b/botocore/retries/throttling.py @@ -0,0 +1,54 @@ +from collections import namedtuple + +CubicParams = namedtuple('CubicParams', ['w_max', 'k', 'last_fail']) + + +class CubicCalculator(object): + _SCALE_CONSTANT = 0.4 + _BETA = 0.7 + + def __init__(self, starting_max_rate, + start_time, + scale_constant=_SCALE_CONSTANT, beta=_BETA): + self._w_max = starting_max_rate + self._scale_constant = scale_constant + self._beta = beta + self._k = self._calculate_zero_point() + self._last_fail = start_time + + def _calculate_zero_point(self): + k = ((self._w_max * (1 - self._beta)) / self._scale_constant) ** (1 / 3.0) + return k + + def success_received(self, timestamp): + dt = timestamp - self._last_fail + new_rate = ( + self._scale_constant * (dt - self._k) ** 3 + self._w_max + ) + return new_rate + + def error_received(self, current_rate, timestamp): + # Consider not having this be the current measured rate. + + # We have a new max rate, which is the current rate we were sending + # at when we received an error response. + self._w_max = current_rate + self._k = self._calculate_zero_point() + self._last_fail = timestamp + return current_rate * self._beta + + def get_params_snapshot(self): + """Return a read-only object of the current cubic parameters. + + These parameters are intended to be used for debug/troubleshooting + purposes. These object is a read-only snapshot and cannot be used + to modify the behavior of the CUBIC calculations. + + New parameters may be added to this object in the future. + + """ + return CubicParams( + w_max=self._w_max, + k=self._k, + last_fail=self._last_fail + ) diff --git a/botocore/utils.py b/botocore/utils.py index 3de60079..e38c4b38 100644 --- a/botocore/utils.py +++ b/botocore/utils.py @@ -24,13 +24,13 @@ import socket import cgi import dateutil.parser -from dateutil.tz import tzlocal, tzutc +from dateutil.tz import tzutc import botocore import botocore.awsrequest import botocore.httpsession from botocore.compat import json, quote, zip_longest, urlsplit, urlunsplit -from botocore.compat import OrderedDict, six, urlparse +from botocore.compat import OrderedDict, six, urlparse, get_tzinfo_options from botocore.vendored.six.moves.urllib.request import getproxies, proxy_bypass from botocore.exceptions import ( InvalidExpressionError, ConfigNotFound, InvalidDNSNameError, ClientError, @@ -590,6 +590,25 @@ def percent_encode(input_str, safe=SAFE_CHARS): return quote(input_str, safe=safe) +def _parse_timestamp_with_tzinfo(value, tzinfo): + """Parse timestamp with pluggable tzinfo options.""" + if isinstance(value, (int, float)): + # Possibly an epoch time. + return datetime.datetime.fromtimestamp(value, tzinfo()) + else: + try: + return datetime.datetime.fromtimestamp(float(value), tzinfo()) + except (TypeError, ValueError): + pass + try: + # In certain cases, a timestamp marked with GMT can be parsed into a + # different time zone, so here we provide a context which will + # enforce that GMT == UTC. + return dateutil.parser.parse(value, tzinfos={'GMT': tzutc()}) + except (TypeError, ValueError) as e: + raise ValueError('Invalid timestamp "%s": %s' % (value, e)) + + def parse_timestamp(value): """Parse a timestamp into a datetime object. @@ -602,21 +621,14 @@ def parse_timestamp(value): This will return a ``datetime.datetime`` object. """ - if isinstance(value, (int, float)): - # Possibly an epoch time. - return datetime.datetime.fromtimestamp(value, tzlocal()) - else: + for tzinfo in get_tzinfo_options(): try: - return datetime.datetime.fromtimestamp(float(value), tzlocal()) - except (TypeError, ValueError): - pass - try: - # In certain cases, a timestamp marked with GMT can be parsed into a - # different time zone, so here we provide a context which will - # enforce that GMT == UTC. - return dateutil.parser.parse(value, tzinfos={'GMT': tzutc()}) - except (TypeError, ValueError) as e: - raise ValueError('Invalid timestamp "%s": %s' % (value, e)) + return _parse_timestamp_with_tzinfo(value, tzinfo) + except OSError as e: + logger.debug('Unable to parse timestamp with "%s" timezone info.', + tzinfo.__name__, exc_info=e) + raise RuntimeError('Unable to calculate correct timezone offset for ' + '"%s"' % value) def parse_to_aware_datetime(value): diff --git a/docs/source/conf.py b/docs/source/conf.py index 60fcb999..4eb7d03b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -52,9 +52,9 @@ copyright = u'2013, Mitch Garnaat' # built documents. # # The short X.Y version. -version = '1.14.' +version = '1.15.' # The full version, including alpha/beta/rc tags. -release = '1.14.14' +release = '1.15.26' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/tests/functional/retries/__init__.py b/tests/functional/retries/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/functional/retries/test_bucket.py b/tests/functional/retries/test_bucket.py new file mode 100644 index 00000000..1e9f33b4 --- /dev/null +++ b/tests/functional/retries/test_bucket.py @@ -0,0 +1,109 @@ +import random +import time +import threading +from tests import unittest + +from botocore.retries import bucket + + +class InstrumentedTokenBucket(bucket.TokenBucket): + def _acquire(self, amount, block): + rval = super(InstrumentedTokenBucket, self)._acquire(amount, block) + assert self._current_capacity >= 0 + return rval + + +class TestTokenBucketThreading(unittest.TestCase): + def setUp(self): + self.shutdown_threads = False + self.caught_exceptions = [] + self.acquisitions_by_thread = {} + + def run_in_thread(self): + while not self.shutdown_threads: + capacity = random.randint(1, self.max_capacity) + self.retry_quota.acquire(capacity) + self.seen_capacities.append(self.retry_quota.available_capacity) + self.retry_quota.release(capacity) + self.seen_capacities.append(self.retry_quota.available_capacity) + + def create_clock(self): + return bucket.Clock() + + def test_can_change_max_rate_while_blocking(self): + # This isn't a stress test, we just want to verify we can change + # the rate at which we acquire a token. + min_rate = 0.1 + max_rate = 1 + token_bucket = bucket.TokenBucket( + min_rate=min_rate, max_rate=max_rate, + clock=self.create_clock(), + ) + # First we'll set the max_rate to 0.1 (min_rate). This means that + # it will take 10 seconds to accumulate a single token. We'll start + # a thread and have it acquire() a token. + # Then in the main thread we'll change the max_rate to something + # really quick (e.g 100). We should immediately get a token back. + # This is going to be timing sensitive, but we can verify that + # as long as it doesn't take 10 seconds to get a token, we were + # able to update the rate as needed. + thread = threading.Thread(target=token_bucket.acquire) + token_bucket.max_rate = min_rate + start_time = time.time() + thread.start() + # This shouldn't block the main thread. + token_bucket.max_rate = 100 + thread.join() + end_time = time.time() + self.assertLessEqual(end_time - start_time, 1.0 / min_rate) + + def acquire_in_loop(self, token_bucket): + while not self.shutdown_threads: + try: + self.assertTrue(token_bucket.acquire()) + thread_name = threading.current_thread().name + self.acquisitions_by_thread[thread_name] += 1 + except Exception as e: + self.caught_exceptions.append(e) + + def randomly_set_max_rate(self, token_bucket, min_val, max_val): + while not self.shutdown_threads: + new_rate = random.randint(min_val, max_val) + token_bucket.max_rate = new_rate + time.sleep(0.01) + + def test_stress_test_token_bucket(self): + token_bucket = InstrumentedTokenBucket( + max_rate=10, + clock=self.create_clock(), + ) + all_threads = [] + for _ in range(2): + all_threads.append( + threading.Thread(target=self.randomly_set_max_rate, + args=(token_bucket, 30, 200)) + ) + for _ in range(10): + t = threading.Thread(target=self.acquire_in_loop, + args=(token_bucket,)) + self.acquisitions_by_thread[t.name] = 0 + all_threads.append(t) + for thread in all_threads: + thread.start() + try: + # If you're working on this code you can bump this number way + # up to stress test it more locally. + time.sleep(3) + finally: + self.shutdown_threads = True + for thread in all_threads: + thread.join() + self.assertEqual(self.caught_exceptions, []) + distribution = self.acquisitions_by_thread.values() + mean = sum(distribution) / float(len(distribution)) + # We can't really rely on any guarantees about evenly distributing + # thread acquisition(), e.g. must be with a 2 stddev range, but we + # can sanity check that our implementation isn't drastically + # starving a thread. So we'll arbitrarily say that a thread + # can't have less than 30% of the mean allocations per thread. + self.assertTrue(not any(x < (0.3 * mean) for x in distribution)) diff --git a/tests/functional/retries/test_quota.py b/tests/functional/retries/test_quota.py new file mode 100644 index 00000000..00ffa24c --- /dev/null +++ b/tests/functional/retries/test_quota.py @@ -0,0 +1,42 @@ +import random +import time +import threading +from tests import unittest + +from botocore.retries import quota + + +class TestRetryQuota(unittest.TestCase): + def setUp(self): + self.max_capacity = 50 + self.retry_quota = quota.RetryQuota(self.max_capacity) + self.shutdown_threads = False + self.seen_capacities = [] + + def run_in_thread(self): + while not self.shutdown_threads: + capacity = random.randint(1, self.max_capacity) + self.retry_quota.acquire(capacity) + self.seen_capacities.append(self.retry_quota.available_capacity) + self.retry_quota.release(capacity) + self.seen_capacities.append(self.retry_quota.available_capacity) + + def test_capacity_stays_within_range(self): + # The main thing we're after is that the available_capacity + # should always be 0 <= capacity <= max_capacity. + # So what we do is spawn a number of threads and them acquire + # random capacity. They'll check that they never see an invalid + # capacity. + threads = [] + for i in range(10): + threads.append(threading.Thread(target=self.run_in_thread)) + for thread in threads: + thread.start() + # We'll let things run for a second. + time.sleep(1) + self.shutdown_threads = True + for thread in threads: + thread.join() + for seen_capacity in self.seen_capacities: + self.assertGreaterEqual(seen_capacity, 0) + self.assertLessEqual(seen_capacity, self.max_capacity) diff --git a/tests/functional/test_retry.py b/tests/functional/test_retry.py index 5fd8598f..51e200cd 100644 --- a/tests/functional/test_retry.py +++ b/tests/functional/test_retry.py @@ -11,33 +11,40 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. import contextlib +import json from tests import BaseSessionTest, mock, ClientHTTPStubber from botocore.exceptions import ClientError from botocore.config import Config -class TestRetry(BaseSessionTest): +class BaseRetryTest(BaseSessionTest): def setUp(self): - super(TestRetry, self).setUp() + super(BaseRetryTest, self).setUp() self.region = 'us-west-2' self.sleep_patch = mock.patch('time.sleep') self.sleep_patch.start() def tearDown(self): + super(BaseRetryTest, self).tearDown() self.sleep_patch.stop() @contextlib.contextmanager - def assert_will_retry_n_times(self, client, num_retries): + def assert_will_retry_n_times(self, client, num_retries, + status=500, body=b'{}'): num_responses = num_retries + 1 + if not isinstance(body, bytes): + body = json.dumps(body).encode() with ClientHTTPStubber(client) as http_stubber: for _ in range(num_responses): - http_stubber.add_response(status=500, body=b'{}') + http_stubber.add_response(status=status, body=body) with self.assertRaisesRegexp( ClientError, 'reached max retries: %s' % num_retries): yield self.assertEqual(len(http_stubber.requests), num_responses) + +class TestLegacyRetry(BaseRetryTest): def test_can_override_max_attempts(self): client = self.session.create_client( 'dynamodb', self.region, config=Config( @@ -101,3 +108,82 @@ class TestRetry(BaseSessionTest): retries={'max_attempts': 0})) with self.assert_will_retry_n_times(client, 0): client.list_repositories() + + +class TestRetriesV2(BaseRetryTest): + def create_client_with_retry_mode(self, service, retry_mode, + max_attempts=None): + retries = {'mode': retry_mode} + if max_attempts is not None: + retries['total_max_attempts'] = max_attempts + client = self.session.create_client( + service, self.region, config=Config(retries=retries)) + return client + + def test_standard_mode_has_default_3_retries(self): + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='standard') + with self.assert_will_retry_n_times(client, 2): + client.list_tables() + + def test_standard_mode_can_configure_max_attempts(self): + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='standard', max_attempts=5) + with self.assert_will_retry_n_times(client, 4): + client.list_tables() + + def test_no_retry_needed_standard_mode(self): + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='standard') + with ClientHTTPStubber(client) as http_stubber: + http_stubber.add_response(status=200, body=b'{}') + client.list_tables() + + def test_standard_mode_retry_throttling_error(self): + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='standard') + error_body = { + "__type": "ThrottlingException", + "message": "Error" + } + with self.assert_will_retry_n_times(client, 2, + status=400, + body=error_body): + client.list_tables() + + def test_standard_mode_retry_transient_error(self): + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='standard') + with self.assert_will_retry_n_times(client, 2, status=502): + client.list_tables() + + def test_adaptive_mode_still_retries_errors(self): + # Verify that adaptive mode is just adding on to standard mode. + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='adaptive') + with self.assert_will_retry_n_times(client, 2): + client.list_tables() + + def test_adaptive_mode_retry_transient_error(self): + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='adaptive') + with self.assert_will_retry_n_times(client, 2, status=502): + client.list_tables() + + def test_can_exhaust_default_retry_quota(self): + # Quota of 500 / 5 retry costs == 100 retry attempts + # 100 retry attempts / 2 retries per API call == 50 client calls + client = self.create_client_with_retry_mode( + 'dynamodb', retry_mode='standard') + for i in range(50): + with self.assert_will_retry_n_times(client, 2, status=502): + client.list_tables() + # Now on the 51th attempt we should see quota errors, which we can + # verify by looking at the request metadata. + with ClientHTTPStubber(client) as http_stubber: + http_stubber.add_response(status=502, body=b'{}') + with self.assertRaises(ClientError) as e: + client.list_tables() + self.assertTrue( + e.exception.response['ResponseMetadata'].get('RetryQuotaReached') + ) diff --git a/tests/functional/test_stub.py b/tests/functional/test_stub.py index f44b722b..752ba224 100644 --- a/tests/functional/test_stub.py +++ b/tests/functional/test_stub.py @@ -313,3 +313,21 @@ class TestStubber(unittest.TestCase): actual_response = self.client.list_objects(**expected_params) self.assertEqual(desired_response, actual_response) self.stubber.assert_no_pending_responses() + + def test_parse_get_bucket_location(self): + error_code = "NoSuchBucket" + error_message = "The specified bucket does not exist" + self.stubber.add_client_error( + 'get_bucket_location', error_code, error_message) + self.stubber.activate() + + with self.assertRaises(ClientError): + self.client.get_bucket_location(Bucket='foo') + + def test_parse_get_bucket_location_returns_response(self): + service_response = {"LocationConstraint": "us-west-2"} + self.stubber.add_response('get_bucket_location',service_response) + self.stubber.activate() + response = self.client.get_bucket_location(Bucket='foo') + self.assertEqual(response, service_response) + diff --git a/tests/unit/retries/__init__.py b/tests/unit/retries/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/retries/test_adaptive.py b/tests/unit/retries/test_adaptive.py new file mode 100644 index 00000000..40796a6e --- /dev/null +++ b/tests/unit/retries/test_adaptive.py @@ -0,0 +1,172 @@ +from tests import unittest + +import mock + +from botocore.retries import adaptive +from botocore.retries import standard +from botocore.retries import bucket +from botocore.retries import throttling + + +class FakeClock(bucket.Clock): + def __init__(self, timestamp_sequences): + self.timestamp_sequences = timestamp_sequences + self.sleep_call_amounts = [] + + def sleep(self, amount): + self.sleep_call_amounts.append(amount) + + def current_time(self): + return self.timestamp_sequences.pop(0) + + +class TestCanCreateRetryHandler(unittest.TestCase): + def test_can_register_retry_handler(self): + client = mock.Mock() + limiter = adaptive.register_retry_handler(client) + self.assertEqual( + client.meta.events.register.call_args_list, + [mock.call('before-send', limiter.on_sending_request), + mock.call('needs-retry', limiter.on_receiving_response)] + ) + + +class TestClientRateLimiter(unittest.TestCase): + def setUp(self): + self.timestamp_sequences = [0] + self.clock = FakeClock(self.timestamp_sequences) + self.token_bucket = mock.Mock(spec=bucket.TokenBucket) + self.rate_adjustor = mock.Mock(spec=throttling.CubicCalculator) + self.rate_clocker = mock.Mock(spec=adaptive.RateClocker) + self.throttling_detector = mock.Mock( + spec=standard.ThrottlingErrorDetector) + + def create_client_limiter(self): + rate_limiter = adaptive.ClientRateLimiter( + rate_adjustor=self.rate_adjustor, + rate_clocker=self.rate_clocker, + token_bucket=self.token_bucket, + throttling_detector=self.throttling_detector, + clock=self.clock, + ) + return rate_limiter + + def test_bucket_bucket_acquisition_only_if_enabled(self): + rate_limiter = self.create_client_limiter() + rate_limiter.on_sending_request(request=mock.sentinel.request) + self.assertFalse(self.token_bucket.acquire.called) + + def test_token_bucket_enabled_on_throttling_error(self): + rate_limiter = self.create_client_limiter() + self.throttling_detector.is_throttling_error.return_value = True + self.rate_clocker.record.return_value = 21 + self.rate_adjustor.error_received.return_value = 17 + rate_limiter.on_receiving_response() + # Now if we call on_receiving_response we should try to acquire + # token. + self.timestamp_sequences.append(1) + rate_limiter.on_sending_request(request=mock.sentinel.request) + self.assertTrue(self.token_bucket.acquire.called) + + def test_max_rate_updated_on_success_response(self): + rate_limiter = self.create_client_limiter() + self.throttling_detector.is_throttling_error.return_value = False + self.rate_adjustor.success_received.return_value = 20 + self.rate_clocker.record.return_value = 21 + rate_limiter.on_receiving_response() + self.assertEqual(self.token_bucket.max_rate, 20) + + def test_max_rate_cant_exceed_20_percent_max(self): + rate_limiter = self.create_client_limiter() + self.throttling_detector.is_throttling_error.return_value = False + # So if our actual measured sending rate is 20 TPS + self.rate_clocker.record.return_value = 20 + # But the rate adjustor is telling us to go up to 100 TPS + self.rate_adjustor.success_received.return_value = 100 + + # The most we should go up is 2.0 * 20 + rate_limiter.on_receiving_response() + self.assertEqual(self.token_bucket.max_rate, 2.0 * 20) + +class TestRateClocker(unittest.TestCase): + + def setUp(self): + self.timestamp_sequences = [0] + self.clock = FakeClock(self.timestamp_sequences) + self.rate_measure = adaptive.RateClocker(self.clock) + self.smoothing = 0.8 + + def test_initial_rate_is_0(self): + self.assertEqual(self.rate_measure.measured_rate, 0) + + def test_time_updates_if_after_bucket_range(self): + self.timestamp_sequences.append(1) + # This should be 1 * 0.8 + 0 * 0.2, or just 0.8 + self.assertEqual(self.rate_measure.record(), 0.8) + + def test_can_measure_constant_rate(self): + # Timestamps of 1 every second indicate a rate of 1 TPS. + self.timestamp_sequences.extend(range(1, 21)) + for _ in range(20): + self.rate_measure.record() + self.assertAlmostEqual(self.rate_measure.measured_rate, 1) + + def test_uses_smoothing_to_favor_recent_weights(self): + self.timestamp_sequences.extend([ + 1, + 1.5, + 2, + 2.5, + 3, + 3.5, + 4, + # If we now wait 10 seconds (.1 TPS), + # our rate is somewhere between 2 TPS and .1 TPS. + 14, + ]) + for _ in range(7): + self.rate_measure.record() + # We should almost be at 2.0 but not quite. + self.assertGreaterEqual(self.rate_measure.measured_rate, 1.99) + self.assertLessEqual(self.rate_measure.measured_rate, 2.0) + # With our last recording we now drop down between 0.1 and 2 + # depending on our smoothing factor. + self.rate_measure.record() + self.assertGreaterEqual(self.rate_measure.measured_rate, 0.1) + self.assertLessEqual(self.rate_measure.measured_rate, 2.0) + + def test_noop_when_delta_t_is_0(self): + self.timestamp_sequences.extend([ + 1, + 1, + 1, + 2, + 3 + ]) + for _ in range(5): + self.rate_measure.record() + self.assertGreaterEqual(self.rate_measure.measured_rate, 1.0) + + def test_times_are_grouped_per_time_bucket(self): + # Using our default of 0.5 time buckets, we have: + self.timestamp_sequences.extend([ + 0.1, + 0.2, + 0.3, + 0.4, + 0.49, + ]) + for _ in range(len(self.timestamp_sequences)): + self.rate_measure.record() + # This is showing the tradeoff we're making with measuring rates. + # we're currently in the window from 0 <= x < 0.5, which means + # we use the rate from the previous bucket, which is 0: + self.assertEqual(self.rate_measure.measured_rate, 0) + # However if we now add a new measurement that's in the next + # time bucket 0.5 <= x < 1.0 + # we'll use the range from the previous bucket: + self.timestamp_sequences.append(0.5) + self.rate_measure.record() + # And our previous bucket will be: + # 12 * 0.8 + 0.2 * 0 + self.assertEqual(self.rate_measure.measured_rate, 12 * 0.8) diff --git a/tests/unit/retries/test_bucket.py b/tests/unit/retries/test_bucket.py new file mode 100644 index 00000000..f056c6c6 --- /dev/null +++ b/tests/unit/retries/test_bucket.py @@ -0,0 +1,112 @@ +from tests import unittest + +from botocore.retries import bucket +from botocore.exceptions import CapacityNotAvailableError + + +class FakeClock(bucket.Clock): + def __init__(self, timestamp_sequences): + self.timestamp_sequences = timestamp_sequences + self.sleep_call_amounts = [] + + def sleep(self, amount): + self.sleep_call_amounts.append(amount) + + def current_time(self): + return self.timestamp_sequences.pop(0) + + +class TestTokenBucket(unittest.TestCase): + def setUp(self): + self.timestamp_sequences = [0] + self.clock = FakeClock(self.timestamp_sequences) + + def create_token_bucket(self, max_rate=10, min_rate=0.1): + return bucket.TokenBucket(max_rate=max_rate, clock=self.clock, + min_rate=min_rate) + + def test_can_acquire_amount(self): + self.timestamp_sequences.extend([ + # Requests tokens every second, which is well below our + # 10 TPS fill rate. + 1, + 2, + 3, + 4, + 5, + ]) + token_bucket = self.create_token_bucket(max_rate=10) + for _ in range(5): + self.assertTrue(token_bucket.acquire(1, block=False)) + + def test_can_change_max_capacity_lower(self): + # Requests at 1 TPS. + self.timestamp_sequences.extend([1, 2, 3, 4, 5]) + token_bucket = self.create_token_bucket(max_rate=10) + # Request the first 5 tokens with max_rate=10 + for _ in range(5): + self.assertTrue(token_bucket.acquire(1, block=False)) + # Now scale the max_rate down to 1 on the 5th second. + self.timestamp_sequences.append(5) + token_bucket.max_rate = 1 + # And then from seconds 6-10 we request at one per second. + self.timestamp_sequences.extend([6, 7, 8, 9, 10]) + for _ in range(5): + self.assertTrue(token_bucket.acquire(1, block=False)) + + def test_max_capacity_is_at_least_one(self): + token_bucket = self.create_token_bucket() + self.timestamp_sequences.append(1) + token_bucket.max_rate = 0.5 + self.assertEqual(token_bucket.max_rate, 0.5) + self.assertEqual(token_bucket.max_capacity, 1) + + def test_acquire_fails_on_non_block_mode_returns_false(self): + self.timestamp_sequences.extend([ + # Initial creation time. + 0, + # Requests a token 1 second later. + 1 + ]) + token_bucket = self.create_token_bucket(max_rate=10) + with self.assertRaises(CapacityNotAvailableError): + token_bucket.acquire(100, block=False) + + def test_can_retrieve_at_max_send_rate(self): + self.timestamp_sequences.extend([ + # Request a new token every 100ms (10 TPS) for 2 seconds. + 1 + 0.1 * i for i in range(20) + ]) + token_bucket = self.create_token_bucket(max_rate=10) + for _ in range(20): + self.assertTrue(token_bucket.acquire(1, block=False)) + + def test_acquiring_blocks_when_capacity_reached(self): + # This is 1 token every 0.1 seconds. + token_bucket = self.create_token_bucket(max_rate=10) + self.timestamp_sequences.extend([ + # The first acquire() happens after .1 seconds. + 0.1, + # The second acquire() will fail because we get tokens at + # 1 per 0.1 seconds. We will then sleep for 0.05 seconds until we + # get a new token. + 0.15, + # And at 0.2 seconds we get our token. + 0.2, + # And at 0.3 seconds we have no issues getting a token. + # Because we're using such small units (to avoid bloating the + # test run time), we have to go slightly over 0.3 seconds here. + 0.300001, + ]) + self.assertTrue(token_bucket.acquire(1, block=False)) + self.assertEqual(token_bucket.available_capacity, 0) + self.assertTrue(token_bucket.acquire(1, block=True)) + self.assertEqual(token_bucket.available_capacity, 0) + self.assertTrue(token_bucket.acquire(1, block=False)) + + def test_rate_cant_go_below_min(self): + token_bucket = self.create_token_bucket(max_rate=1, min_rate=0.2) + self.timestamp_sequences.append(1) + token_bucket.max_rate = 0.1 + self.assertEqual(token_bucket.max_rate, 0.2) + self.assertEqual(token_bucket.max_capacity, 1) diff --git a/tests/unit/retries/test_quota.py b/tests/unit/retries/test_quota.py new file mode 100644 index 00000000..9060b94d --- /dev/null +++ b/tests/unit/retries/test_quota.py @@ -0,0 +1,35 @@ +from tests import unittest + + +from botocore.retries import quota + + +class TestRetryQuota(unittest.TestCase): + def setUp(self): + self.retry_quota = quota.RetryQuota(50) + + def test_can_acquire_amount(self): + self.assertTrue(self.retry_quota.acquire(5)) + self.assertEqual(self.retry_quota.available_capacity, 45) + + def test_can_release_amount(self): + self.assertTrue(self.retry_quota.acquire(5)) + self.assertEqual(self.retry_quota.available_capacity, 45) + self.retry_quota.release(5) + self.assertEqual(self.retry_quota.available_capacity, 50) + + def test_cant_exceed_max_capacity(self): + self.assertTrue(self.retry_quota.acquire(5)) + self.assertEqual(self.retry_quota.available_capacity, 45) + self.retry_quota.release(10) + self.assertEqual(self.retry_quota.available_capacity, 50) + + def test_noop_if_at_max_capacity(self): + self.retry_quota.release(10) + self.assertEqual(self.retry_quota.available_capacity, 50) + + def test_cant_go_below_zero(self): + self.assertTrue(self.retry_quota.acquire(49)) + self.assertEqual(self.retry_quota.available_capacity, 1) + self.assertFalse(self.retry_quota.acquire(10)) + self.assertEqual(self.retry_quota.available_capacity, 1) diff --git a/tests/unit/retries/test_special.py b/tests/unit/retries/test_special.py new file mode 100644 index 00000000..1ebbfc06 --- /dev/null +++ b/tests/unit/retries/test_special.py @@ -0,0 +1,121 @@ +from tests import unittest + +import mock +from nose.tools import assert_equal, assert_is_instance + +from botocore.compat import six +from botocore.awsrequest import AWSResponse +from botocore.retries import standard, special + + +def create_fake_op_model(service_name): + model = mock.Mock() + model.service_model.service_name = service_name + return model + + +class TestRetryIDPCommunicationError(unittest.TestCase): + def setUp(self): + self.checker = special.RetryIDPCommunicationError() + + def test_only_retries_error_for_sts(self): + context = standard.RetryContext( + attempt_number=1, operation_model=create_fake_op_model('s3'), + parsed_response={ + 'Error': {'Code': 'IDPCommunicationError', + 'Message': 'message'}}, + http_response=AWSResponse( + status_code=400, raw=None, headers={}, + url='https://foo'), + caught_exception=None, ) + self.assertFalse(self.checker.is_retryable(context)) + + def test_can_retry_idp_communication_error(self): + context = standard.RetryContext( + attempt_number=1, operation_model=create_fake_op_model('sts'), + parsed_response={ + 'Error': {'Code': 'IDPCommunicationError', + 'Message': 'message'}}, + http_response=AWSResponse( + status_code=400, raw=None, headers={}, + url='https://foo'), + caught_exception=None, ) + self.assertTrue(self.checker.is_retryable(context)) + + def test_not_idp_communication_error(self): + context = standard.RetryContext( + attempt_number=1, operation_model=create_fake_op_model('sts'), + parsed_response={ + 'Error': {'Code': 'NotIDPCommunicationError', + 'Message': 'message'}}, + http_response=AWSResponse( + status_code=400, raw=None, headers={}, + url='https://foo'), + caught_exception=None, ) + self.assertFalse(self.checker.is_retryable(context)) + + +class TestRetryDDBChecksumError(unittest.TestCase): + def setUp(self): + self.checker = special.RetryDDBChecksumError() + + def raw_stream(self, contents): + raw = mock.Mock() + raw.stream.return_value = [contents] + return raw + + def test_checksum_not_in_header(self): + context = standard.RetryContext( + attempt_number=1, operation_model=create_fake_op_model('dynamodb'), + parsed_response={ + 'Anything': ["foo"], + }, + http_response=AWSResponse( + status_code=200, raw=self.raw_stream(b'foo'), + headers={}, + url='https://foo'), + caught_exception=None, + ) + self.assertFalse(self.checker.is_retryable(context)) + + def test_checksum_matches(self): + context = standard.RetryContext( + attempt_number=1, operation_model=create_fake_op_model('dynamodb'), + parsed_response={ + 'Anything': ["foo"], + }, + http_response=AWSResponse( + status_code=200, raw=self.raw_stream(b'foo'), + headers={'x-amz-crc32': '2356372769'}, + url='https://foo'), + caught_exception=None + ) + self.assertFalse(self.checker.is_retryable(context)) + + def test_checksum_not_matches(self): + context = standard.RetryContext( + attempt_number=1, operation_model=create_fake_op_model('dynamodb'), + parsed_response={ + 'Anything': ["foo"], + }, + http_response=AWSResponse( + status_code=200, raw=self.raw_stream(b'foo'), + headers={'x-amz-crc32': '2356372768'}, + url='https://foo'), + caught_exception=None + ) + self.assertTrue(self.checker.is_retryable(context)) + + def test_checksum_check_only_for_dynamodb(self): + context = standard.RetryContext( + attempt_number=1, operation_model=create_fake_op_model('s3'), + parsed_response={ + 'Anything': ["foo"], + }, + http_response=AWSResponse( + status_code=200, raw=self.raw_stream(b'foo'), + headers={'x-amz-crc32': '2356372768'}, + url='https://foo'), + caught_exception=None + ) + self.assertFalse(self.checker.is_retryable(context)) diff --git a/tests/unit/retries/test_standard.py b/tests/unit/retries/test_standard.py new file mode 100644 index 00000000..7fa5cc60 --- /dev/null +++ b/tests/unit/retries/test_standard.py @@ -0,0 +1,677 @@ +from tests import unittest + +import mock +from nose.tools import assert_equal, assert_is_instance + +from botocore.retries import standard +from botocore.retries import quota +from botocore import model +from botocore.awsrequest import AWSResponse +from botocore.exceptions import HTTPClientError, ConnectionError +from botocore.exceptions import ReadTimeoutError + + +RETRYABLE_THROTTLED_RESPONSES = [ + # From the spec under "Throttling Errors" + # The status codes technically don't matter here, but we're adding + # them for completeness. + + # StatusCode, ErrorCode, Retryable? + (400, 'Throttling', True), + (400, 'ThrottlingException', True), + (400, 'ThrottledException', True), + (400, 'RequestThrottledException', True), + (400, 'TooManyRequestsException', True), + (400, 'ProvisionedThroughputExceededException', True), + (503, 'RequestLimitExceeded', True), + (509, 'BandwidthLimitExceeded', True), + (400, 'LimitExceededException', True), + (403, 'RequestThrottled', True), + (503, 'SlowDown', True), + (503, 'SlowDown', True), + (400, 'PriorRequestNotComplete', True), + (502, 'EC2ThrottledException', True), + + # These are some negative test cases, not in the spec but we'll use + # to verify we can detect throttled errors correctly. + (400, 'NotAThrottlingError', False), + (500, 'InternalServerError', False), + # "None" here represents no parsed response we just have a plain + # HTTP response and a 400 status code response. + (400, None, False), + (500, None, False), + (200, None, False), +] + +RETRYABLE_TRANSIENT_ERRORS = [ + # StatusCode, Error, Retryable? + (400, 'RequestTimeout', True), + (400, 'RequestTimeoutException', True), + (400, 'PriorRequestNotComplete', True), + + # "Any HTTP response with an HTTP status code of 500, 502, 503, or 504". + (500, None, True), + (502, None, True), + (503, None, True), + (504, None, True), + # We'll also add a few errors with an explicit error code to verify + # that the code doesn't matter. + (500, 'InternalServiceError', True), + (502, 'BadError', True), + # These are botocore specific errors that correspond to + # "Any IO (socket) level error where we are unable to read an HTTP + # response. + (None, ConnectionError(error='unknown'), True), + (None, HTTPClientError(error='unknown'), True), + + # Negative cases + (200, None, False), + # This is a throttling error not a transient error + (400, 'Throttling', False), + (400, None, False), +] + + +# These tests are intended to be paired with the +# SERVICE_DESCRIPTION_WITH_RETRIES definition. +RETRYABLE_MODELED_ERRORS = [ + (400, 'ModeledThrottlingError', True), + (400, 'ModeledRetryableError', True), + # Note this is ErrorCodeRetryable, not ModeledRetryableErrorWithCode, + # because the shape has a error code defined for it. + (400, 'ErrorCodeRetryable', True), + (400, 'NonRetryableError', False), + (None, ConnectionError(error='unknown'), False), +] + + +SERVICE_DESCRIPTION_WITH_RETRIES = { + 'metadata': {}, + 'operations': { + 'TestOperation': { + 'name': 'TestOperation', + 'input': {'shape': 'FakeInputOutputShape'}, + 'output': {'shape': 'FakeInputOutputShape'}, + 'errors': [ + {'shape': 'ModeledThrottlingError'}, + {'shape': 'ModeledRetryableError'}, + {'shape': 'ModeledRetryableErrorWithCode'}, + {'shape': 'NonRetryableError'}, + ] + } + }, + 'shapes': { + 'FakeInputOutputShape': { + 'type': 'structure', + 'members': {}, + }, + 'ModeledThrottlingError': { + 'type': 'structure', + 'members': { + 'message': { + 'shape': 'ErrorMessage', + } + }, + 'exception': True, + 'retryable': {'throttling': True} + }, + 'ModeledRetryableError': { + 'type': 'structure', + 'members': { + 'message': { + 'shape': 'ErrorMessage', + } + }, + 'exception': True, + 'retryable': {} + }, + 'ModeledRetryableErrorWithCode': { + 'type': 'structure', + 'members': { + 'message': { + 'shape': 'ErrorMessage', + } + }, + 'error': { + 'code': 'ErrorCodeRetryable', + }, + 'exception': True, + 'retryable': {'throttling': True} + }, + 'NonRetryableError': { + 'type': 'structure', + 'members': { + 'message': { + 'shape': 'ErrorMessage', + } + }, + 'exception': True, + }, + }, +} + + +def test_can_detect_retryable_transient_errors(): + transient_checker = standard.TransientRetryableChecker() + for case in RETRYABLE_TRANSIENT_ERRORS: + yield (_verify_retryable, transient_checker, None) + case + + +def test_can_detect_retryable_throttled_errors(): + throttled_checker = standard.ThrottledRetryableChecker() + for case in RETRYABLE_THROTTLED_RESPONSES: + yield (_verify_retryable, throttled_checker, None) + case + + +def test_can_detect_modeled_retryable_errors(): + modeled_retry_checker = standard.ModeledRetryableChecker() + test_params = (_verify_retryable, modeled_retry_checker, + get_operation_model_with_retries()) + for case in RETRYABLE_MODELED_ERRORS: + test_case = test_params + case + yield test_case + + +def test_standard_retry_conditions(): + # This is verifying that the high level object used for checking + # retry conditions still handles all the individual testcases. + standard_checker = standard.StandardRetryConditions() + op_model = get_operation_model_with_retries() + all_cases = ( + RETRYABLE_TRANSIENT_ERRORS + RETRYABLE_THROTTLED_RESPONSES + + RETRYABLE_MODELED_ERRORS) + # It's possible that cases that are retryable for an individual checker + # are retryable for a different checker. We need to filter out all + # the False cases. + all_cases = [c for c in all_cases if c[2]] + test_params = (_verify_retryable, standard_checker, op_model) + for case in all_cases: + yield test_params + case + + +def get_operation_model_with_retries(): + service = model.ServiceModel(SERVICE_DESCRIPTION_WITH_RETRIES, + service_name='my-service') + return service.operation_model('TestOperation') + + +def _verify_retryable(checker, operation_model, + status_code, error, is_retryable): + http_response = AWSResponse(status_code=status_code, + raw=None, headers={}, url='https://foo/') + parsed_response = None + caught_exception = None + if error is not None: + if isinstance(error, Exception): + caught_exception = error + else: + parsed_response = {'Error': {'Code': error, 'Message': 'Error'}} + context = standard.RetryContext( + attempt_number=1, + operation_model=operation_model, + parsed_response=parsed_response, + http_response=http_response, + caught_exception=caught_exception, + ) + assert_equal(checker.is_retryable(context), is_retryable) + + +def arbitrary_retry_context(): + # Used when you just need a dummy retry context that looks like + # a failed request. + return standard.RetryContext( + attempt_number=1, + operation_model=None, + parsed_response={'Error': {'Code': 'ErrorCode', 'Message': 'message'}}, + http_response=AWSResponse(status_code=500, + raw=None, headers={}, url='https://foo'), + caught_exception=None, + ) + + +def test_can_honor_max_attempts(): + checker = standard.MaxAttemptsChecker(max_attempts=3) + context = arbitrary_retry_context() + context.attempt_number = 1 + assert_equal(checker.is_retryable(context), True) + + context.attempt_number = 2 + assert_equal(checker.is_retryable(context), True) + + context.attempt_number = 3 + assert_equal(checker.is_retryable(context), False) + + +def test_max_attempts_adds_metadata_key_when_reached(): + checker = standard.MaxAttemptsChecker(max_attempts=3) + context = arbitrary_retry_context() + context.attempt_number = 3 + assert_equal(checker.is_retryable(context), False) + assert_equal(context.get_retry_metadata(), {'MaxAttemptsReached': True}) + + +def test_can_create_default_retry_handler(): + mock_client = mock.Mock() + mock_client.meta.service_model.service_id = model.ServiceId('my-service') + assert_is_instance(standard.register_retry_handler(mock_client), + standard.RetryHandler) + call_args_list = mock_client.meta.events.register.call_args_list + # We should have registered the retry quota to after-calls + first_call = call_args_list[0][0] + second_call = call_args_list[1][0] + # Not sure if there's a way to verify the class associated with the + # bound method matches what we expect. + assert_equal(first_call[0], 'after-call.my-service') + assert_equal(second_call[0], 'needs-retry.my-service') + + +class TestRetryHandler(unittest.TestCase): + def setUp(self): + self.retry_policy = mock.Mock(spec=standard.RetryPolicy) + self.retry_event_adapter = mock.Mock(spec=standard.RetryEventAdapter) + self.retry_quota = mock.Mock(spec=standard.RetryQuotaChecker) + self.retry_handler = standard.RetryHandler( + retry_policy=self.retry_policy, + retry_event_adapter=self.retry_event_adapter, + retry_quota=self.retry_quota + ) + + def test_does_need_retry(self): + self.retry_event_adapter.create_retry_context.return_value = \ + mock.sentinel.retry_context + self.retry_policy.should_retry.return_value = True + self.retry_quota.acquire_retry_quota.return_value = True + self.retry_policy.compute_retry_delay.return_value = 1 + + self.assertEqual( + self.retry_handler.needs_retry(fake_kwargs='foo'), 1) + self.retry_event_adapter.create_retry_context.assert_called_with( + fake_kwargs='foo') + self.retry_policy.should_retry.assert_called_with( + mock.sentinel.retry_context) + self.retry_quota.acquire_retry_quota.assert_called_with( + mock.sentinel.retry_context) + self.retry_policy.compute_retry_delay.assert_called_with( + mock.sentinel.retry_context) + + def test_does_not_need_retry(self): + self.retry_event_adapter.create_retry_context.return_value = \ + mock.sentinel.retry_context + self.retry_policy.should_retry.return_value = False + + self.assertIsNone(self.retry_handler.needs_retry(fake_kwargs='foo')) + # Shouldn't consult quota if we don't have a retryable condition. + self.assertFalse(self.retry_quota.acquire_retry_quota.called) + + def test_needs_retry_but_not_enough_quota(self): + self.retry_event_adapter.create_retry_context.return_value = \ + mock.sentinel.retry_context + self.retry_policy.should_retry.return_value = True + self.retry_quota.acquire_retry_quota.return_value = False + + self.assertIsNone(self.retry_handler.needs_retry(fake_kwargs='foo')) + + def test_retry_handler_adds_retry_metadata_to_response(self): + self.retry_event_adapter.create_retry_context.return_value = \ + mock.sentinel.retry_context + self.retry_policy.should_retry.return_value = False + self.assertIsNone(self.retry_handler.needs_retry(fake_kwargs='foo')) + adapter = self.retry_event_adapter + adapter.adapt_retry_response_from_context.assert_called_with( + mock.sentinel.retry_context) + + +class TestRetryEventAdapter(unittest.TestCase): + def setUp(self): + self.success_response = {'ResponseMetadata': {}, 'Foo': {}} + self.failed_response = {'ResponseMetadata': {}, 'Error': {}} + self.http_success = AWSResponse( + status_code=200, raw=None, headers={}, url='https://foo/') + self.http_failed = AWSResponse( + status_code=500, raw=None, headers={}, url='https://foo/') + self.caught_exception = ConnectionError(error='unknown') + + def test_create_context_from_success_response(self): + context = standard.RetryEventAdapter().create_retry_context( + response=(self.http_success, self.success_response), + attempts=1, + caught_exception=None, + request_dict={'context': {'foo': 'bar'}}, + operation=mock.sentinel.operation_model, + ) + + self.assertEqual(context.attempt_number, 1) + self.assertEqual(context.operation_model, + mock.sentinel.operation_model) + self.assertEqual(context.parsed_response, self.success_response) + self.assertEqual(context.http_response, self.http_success) + self.assertEqual(context.caught_exception, None) + self.assertEqual(context.request_context, {'foo': 'bar'}) + + def test_create_context_from_service_error(self): + context = standard.RetryEventAdapter().create_retry_context( + response=(self.http_failed, self.failed_response), + attempts=1, + caught_exception=None, + request_dict={'context': {'foo': 'bar'}}, + operation=mock.sentinel.operation_model, + ) + # We already tested the other attributes in + # test_create_context_from_success_response so we're only checking + # the attributes relevant to this test. + self.assertEqual(context.parsed_response, self.failed_response) + self.assertEqual(context.http_response, self.http_failed) + + def test_create_context_from_exception(self): + context = standard.RetryEventAdapter().create_retry_context( + response=None, + attempts=1, + caught_exception=self.caught_exception, + request_dict={'context': {'foo': 'bar'}}, + operation=mock.sentinel.operation_model, + ) + self.assertEqual(context.parsed_response, None) + self.assertEqual(context.http_response, None) + self.assertEqual(context.caught_exception, self.caught_exception) + + def test_can_inject_metadata_back_to_context(self): + adapter = standard.RetryEventAdapter() + context = adapter.create_retry_context( + attempts=1, + operation=None, + caught_exception=None, + request_dict={'context': {}}, + response=(self.http_failed, self.failed_response) + ) + context.add_retry_metadata(MaxAttemptsReached=True) + adapter.adapt_retry_response_from_context(context) + self.assertEqual( + self.failed_response['ResponseMetadata']['MaxAttemptsReached'], + True + ) + + +class TestRetryPolicy(unittest.TestCase): + def setUp(self): + self.retry_checker = mock.Mock(spec=standard.StandardRetryConditions) + self.retry_backoff = mock.Mock(spec=standard.ExponentialBackoff) + self.retry_policy = standard.RetryPolicy( + retry_checker=self.retry_checker, + retry_backoff=self.retry_backoff) + + def test_delegates_to_retry_checker(self): + self.retry_checker.is_retryable.return_value = True + self.assertTrue(self.retry_policy.should_retry(mock.sentinel.context)) + self.retry_checker.is_retryable.assert_called_with( + mock.sentinel.context) + + def test_delegates_to_retry_backoff(self): + self.retry_backoff.delay_amount.return_value = 1 + self.assertEqual( + self.retry_policy.compute_retry_delay(mock.sentinel.context), 1) + self.retry_backoff.delay_amount.assert_called_with( + mock.sentinel.context) + + +class TestExponentialBackoff(unittest.TestCase): + def setUp(self): + self.random = lambda: 1 + self.backoff = standard.ExponentialBackoff(max_backoff=20, + random=self.random) + + def test_range_of_exponential_backoff(self): + backoffs = [ + self.backoff.delay_amount(standard.RetryContext(attempt_number=i)) + for i in range(1, 10) + ] + # Note that we're capped at 20 which is our max backoff. + self.assertEqual(backoffs, + [1, 2, 4, 8, 16, 20, 20, 20, 20]) + + def test_exponential_backoff_with_jitter(self): + backoff = standard.ExponentialBackoff() + backoffs = [ + backoff.delay_amount(standard.RetryContext(attempt_number=3)) + for i in range(10) + ] + # For attempt number 3, we should have a max value of 4 (2 ^ 2), + # so we can assert all the backoff values are within that range. + for x in backoffs: + self.assertTrue(0 <= x <= 4) + + +class TestRetryQuotaChecker(unittest.TestCase): + def setUp(self): + self.quota = quota.RetryQuota(500) + self.quota_checker = standard.RetryQuotaChecker(self.quota) + self.request_context = {} + + def create_context(self, is_timeout_error=False, status_code=200): + caught_exception = None + if is_timeout_error: + caught_exception = ReadTimeoutError(endpoint_url='https://foo') + http_response = AWSResponse(status_code=status_code, raw=None, + headers={}, url='https://foo/') + context = standard.RetryContext( + attempt_number=1, + request_context=self.request_context, + caught_exception=caught_exception, + http_response=http_response, + ) + return context + + def test_can_acquire_quota_non_timeout_error(self): + self.assertTrue( + self.quota_checker.acquire_retry_quota(self.create_context()) + ) + self.assertEqual(self.request_context['retry_quota_capacity'], 5) + + def test_can_acquire_quota_for_timeout_error(self): + self.assertTrue( + self.quota_checker.acquire_retry_quota( + self.create_context(is_timeout_error=True)) + ) + self.assertEqual(self.request_context['retry_quota_capacity'], 10) + + def test_can_release_quota_based_on_context_value_on_success(self): + context = self.create_context() + # This is where we had to retry the request but eventually + # succeeded. + http_response = self.create_context(status_code=200).http_response + self.assertTrue( + self.quota_checker.acquire_retry_quota(context) + ) + self.assertEqual(self.quota.available_capacity, 495) + self.quota_checker.release_retry_quota(context.request_context, + http_response=http_response) + self.assertEqual(self.quota.available_capacity, 500) + + def test_dont_release_quota_if_all_retries_failed(self): + context = self.create_context() + # If max_attempts_reached is True, then it means we used up all + # our retry attempts and still failed. In this case we shouldn't + # give any retry quota back. + http_response = self.create_context(status_code=500).http_response + self.assertTrue( + self.quota_checker.acquire_retry_quota(context) + ) + self.assertEqual(self.quota.available_capacity, 495) + self.quota_checker.release_retry_quota(context.request_context, + http_response=http_response) + self.assertEqual(self.quota.available_capacity, 495) + + def test_can_release_default_quota_if_not_in_context(self): + context = self.create_context() + self.assertTrue( + self.quota_checker.acquire_retry_quota(context) + ) + self.assertEqual(self.quota.available_capacity, 495) + # We're going to remove the quota amount from the request context. + # This represents a successful request with no retries. + self.request_context.pop('retry_quota_capacity') + self.quota_checker.release_retry_quota(context.request_context, + context.http_response) + # We expect only 1 unit was released. + self.assertEqual(self.quota.available_capacity, 496) + + def test_acquire_quota_fails(self): + quota_checker = standard.RetryQuotaChecker( + quota.RetryQuota(initial_capacity=5)) + # The first one succeeds. + self.assertTrue( + quota_checker.acquire_retry_quota(self.create_context()) + ) + # But we should fail now because we're out of quota. + self.request_context.pop('retry_quota_capacity') + self.assertFalse( + quota_checker.acquire_retry_quota(self.create_context()) + ) + self.assertNotIn('retry_quota_capacity', self.request_context) + + def test_quota_reached_adds_retry_metadata(self): + quota_checker = standard.RetryQuotaChecker( + quota.RetryQuota(initial_capacity=0)) + context = self.create_context() + self.assertFalse(quota_checker.acquire_retry_quota(context)) + self.assertEqual( + context.get_retry_metadata(), + {'RetryQuotaReached': True} + ) + + def test_single_failed_request_does_not_give_back_quota(self): + context = self.create_context() + http_response = self.create_context(status_code=400).http_response + # First deduct some amount of the retry quota so we're not hitting + # the upper bound. + self.quota.acquire(50) + self.assertEqual(self.quota.available_capacity, 450) + self.quota_checker.release_retry_quota(context.request_context, + http_response=http_response) + self.assertEqual(self.quota.available_capacity, 450) + + +class TestRetryContext(unittest.TestCase): + def test_can_get_error_code(self): + context = arbitrary_retry_context() + context.parsed_response['Error']['Code'] = 'MyErrorCode' + self.assertEqual(context.get_error_code(), 'MyErrorCode') + + def test_no_error_code_if_no_parsed_response(self): + context = arbitrary_retry_context() + context.parsed_response = None + self.assertIsNone(context.get_error_code()) + + def test_no_error_code_returns_none(self): + context = arbitrary_retry_context() + context.parsed_response = {} + self.assertIsNone(context.get_error_code()) + + def test_can_add_retry_reason(self): + context = arbitrary_retry_context() + context.add_retry_metadata(MaxAttemptsReached=True) + self.assertEqual(context.get_retry_metadata(), + {'MaxAttemptsReached': True}) + + +class TestThrottlingErrorDetector(unittest.TestCase): + def setUp(self): + self.throttling_detector = standard.ThrottlingErrorDetector( + standard.RetryEventAdapter()) + + def create_needs_retry_kwargs(self, **kwargs): + retry_kwargs = { + 'response': None, + 'attempts': 1, + 'operation': None, + 'caught_exception': None, + 'request_dict': {'context': {}}, + } + retry_kwargs.update(kwargs) + return retry_kwargs + + def test_can_check_error_from_code(self): + kwargs = self.create_needs_retry_kwargs() + kwargs['response'] = (None, {'Error': {'Code': 'ThrottledException'}}) + self.assertTrue( + self.throttling_detector.is_throttling_error(**kwargs) + ) + + def test_no_throttling_error(self): + kwargs = self.create_needs_retry_kwargs() + kwargs['response'] = (None, {'Error': {'Code': 'RandomError'}}) + self.assertFalse( + self.throttling_detector.is_throttling_error(**kwargs) + ) + + def test_detects_modeled_errors(self): + kwargs = self.create_needs_retry_kwargs() + kwargs['response'] = ( + None, {'Error': {'Code': 'ModeledThrottlingError'}} + ) + kwargs['operation'] = get_operation_model_with_retries() + self.assertTrue( + self.throttling_detector.is_throttling_error(**kwargs) + ) + + +class TestModeledRetryErrorDetector(unittest.TestCase): + def setUp(self): + self.modeled_error = standard.ModeledRetryErrorDetector() + + def test_not_retryable(self): + context = arbitrary_retry_context() + self.assertIsNone(self.modeled_error.detect_error_type(context)) + + def test_transient_error(self): + context = arbitrary_retry_context() + context.parsed_response['Error']['Code'] = 'ModeledRetryableError' + context.operation_model = get_operation_model_with_retries() + self.assertEqual( + self.modeled_error.detect_error_type(context), + self.modeled_error.TRANSIENT_ERROR + ) + + def test_throttling_error(self): + context = arbitrary_retry_context() + context.parsed_response['Error']['Code'] = 'ModeledThrottlingError' + context.operation_model = get_operation_model_with_retries() + self.assertEqual( + self.modeled_error.detect_error_type(context), + self.modeled_error.THROTTLING_ERROR + ) + + +class Yes(standard.BaseRetryableChecker): + def is_retryable(self, context): + return True + + +class No(standard.BaseRetryableChecker): + def is_retryable(self, context): + return False + + +class TestOrRetryChecker(unittest.TestCase): + def test_can_match_any_checker(self): + self.assertTrue( + standard.OrRetryChecker( + [Yes(), No()] + ) + ) + self.assertTrue( + standard.OrRetryChecker( + [No(), Yes()] + ) + ) + self.assertTrue( + standard.OrRetryChecker( + [Yes(), Yes()] + ) + ) + + def test_false_if_no_checkers_match(self): + self.assertTrue( + standard.OrRetryChecker( + [No(), No(), No()] + ) + ) diff --git a/tests/unit/retries/test_throttling.py b/tests/unit/retries/test_throttling.py new file mode 100644 index 00000000..9c1c69b7 --- /dev/null +++ b/tests/unit/retries/test_throttling.py @@ -0,0 +1,71 @@ +from tests import unittest + + +from botocore.retries import throttling + + +class TestCubicCalculator(unittest.TestCase): + def create_cubic_calculator(self, starting_max_rate=10, beta=0.7, + scale_constant=0.4): + return throttling.CubicCalculator(starting_max_rate=starting_max_rate, + scale_constant=scale_constant, + start_time=0, beta=beta) + + # For these tests, rather than duplicate the formulas in the tests, + # I want to check against a fixed set of inputs with by-hand verified + # values to ensure we're doing the calculations correctly. + + def test_starting_params(self): + cubic = self.create_cubic_calculator(starting_max_rate=10) + self.assertAlmostEqual( + cubic.get_params_snapshot().k, 1.9574338205844317 + ) + + def test_success_responses_until_max_hit(self): + # For this test we're interested in the behavior less so than + # the specific numbers. There's a few cases we care about: + # + cubic = self.create_cubic_calculator(starting_max_rate=10) + params = cubic.get_params_snapshot() + start_k = params.k + start_w_max = params.w_max + # Before we get to t == start_k, our throttle is below our + # max w_max + assertLessEqual = self.assertLessEqual + assertLessEqual(cubic.success_received(start_k / 3.0), start_w_max) + assertLessEqual(cubic.success_received(start_k / 2.0), start_w_max) + assertLessEqual(cubic.success_received(start_k / 1.1), start_w_max) + # At t == start_k, we should be at w_max. + self.assertAlmostEqual(cubic.success_received(timestamp=start_k), 10.0) + # And once we pass start_k, we'll be above w_max. + self.assertGreaterEqual( + cubic.success_received(start_k * 1.1), start_w_max) + self.assertGreaterEqual( + cubic.success_received(start_k * 2.0), start_w_max) + + def test_error_response_decreases_rate_by_beta(self): + # This is the default value here so we're just being explicit. + cubic = self.create_cubic_calculator(starting_max_rate=10, beta=0.7) + + # So let's say we made it up to 8 TPS before we were throttled. + rate_when_throttled = 8 + new_rate = cubic.error_received(current_rate=rate_when_throttled, + timestamp=1) + self.assertAlmostEqual(new_rate, rate_when_throttled * 0.7) + + new_params = cubic.get_params_snapshot() + self.assertEqual( + new_params, + throttling.CubicParams(w_max=rate_when_throttled, + k=1.8171205928321397, + last_fail=1) + ) + + def test_t_0_should_match_beta_decrease(self): + # So if I have beta of 0.6 + cubic = self.create_cubic_calculator(starting_max_rate=10, beta=0.6) + # When I get throttled I should decrease my rate by 60%. + new_rate = cubic.error_received(current_rate=10, timestamp=1) + self.assertEqual(new_rate, 6.0) + # And my starting rate at time t=1 should start at that new rate. + self.assertAlmostEqual(cubic.success_received(timestamp=1), 6.0) diff --git a/tests/unit/test_args.py b/tests/unit/test_args.py index 546470f3..e1d2a6f1 100644 --- a/tests/unit/test_args.py +++ b/tests/unit/test_args.py @@ -176,12 +176,6 @@ class TestCreateClientArgs(unittest.TestCase): endpoint_url='http://other.com/') self.assertEqual(client_args['client_config'].region_name, None) - def test_provide_retry_config(self): - config = botocore.config.Config(retries={'max_attempts': 10}) - client_args = self.call_get_client_args(client_config=config) - self.assertEqual( - client_args['client_config'].retries, {'max_attempts': 10}) - def test_tcp_keepalive_enabled(self): scoped_config = {'tcp_keepalive': 'true'} with mock.patch('botocore.args.EndpointCreator') as m: @@ -305,3 +299,73 @@ class TestCreateClientArgs(unittest.TestCase): service_model=self._get_service_model('sts'), region_name='us-west-2', endpoint_url=None ) + + def test_provides_total_max_attempts(self): + config = botocore.config.Config(retries={'total_max_attempts': 10}) + client_args = self.call_get_client_args(client_config=config) + self.assertEqual( + client_args['client_config'].retries['total_max_attempts'], 10) + + def test_provides_total_max_attempts_has_precedence(self): + config = botocore.config.Config(retries={'total_max_attempts': 10, + 'max_attempts': 5}) + client_args = self.call_get_client_args(client_config=config) + self.assertEqual( + client_args['client_config'].retries['total_max_attempts'], 10) + self.assertNotIn('max_attempts', client_args['client_config'].retries) + + def test_provide_retry_config_maps_total_max_attempts(self): + config = botocore.config.Config(retries={'max_attempts': 10}) + client_args = self.call_get_client_args(client_config=config) + self.assertEqual( + client_args['client_config'].retries['total_max_attempts'], 11) + self.assertNotIn('max_attempts', client_args['client_config'].retries) + + def test_can_merge_max_attempts(self): + self.config_store.set_config_variable('max_attempts', 4) + config = self.call_get_client_args()['client_config'] + self.assertEqual(config.retries['total_max_attempts'], 4) + + def test_uses_config_value_if_present_for_max_attempts(self): + config = self.call_get_client_args( + client_config=Config(retries={'max_attempts': 2}) + )['client_config'] + self.assertEqual(config.retries['total_max_attempts'], 3) + + def test_uses_client_config_over_config_store_max_attempts(self): + self.config_store.set_config_variable('max_attempts', 4) + config = self.call_get_client_args( + client_config=Config(retries={'max_attempts': 2}) + )['client_config'] + self.assertEqual(config.retries['total_max_attempts'], 3) + + def test_uses_client_config_total_over_config_store_max_attempts(self): + self.config_store.set_config_variable('max_attempts', 4) + config = self.call_get_client_args( + client_config=Config(retries={'total_max_attempts': 2}) + )['client_config'] + self.assertEqual(config.retries['total_max_attempts'], 2) + + def test_max_attempts_unset_if_retries_is_none(self): + config = self.call_get_client_args( + client_config=Config(retries=None) + )['client_config'] + self.assertEqual(config.retries, {'mode': 'legacy'}) + + def test_retry_mode_set_on_config_store(self): + self.config_store.set_config_variable('retry_mode', 'standard') + config = self.call_get_client_args()['client_config'] + self.assertEqual(config.retries['mode'], 'standard') + + def test_retry_mode_set_on_client_config(self): + config = self.call_get_client_args( + client_config=Config(retries={'mode': 'standard'}) + )['client_config'] + self.assertEqual(config.retries['mode'], 'standard') + + def test_client_config_beats_config_store(self): + self.config_store.set_config_variable('retry_mode', 'adaptive') + config = self.call_get_client_args( + client_config=Config(retries={'mode': 'standard'}) + )['client_config'] + self.assertEqual(config.retries['mode'], 'standard') diff --git a/tests/unit/test_client.py b/tests/unit/test_client.py index 95fa6f71..a50b904d 100644 --- a/tests/unit/test_client.py +++ b/tests/unit/test_client.py @@ -1,4 +1,3 @@ -#!/usr/bin/env # Copyright 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You @@ -23,11 +22,14 @@ from botocore import hooks from botocore.client import ClientEndpointBridge from botocore.credentials import Credentials from botocore.configprovider import ConfigValueStore +from botocore.configprovider import EnvironmentProvider +from botocore.configprovider import ChainProvider from botocore.exceptions import ParamValidationError from botocore.exceptions import InvalidS3AddressingStyleError from botocore.exceptions import UnknownSignatureVersionError from botocore.exceptions import InvalidRetryConfigurationError from botocore.exceptions import InvalidMaxRetryAttemptsError +from botocore.exceptions import InvalidRetryModeError from botocore.errorfactory import ClientExceptionsFactory from botocore.stub import Stubber from botocore import exceptions @@ -864,7 +866,8 @@ class TestAutoGeneratedClient(unittest.TestCase): retry_handler_factory=retry_handler_factory) creator.create_client( 'myservice', 'us-west-2', - client_config=botocore.config.Config(retries={'max_attempts': 9})) + client_config=botocore.config.Config(retries={'max_attempts': 9, + 'mode': 'legacy'})) retry_handler_factory.create_retry_handler.assert_called_with({ '__default__': { @@ -878,6 +881,29 @@ class TestAutoGeneratedClient(unittest.TestCase): } }, 'myservice') + def test_can_register_standard_retry_mode(self): + with mock.patch('botocore.client.standard') as standard: + creator = self.create_client_creator() + creator.create_client( + 'myservice', 'us-west-2', + client_config=botocore.config.Config( + retries={'mode': 'standard'})) + self.assertTrue(standard.register_retry_handler.called) + + def test_can_register_standard_retry_mode_from_config_store(self): + fake_env = {'AWS_RETRY_MODE': 'standard'} + config_store = ConfigValueStore( + mapping={ + 'retry_mode': ChainProvider([ + EnvironmentProvider('AWS_RETRY_MODE', fake_env), + ]) + } + ) + creator = self.create_client_creator(config_store=config_store) + with mock.patch('botocore.client.standard') as standard: + creator.create_client( 'myservice', 'us-west-2') + self.assertTrue(standard.register_retry_handler.called) + def test_try_to_paginate_non_paginated(self): self.loader.load_service_model.side_effect = [ self.service_description, @@ -1593,6 +1619,14 @@ class TestConfig(unittest.TestCase): with self.assertRaises(InvalidMaxRetryAttemptsError): botocore.config.Config(retries={'max_attempts': -1}) + def test_validates_total_max_attempts(self): + with self.assertRaises(InvalidMaxRetryAttemptsError): + botocore.config.Config(retries={'total_max_attempts': 0}) + + def test_validaties_retry_mode(self): + with self.assertRaises(InvalidRetryModeError): + botocore.config.Config(retries={'mode': 'turbo-mode'}) + class TestClientEndpointBridge(unittest.TestCase): def setUp(self): diff --git a/tests/unit/test_compat.py b/tests/unit/test_compat.py index 3789b507..3cdd1dce 100644 --- a/tests/unit/test_compat.py +++ b/tests/unit/test_compat.py @@ -17,7 +17,8 @@ from nose.tools import assert_equal, assert_raises from botocore.exceptions import MD5UnavailableError from botocore.compat import ( - total_seconds, unquote_str, six, ensure_bytes, get_md5, compat_shell_split + total_seconds, unquote_str, six, ensure_bytes, get_md5, + compat_shell_split, get_tzinfo_options ) from tests import BaseEnvVar, unittest @@ -165,3 +166,12 @@ class ShellSplitTestRunner(object): def assert_raises(self, s, exception_cls, platform): assert_raises(exception_cls, compat_shell_split, s, platform) + + +class TestTimezoneOperations(unittest.TestCase): + def test_get_tzinfo_options(self): + options = get_tzinfo_options() + self.assertTrue(len(options) > 0) + + for tzinfo in options: + self.assertIsInstance(tzinfo(), datetime.tzinfo) diff --git a/tests/unit/test_handlers.py b/tests/unit/test_handlers.py index 551d18f5..a41bacb2 100644 --- a/tests/unit/test_handlers.py +++ b/tests/unit/test_handlers.py @@ -921,13 +921,6 @@ class TestHandlers(BaseSessionTest): self.assertEqual(parsed['CommonPrefixes'][0]['Prefix'], u'\xe7\xf6s% asd\x08 c') - def test_get_bucket_location_optional(self): - # This handler should no-op if another hook (i.e. stubber) has already - # filled in response - response = {"LocationConstraint": "eu-west-1"} - handlers.parse_get_bucket_location(response, None), - self.assertEqual(response["LocationConstraint"], "eu-west-1") - def test_set_operation_specific_signer_no_auth_type(self): signing_name = 'myservice' context = {'auth_type': None} diff --git a/tests/unit/test_model.py b/tests/unit/test_model.py index 9eb97ba6..b5cf3f9d 100644 --- a/tests/unit/test_model.py +++ b/tests/unit/test_model.py @@ -702,6 +702,26 @@ class TestShapeResolver(unittest.TestCase): self.assertEqual(member.metadata['max'], 128) self.assertEqual(member.metadata['sensitive'], True) + def test_error_shape_metadata(self): + shapes = { + 'ResourceNotFoundException': { + 'type': 'structure', + 'members': { + 'message': { + 'shape': 'ErrorMessage', + } + }, + 'exception': True, + 'retryable': {'throttling': True} + } + } + resolver = model.ShapeResolver(shapes) + shape = resolver.get_shape_by_name('ResourceNotFoundException') + self.assertEqual( + shape.metadata, + {'exception': True, 'retryable': {'throttling': True}} + ) + def test_shape_list(self): shapes = { 'mfaDeviceListType': { diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 43301231..69e04a24 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -354,6 +354,16 @@ class TestParseTimestamps(unittest.TestCase): with self.assertRaises(ValueError): parse_timestamp('invalid date') + def test_parse_timestamp_fails_with_bad_tzinfo(self): + mock_tzinfo = mock.Mock() + mock_tzinfo.__name__ = 'tzinfo' + mock_tzinfo.side_effect = OSError() + mock_get_tzinfo_options = mock.MagicMock(return_value=(mock_tzinfo,)) + + with mock.patch('botocore.utils.get_tzinfo_options', mock_get_tzinfo_options): + with self.assertRaises(RuntimeError): + parse_timestamp(0) + class TestDatetime2Timestamp(unittest.TestCase): def test_datetime2timestamp_naive(self):