Update upstream source from tag 'upstream/1.29.27+repack'

Update to upstream version '1.29.27+repack'
with Debian dir a8d3e48cc4
This commit is contained in:
Noah Meyerhans 2022-12-12 08:14:55 -08:00
commit 0d9d27ac0e
1301 changed files with 632231 additions and 17289 deletions

View file

@ -5,6 +5,7 @@ include requirements-dev.txt
include botocore/cacert.pem
include botocore/vendored/requests/cacert.pem
recursive-include botocore/data *.json
recursive-include botocore/data *.json.gz
graft docs
prune docs/build
graft tests

44
NOTICE
View file

@ -1,9 +1,9 @@
Botocore
Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Copyright 2012-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
----
Botocore includes a vendorized copy of the requests python library to ease installation.
Botocore includes vendorized parts of the requests python library for backwards compatibility.
Requests License
================
@ -22,8 +22,7 @@ Copyright 2013 Kenneth Reitz
See the License for the specific language governing permissions and
limitations under the License.
The requests library also includes some vendorized python libraries to ease installation.
Botocore includes vendorized parts of the urllib3 library for backwards compatibility.
Urllib3 License
===============
@ -49,38 +48,13 @@ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TOR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
Chardet License
===============
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301 USA
Bundle of CA Root Certificates
==============================
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
***** BEGIN LICENSE BLOCK *****
This Source Code Form is subject to the terms of the
Mozilla Public License, v. 2.0. If a copy of the MPL
was not distributed with this file, You can obtain
one at http://mozilla.org/MPL/2.0/.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301
***** END LICENSE BLOCK *****

View file

@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: botocore
Version: 1.26.8
Version: 1.29.27
Summary: Low-level, data-driven core of boto 3.
Home-page: https://github.com/boto/botocore
Author: Amazon Web Services
@ -13,12 +13,12 @@ Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >= 3.6
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >= 3.7
Provides-Extra: crt
License-File: LICENSE.txt
License-File: NOTICE
@ -43,7 +43,7 @@ on 2021-07-15. To avoid disruption, customers using Botocore on Python 2.7 may
need to upgrade their version of Python or pin the version of Botocore. For
more information, see this `blog post <https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-python-2-7-in-aws-sdk-for-python-and-aws-cli-v1/>`__.
On 2022-05-30, we will be dropping support for Python 3.6. This follows the
On 2022-05-30, support was dropped for Python 3.6. This follows the
Python Software Foundation `end of support <https://www.python.org/dev/peps/pep-0494/#lifespan>`__
for the runtime which occurred on 2021-12-23.
For more information, see this `blog post <https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/>`__.
@ -132,10 +132,10 @@ Maintenance and Support for SDK Major Versions
Botocore was made generally available on 06/22/2015 and is currently in the full support phase of the availability life cycle.
For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Shared Configuration and Credentials Reference Guide:
For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Reference Guide:
* `AWS SDKs and Tools Maintenance Policy <https://docs.aws.amazon.com/credref/latest/refdocs/maint-policy.html>`__
* `AWS SDKs and Tools Version Support Matrix <https://docs.aws.amazon.com/credref/latest/refdocs/version-support-matrix.html>`__
* `AWS SDKs and Tools Maintenance Policy <https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html>`__
* `AWS SDKs and Tools Version Support Matrix <https://docs.aws.amazon.com/sdkref/latest/guide/version-support-matrix.html>`__
More Resources

View file

@ -18,7 +18,7 @@ on 2021-07-15. To avoid disruption, customers using Botocore on Python 2.7 may
need to upgrade their version of Python or pin the version of Botocore. For
more information, see this `blog post <https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-python-2-7-in-aws-sdk-for-python-and-aws-cli-v1/>`__.
On 2022-05-30, we will be dropping support for Python 3.6. This follows the
On 2022-05-30, support was dropped for Python 3.6. This follows the
Python Software Foundation `end of support <https://www.python.org/dev/peps/pep-0494/#lifespan>`__
for the runtime which occurred on 2021-12-23.
For more information, see this `blog post <https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/>`__.
@ -107,10 +107,10 @@ Maintenance and Support for SDK Major Versions
Botocore was made generally available on 06/22/2015 and is currently in the full support phase of the availability life cycle.
For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Shared Configuration and Credentials Reference Guide:
For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Reference Guide:
* `AWS SDKs and Tools Maintenance Policy <https://docs.aws.amazon.com/credref/latest/refdocs/maint-policy.html>`__
* `AWS SDKs and Tools Version Support Matrix <https://docs.aws.amazon.com/credref/latest/refdocs/version-support-matrix.html>`__
* `AWS SDKs and Tools Maintenance Policy <https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html>`__
* `AWS SDKs and Tools Version Support Matrix <https://docs.aws.amazon.com/sdkref/latest/guide/version-support-matrix.html>`__
More Resources

View file

@ -16,7 +16,7 @@ import logging
import os
import re
__version__ = '1.26.8'
__version__ = '1.29.27'
class NullHandler(logging.Handler):
@ -28,6 +28,7 @@ class NullHandler(logging.Handler):
log = logging.getLogger('botocore')
log.addHandler(NullHandler())
_INITIALIZERS = []
_first_cap_regex = re.compile('(.)([A-Z][a-z]+)')
_end_cap_regex = re.compile('([a-z0-9])([A-Z])')
@ -97,3 +98,42 @@ def xform_name(name, sep='_', _xform_cache=_xform_cache):
transformed = _end_cap_regex.sub(r'\1' + sep + r'\2', s1).lower()
_xform_cache[key] = transformed
return _xform_cache[key]
def register_initializer(callback):
"""Register an initializer function for session creation.
This initializer function will be invoked whenever a new
`botocore.session.Session` is instantiated.
:type callback: callable
:param callback: A callable that accepts a single argument
of type `botocore.session.Session`.
"""
_INITIALIZERS.append(callback)
def unregister_initializer(callback):
"""Unregister an initializer function.
:type callback: callable
:param callback: A callable that was previously registered
with `botocore.register_initializer`.
:raises ValueError: If a callback is provided that is not currently
registered as an initializer.
"""
_INITIALIZERS.remove(callback)
def invoke_initializers(session):
"""Invoke all initializers for a session.
:type session: botocore.session.Session
:param session: The session to initialize.
"""
for initializer in _INITIALIZERS:
initializer(session)

View file

@ -23,10 +23,12 @@ import socket
import botocore.exceptions
import botocore.parsers
import botocore.serialize
import botocore.utils
from botocore.config import Config
from botocore.endpoint import EndpointCreator
from botocore.regions import EndpointResolverBuiltins as EPRBuiltins
from botocore.regions import EndpointRulesetResolver
from botocore.signers import RequestSigner
from botocore.utils import ensure_boolean, is_s3_accelerate_url
logger = logging.getLogger(__name__)
@ -83,6 +85,9 @@ class ClientArgsCreator:
scoped_config,
client_config,
endpoint_bridge,
auth_token=None,
endpoints_ruleset_data=None,
partition_data=None,
):
final_args = self.compute_client_args(
service_model,
@ -114,6 +119,7 @@ class ClientArgsCreator:
endpoint_config['signature_version'],
credentials,
event_emitter,
auth_token,
)
config_kwargs['s3'] = s3_config
@ -138,6 +144,21 @@ class ClientArgsCreator:
protocol, parameter_validation
)
response_parser = botocore.parsers.create_parser(protocol)
ruleset_resolver = self._build_endpoint_resolver(
endpoints_ruleset_data,
partition_data,
client_config,
service_model,
endpoint_region_name,
region_name,
endpoint_url,
endpoint,
is_secure,
endpoint_bridge,
event_emitter,
)
return {
'serializer': serializer,
'endpoint': endpoint,
@ -149,6 +170,7 @@ class ClientArgsCreator:
'client_config': new_config,
'partition': partition,
'exceptions_factory': self._exceptions_factory,
'endpoint_ruleset_resolver': ruleset_resolver,
}
def compute_client_args(
@ -169,7 +191,7 @@ class ClientArgsCreator:
elif scoped_config:
raw_value = scoped_config.get('parameter_validation')
if raw_value is not None:
parameter_validation = botocore.utils.ensure_boolean(raw_value)
parameter_validation = ensure_boolean(raw_value)
# Override the user agent if specified in the client config.
user_agent = self._user_agent
@ -211,12 +233,13 @@ class ClientArgsCreator:
retries=client_config.retries,
client_cert=client_config.client_cert,
inject_host_prefix=client_config.inject_host_prefix,
tcp_keepalive=client_config.tcp_keepalive,
)
self._compute_retry_config(config_kwargs)
self._compute_connect_timeout(config_kwargs)
s3_config = self.compute_s3_config(client_config)
is_s3_service = service_name in ['s3', 's3-control']
is_s3_service = self._is_s3_service(service_name)
if is_s3_service and 'dualstack' in endpoint_variant_tags:
if s3_config is None:
@ -231,7 +254,9 @@ class ClientArgsCreator:
'protocol': protocol,
'config_kwargs': config_kwargs,
's3_config': s3_config,
'socket_options': self._compute_socket_options(scoped_config),
'socket_options': self._compute_socket_options(
scoped_config, client_config
),
}
def compute_s3_config(self, client_config):
@ -253,6 +278,16 @@ class ClientArgsCreator:
return s3_configuration
def _is_s3_service(self, service_name):
"""Whether the service is S3 or S3 Control.
Note that throughout this class, service_name refers to the endpoint
prefix, not the folder name of the service in botocore/data. For
S3 Control, the folder name is 's3control' but the endpoint prefix is
's3-control'.
"""
return service_name in ['s3', 's3-control']
def _compute_endpoint_config(
self,
service_name,
@ -342,8 +377,10 @@ class ClientArgsCreator:
def _should_set_global_sts_endpoint(
self, region_name, endpoint_url, endpoint_config
):
endpoint_variant_tags = endpoint_config['metadata'].get('tags')
if endpoint_url or endpoint_variant_tags:
has_variant_tags = endpoint_config and endpoint_config.get(
'metadata', {}
).get('tags')
if endpoint_url or has_variant_tags:
return False
return (
self._get_sts_regional_endpoints_config() == 'legacy'
@ -382,16 +419,17 @@ class ClientArgsCreator:
service_name, region_name, endpoint_url, is_secure
)
def _compute_socket_options(self, scoped_config):
def _compute_socket_options(self, scoped_config, client_config=None):
# This disables Nagle's algorithm and is the default socket options
# in urllib3.
socket_options = [(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)]
if scoped_config:
# Enables TCP Keepalive if specified in shared config file.
if self._ensure_boolean(scoped_config.get('tcp_keepalive', False)):
socket_options.append(
(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
)
client_keepalive = client_config and client_config.tcp_keepalive
scoped_keepalive = scoped_config and self._ensure_boolean(
scoped_config.get("tcp_keepalive", False)
)
# Enables TCP Keepalive if specified in client config object or shared config file.
if client_keepalive or scoped_keepalive:
socket_options.append((socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1))
return socket_options
def _compute_retry_config(self, config_kwargs):
@ -462,3 +500,149 @@ class ClientArgsCreator:
return val
else:
return val.lower() == 'true'
def _build_endpoint_resolver(
self,
endpoints_ruleset_data,
partition_data,
client_config,
service_model,
endpoint_region_name,
region_name,
endpoint_url,
endpoint,
is_secure,
endpoint_bridge,
event_emitter,
):
if endpoints_ruleset_data is None:
return None
# The legacy EndpointResolver is global to the session, but
# EndpointRulesetResolver is service-specific. Builtins for
# EndpointRulesetResolver must not be derived from the legacy
# endpoint resolver's output, including final_args, s3_config,
# etc.
s3_config_raw = self.compute_s3_config(client_config) or {}
service_name_raw = service_model.endpoint_prefix
# Maintain complex logic for s3 and sts endpoints for backwards
# compatibility.
if service_name_raw in ['s3', 'sts'] or region_name is None:
eprv2_region_name = endpoint_region_name
else:
eprv2_region_name = region_name
resolver_builtins = self.compute_endpoint_resolver_builtin_defaults(
region_name=eprv2_region_name,
service_name=service_name_raw,
s3_config=s3_config_raw,
endpoint_bridge=endpoint_bridge,
client_endpoint_url=endpoint_url,
legacy_endpoint_url=endpoint.host,
)
# botocore does not support client context parameters generically
# for every service. Instead, the s3 config section entries are
# available as client context parameters. In the future, endpoint
# rulesets of services other than s3/s3control may require client
# context parameters.
client_context = (
s3_config_raw if self._is_s3_service(service_name_raw) else {}
)
sig_version = (
client_config.signature_version
if client_config is not None
else None
)
return EndpointRulesetResolver(
endpoint_ruleset_data=endpoints_ruleset_data,
partition_data=partition_data,
service_model=service_model,
builtins=resolver_builtins,
client_context=client_context,
event_emitter=event_emitter,
use_ssl=is_secure,
requested_auth_scheme=sig_version,
)
def compute_endpoint_resolver_builtin_defaults(
self,
region_name,
service_name,
s3_config,
endpoint_bridge,
client_endpoint_url,
legacy_endpoint_url,
):
# EndpointRulesetResolver rulesets may accept an "SDK::Endpoint" as
# input. If the endpoint_url argument of create_client() is set, it
# always takes priority.
if client_endpoint_url:
given_endpoint = client_endpoint_url
# If an endpoints.json data file other than the one bundled within
# the botocore/data directory is used, the output of legacy
# endpoint resolution is provided to EndpointRulesetResolver.
elif not endpoint_bridge.resolver_uses_builtin_data():
given_endpoint = legacy_endpoint_url
else:
given_endpoint = None
# The endpoint rulesets differ from legacy botocore behavior in whether
# forcing path style addressing in incompatible situations raises an
# exception or silently ignores the config setting. The
# AWS_S3_FORCE_PATH_STYLE parameter is adjusted both here and for each
# operation so that the ruleset behavior is backwards compatible.
if s3_config.get('use_accelerate_endpoint', False):
force_path_style = False
elif client_endpoint_url is not None and not is_s3_accelerate_url(
client_endpoint_url
):
force_path_style = s3_config.get('addressing_style') != 'virtual'
else:
force_path_style = s3_config.get('addressing_style') == 'path'
return {
EPRBuiltins.AWS_REGION: region_name,
EPRBuiltins.AWS_USE_FIPS: (
# SDK_ENDPOINT cannot be combined with AWS_USE_FIPS
given_endpoint is None
# use legacy resolver's _resolve_endpoint_variant_config_var()
# or default to False if it returns None
and endpoint_bridge._resolve_endpoint_variant_config_var(
'use_fips_endpoint'
)
or False
),
EPRBuiltins.AWS_USE_DUALSTACK: (
# SDK_ENDPOINT cannot be combined with AWS_USE_DUALSTACK
given_endpoint is None
# use legacy resolver's _resolve_use_dualstack_endpoint() and
# or default to False if it returns None
and endpoint_bridge._resolve_use_dualstack_endpoint(
service_name
)
or False
),
EPRBuiltins.AWS_STS_USE_GLOBAL_ENDPOINT: (
self._should_set_global_sts_endpoint(
region_name=region_name,
endpoint_url=None,
endpoint_config=None,
)
),
EPRBuiltins.AWS_S3_USE_GLOBAL_ENDPOINT: (
self._should_force_s3_global(region_name, s3_config)
),
EPRBuiltins.AWS_S3_ACCELERATE: s3_config.get(
'use_accelerate_endpoint', False
),
EPRBuiltins.AWS_S3_FORCE_PATH_STYLE: force_path_style,
EPRBuiltins.AWS_S3_USE_ARN_REGION: s3_config.get(
'use_arn_region', True
),
EPRBuiltins.AWS_S3CONTROL_USE_ARN_REGION: s3_config.get(
'use_arn_region', False
),
EPRBuiltins.AWS_S3_DISABLE_MRAP: s3_config.get(
's3_disable_multiregion_access_points', False
),
EPRBuiltins.SDK_ENDPOINT: given_endpoint,
}

View file

@ -35,7 +35,7 @@ from botocore.compat import (
urlsplit,
urlunsplit,
)
from botocore.exceptions import NoCredentialsError
from botocore.exceptions import NoAuthTokenError, NoCredentialsError
from botocore.utils import (
is_valid_ipv6_endpoint_url,
normalize_url_path,
@ -101,11 +101,22 @@ def _get_body_as_dict(request):
class BaseSigner:
REQUIRES_REGION = False
REQUIRES_TOKEN = False
def add_auth(self, request):
raise NotImplementedError("add_auth")
class TokenSigner(BaseSigner):
REQUIRES_TOKEN = True
"""
Signers that expect an authorization token to perform the authorization
"""
def __init__(self, auth_token):
self.auth_token = auth_token
class SigV2Auth(BaseSigner):
"""
Sign a request with Signature V2.
@ -934,6 +945,24 @@ class HmacV1PostAuth(HmacV1Auth):
request.context['s3-presign-post-policy'] = policy
class BearerAuth(TokenSigner):
"""
Performs bearer token authorization by placing the bearer token in the
Authorization header as specified by Section 2.1 of RFC 6750.
https://datatracker.ietf.org/doc/html/rfc6750#section-2.1
"""
def add_auth(self, request):
if self.auth_token is None:
raise NoAuthTokenError()
auth_header = f'Bearer {self.auth_token.token}'
if 'Authorization' in request.headers:
del request.headers['Authorization']
request.headers['Authorization'] = auth_header
AUTH_TYPE_MAPS = {
'v2': SigV2Auth,
'v3': SigV3Auth,
@ -942,6 +971,7 @@ AUTH_TYPE_MAPS = {
's3-query': HmacV1QueryAuth,
's3-presign-post': HmacV1PostAuth,
's3v4-presign-post': S3SigV4PostAuth,
'bearer': BearerAuth,
}
# Define v4 signers depending on if CRT is present

View file

@ -100,7 +100,7 @@ class AWSConnection:
def _convert_to_bytes(self, mixed_buffer):
# Take a list of mixed str/bytes and convert it
# all into a single bytestring.
# Any six.text_types will be encoded as utf-8.
# Any str will be encoded as utf-8.
bytes_buffer = []
for chunk in mixed_buffer:
if isinstance(chunk, str):
@ -299,7 +299,11 @@ def create_request_object(request_dict):
"""
r = request_dict
request_object = AWSRequest(
method=r['method'], url=r['url'], data=r['body'], headers=r['headers']
method=r['method'],
url=r['url'],
data=r['body'],
headers=r['headers'],
auth_path=r.get('auth_path'),
)
request_object.context = r['context']
return request_object

View file

@ -16,6 +16,7 @@ from botocore import waiter, xform_name
from botocore.args import ClientArgsCreator
from botocore.auth import AUTH_TYPE_MAPS
from botocore.awsrequest import prepare_request_dict
from botocore.config import Config
from botocore.discovery import (
EndpointDiscoveryHandler,
EndpointDiscoveryManager,
@ -26,6 +27,7 @@ from botocore.exceptions import (
DataNotFoundError,
InvalidEndpointDiscoveryConfigurationError,
OperationNotPageableError,
UnknownServiceError,
UnknownSignatureVersionError,
)
from botocore.history import get_global_history_recorder
@ -40,25 +42,37 @@ from botocore.retries import adaptive, standard
from botocore.utils import (
CachedProperty,
EventbridgeSignerSetter,
S3ArnParamHandler,
S3ControlArnParamHandler,
S3ControlEndpointSetter,
S3EndpointSetter,
S3RegionRedirector,
S3ControlArnParamHandlerv2,
S3RegionRedirectorv2,
ensure_boolean,
get_service_module_name,
)
# Keep these imported. There's pre-existing code that uses:
# "from botocore.client import Config"
# "from botocore.client import UNSIGNED"
# "from botocore.client import ClientError"
# etc.
from botocore.config import Config # noqa
from botocore.exceptions import ClientError # noqa
from botocore.args import ClientArgsCreator # noqa
from botocore.utils import S3ArnParamHandler # noqa
from botocore.utils import S3ControlArnParamHandler # noqa
from botocore.utils import S3ControlEndpointSetter # noqa
from botocore.utils import S3EndpointSetter # noqa
from botocore.utils import S3RegionRedirector # noqa
from botocore import UNSIGNED # noqa
_LEGACY_SIGNATURE_VERSIONS = frozenset(
(
'v2',
'v3',
'v3https',
'v4',
's3',
's3v4',
)
)
logger = logging.getLogger(__name__)
history_recorder = get_global_history_recorder()
@ -103,12 +117,27 @@ class ClientCreator:
scoped_config=None,
api_version=None,
client_config=None,
auth_token=None,
):
responses = self._event_emitter.emit(
'choose-service-name', service_name=service_name
)
service_name = first_non_none_response(responses, default=service_name)
service_model = self._load_service_model(service_name, api_version)
try:
endpoints_ruleset_data = self._load_service_endpoints_ruleset(
service_name, api_version
)
partition_data = self._loader.load_data('partitions')
except UnknownServiceError:
endpoints_ruleset_data = None
partition_data = None
logger.info(
'No endpoints ruleset found for service %s, falling back to '
'legacy endpoint routing.',
service_name,
)
cls = self._create_client_class(service_name, service_model)
region_name, client_config = self._normalize_fips_region(
region_name, client_config
@ -119,6 +148,9 @@ class ClientCreator:
client_config,
service_signing_name=service_model.metadata.get('signingName'),
config_store=self._config_store,
service_signature_version=service_model.metadata.get(
'signatureVersion'
),
)
client_args = self._get_client_args(
service_model,
@ -130,26 +162,20 @@ class ClientCreator:
scoped_config,
client_config,
endpoint_bridge,
auth_token,
endpoints_ruleset_data,
partition_data,
)
service_client = cls(**client_args)
self._register_retries(service_client)
self._register_eventbridge_events(
service_client, endpoint_bridge, endpoint_url
)
self._register_s3_events(
service_client,
endpoint_bridge,
endpoint_url,
client_config,
scoped_config,
)
self._register_s3_control_events(
service_client,
endpoint_bridge,
endpoint_url,
client_config,
scoped_config,
client=service_client,
endpoint_bridge=None,
endpoint_url=None,
client_config=client_config,
scoped_config=scoped_config,
)
self._register_s3_control_events(client=service_client)
self._register_endpoint_discovery(
service_client, endpoint_url, client_config
)
@ -205,6 +231,11 @@ class ClientCreator:
service_model = ServiceModel(json_model, service_name=service_name)
return service_model
def _load_service_endpoints_ruleset(self, service_name, api_version=None):
return self._loader.load_service_model(
service_name, 'endpoint-rule-set-1', api_version=api_version
)
def _register_retries(self, client):
retry_mode = client.meta.config.retries['mode']
if retry_mode == 'standard':
@ -346,17 +377,7 @@ class ClientCreator:
):
if client.meta.service_model.service_name != 's3':
return
S3RegionRedirector(endpoint_bridge, client).register()
S3ArnParamHandler().register(client.meta.events)
use_fips_endpoint = client.meta.config.use_fips_endpoint
S3EndpointSetter(
endpoint_resolver=self._endpoint_resolver,
region=client.meta.region_name,
s3_config=client.meta.config.s3,
endpoint_url=endpoint_url,
partition=client.meta.partition,
use_fips_endpoint=use_fips_endpoint,
).register(client.meta.events)
S3RegionRedirectorv2(None, client).register()
self._set_s3_presign_signature_version(
client.meta, client_config, scoped_config
)
@ -364,23 +385,14 @@ class ClientCreator:
def _register_s3_control_events(
self,
client,
endpoint_bridge,
endpoint_url,
client_config,
scoped_config,
endpoint_bridge=None,
endpoint_url=None,
client_config=None,
scoped_config=None,
):
if client.meta.service_model.service_name != 's3control':
return
use_fips_endpoint = client.meta.config.use_fips_endpoint
S3ControlArnParamHandler().register(client.meta.events)
S3ControlEndpointSetter(
endpoint_resolver=self._endpoint_resolver,
region=client.meta.region_name,
s3_config=client.meta.config.s3,
endpoint_url=endpoint_url,
partition=client.meta.partition,
use_fips_endpoint=use_fips_endpoint,
).register(client.meta.events)
S3ControlArnParamHandlerv2().register(client.meta.events)
def _set_s3_presign_signature_version(
self, client_meta, client_config, scoped_config
@ -429,7 +441,8 @@ class ClientCreator:
"""
Returns the 's3' (sigv2) signer if presigning an s3 request. This is
intended to be used to set the default signature version for the signer
to sigv2.
to sigv2. Situations where an asymmetric signature is required are the
exception, for example MRAP needs v4a.
:type signature_version: str
:param signature_version: The current client signature version.
@ -439,9 +452,12 @@ class ClientCreator:
:return: 's3' if the request is an s3 presign request, None otherwise
"""
if signature_version.startswith('v4a'):
return
for suffix in ['-query', '-presign-post']:
if signature_version.endswith(suffix):
return 's3' + suffix
return f's3{suffix}'
def _get_client_args(
self,
@ -454,6 +470,9 @@ class ClientCreator:
scoped_config,
client_config,
endpoint_bridge,
auth_token,
endpoints_ruleset_data,
partition_data,
):
args_creator = ClientArgsCreator(
self._event_emitter,
@ -473,6 +492,9 @@ class ClientCreator:
scoped_config,
client_config,
endpoint_bridge,
auth_token,
endpoints_ruleset_data,
partition_data,
)
def _create_methods(self, service_model):
@ -545,6 +567,7 @@ class ClientEndpointBridge:
default_endpoint=None,
service_signing_name=None,
config_store=None,
service_signature_version=None,
):
self.service_signing_name = service_signing_name
self.endpoint_resolver = endpoint_resolver
@ -552,6 +575,7 @@ class ClientEndpointBridge:
self.client_config = client_config
self.default_endpoint = default_endpoint or self.DEFAULT_ENDPOINT
self.config_store = config_store
self.service_signature_version = service_signature_version
def resolve(
self, service_name, region_name=None, endpoint_url=None, is_secure=True
@ -592,6 +616,9 @@ class ClientEndpointBridge:
service_name, region_name, endpoint_url, is_secure
)
def resolver_uses_builtin_data(self):
return self.endpoint_resolver.uses_builtin_data
def _check_default_region(self, service_name, region_name):
if region_name is not None:
return region_name
@ -606,10 +633,10 @@ class ClientEndpointBridge:
resolved, region_name, endpoint_url
)
if endpoint_url is None:
# Use the sslCommonName over the hostname for Python 2.6 compat.
hostname = resolved.get('sslCommonName', resolved.get('hostname'))
endpoint_url = self._make_url(
hostname, is_secure, resolved.get('protocols', [])
resolved.get('hostname'),
is_secure,
resolved.get('protocols', []),
)
signature_version = self._resolve_signature_version(
service_name, resolved
@ -765,9 +792,18 @@ class ClientEndpointBridge:
if configured_version is not None:
return configured_version
potential_versions = resolved.get('signatureVersions', [])
if (
self.service_signature_version is not None
and self.service_signature_version
not in _LEGACY_SIGNATURE_VERSIONS
):
# Prefer the service model as most specific
# source of truth for new signature versions.
potential_versions = [self.service_signature_version]
# Pick a signature version from the endpoint metadata if present.
if 'signatureVersions' in resolved:
potential_versions = resolved['signatureVersions']
if service_name == 's3':
return 's3v4'
if 'v4' in potential_versions:
@ -778,7 +814,7 @@ class ClientEndpointBridge:
if known in AUTH_TYPE_MAPS:
return known
raise UnknownSignatureVersionError(
signature_version=resolved.get('signatureVersions')
signature_version=potential_versions
)
@ -804,9 +840,11 @@ class BaseClient:
client_config,
partition,
exceptions_factory,
endpoint_ruleset_resolver=None,
):
self._serializer = serializer
self._endpoint = endpoint
self._ruleset_resolver = endpoint_ruleset_resolver
self._response_parser = response_parser
self._request_signer = request_signer
self._cache = {}
@ -839,6 +877,10 @@ class BaseClient:
f"'{self.__class__.__name__}' object has no attribute '{item}'"
)
def close(self):
"""Closes underlying endpoint connections."""
self._endpoint.close()
def _register_handlers(self):
# Register the handler required to sign requests.
service_id = self.meta.service_model.service_id.hyphenize()
@ -871,8 +913,15 @@ class BaseClient:
'has_streaming_input': operation_model.has_streaming_input,
'auth_type': operation_model.auth_type,
}
endpoint_url, additional_headers = self._resolve_endpoint_ruleset(
operation_model, api_params, request_context
)
request_dict = self._convert_to_request_dict(
api_params, operation_model, context=request_context
api_params=api_params,
operation_model=operation_model,
endpoint_url=endpoint_url,
context=request_context,
headers=additional_headers,
)
resolve_checksum_context(request_dict, operation_model, api_params)
@ -927,7 +976,13 @@ class BaseClient:
raise
def _convert_to_request_dict(
self, api_params, operation_model, context=None
self,
api_params,
operation_model,
endpoint_url,
context=None,
headers=None,
set_user_agent_header=True,
):
api_params = self._emit_api_params(
api_params, operation_model, context
@ -937,10 +992,16 @@ class BaseClient:
)
if not self._client_config.inject_host_prefix:
request_dict.pop('host_prefix', None)
if headers is not None:
request_dict['headers'].update(headers)
if set_user_agent_header:
user_agent = self._client_config.user_agent
else:
user_agent = None
prepare_request_dict(
request_dict,
endpoint_url=self._endpoint.host,
user_agent=self._client_config.user_agent,
endpoint_url=endpoint_url,
user_agent=user_agent,
context=context,
)
return request_dict
@ -970,6 +1031,56 @@ class BaseClient:
)
return api_params
def _resolve_endpoint_ruleset(
self,
operation_model,
params,
request_context,
ignore_signing_region=False,
):
"""Returns endpoint URL and list of additional headers returned from
EndpointRulesetResolver for the given operation and params. If the
ruleset resolver is not available, for example because the service has
no endpoints ruleset file, the legacy endpoint resolver's value is
returned.
Use ignore_signing_region for generating presigned URLs or any other
situtation where the signing region information from the ruleset
resolver should be ignored.
Returns tuple of URL and headers dictionary. Additionally, the
request_context dict is modified in place with any signing information
returned from the ruleset resolver.
"""
if self._ruleset_resolver is None:
endpoint_url = self.meta.endpoint_url
additional_headers = {}
else:
endpoint_info = self._ruleset_resolver.construct_endpoint(
operation_model=operation_model,
call_args=params,
request_context=request_context,
)
endpoint_url = endpoint_info.url
additional_headers = endpoint_info.headers
# If authSchemes is present, overwrite default auth type and
# signing context derived from service model.
auth_schemes = endpoint_info.properties.get('authSchemes')
if auth_schemes is not None:
auth_info = self._ruleset_resolver.auth_schemes_to_signing_ctx(
auth_schemes
)
auth_type, signing_context = auth_info
request_context['auth_type'] = auth_type
if 'region' in signing_context and ignore_signing_region:
del signing_context['region']
if 'signing' in request_context:
request_context['signing'].update(signing_context)
else:
request_context['signing'] = signing_context
return endpoint_url, additional_headers
def get_paginator(self, operation_name):
"""Create a paginator for an operation.

View file

@ -17,6 +17,7 @@ import sys
import inspect
import warnings
import hashlib
from http.client import HTTPMessage
import logging
import shlex
import re
@ -33,9 +34,7 @@ from urllib3 import exceptions
logger = logging.getLogger(__name__)
from botocore.vendored.six.moves import http_client
class HTTPHeaders(http_client.HTTPMessage):
class HTTPHeaders(HTTPMessage):
pass
from urllib.parse import (
@ -307,6 +306,7 @@ except ImportError:
# Vendoring IPv6 validation regex patterns from urllib3
# https://github.com/urllib3/urllib3/blob/7e856c0/src/urllib3/util/url.py
IPV4_PAT = r"(?:[0-9]{1,3}\.){3}[0-9]{1,3}"
IPV4_RE = re.compile("^" + IPV4_PAT + "$")
HEX_PAT = "[0-9A-Fa-f]{1,4}"
LS32_PAT = "(?:{hex}:{hex}|{ipv4})".format(hex=HEX_PAT, ipv4=IPV4_PAT)
_subs = {"hex": HEX_PAT, "ls32": LS32_PAT}

View file

@ -183,6 +183,12 @@ class Config:
endpoint resolution.
Defaults to None.
:type tcp_keepalive: bool
:param tcp_keepalive: Enables the TCP Keep-Alive socket option used when
creating new connections if set to True.
Defaults to False.
"""
OPTION_DEFAULTS = OrderedDict(
@ -205,6 +211,7 @@ class Config:
('use_dualstack_endpoint', None),
('use_fips_endpoint', None),
('defaults_mode', None),
('tcp_keepalive', None),
]
)
@ -276,11 +283,14 @@ class Config:
)
def _validate_retry_configuration(self, retries):
valid_options = ('max_attempts', 'mode', 'total_max_attempts')
valid_modes = ('legacy', 'standard', 'adaptive')
if retries is not None:
for key, value in retries.items():
if key not in ['max_attempts', 'mode', 'total_max_attempts']:
if key not in valid_options:
raise InvalidRetryConfigurationError(
retry_config_option=key
retry_config_option=key,
valid_options=valid_options,
)
if key == 'max_attempts' and value < 0:
raise InvalidMaxRetryAttemptsError(
@ -292,12 +302,11 @@ class Config:
provided_max_attempts=value,
min_value=1,
)
if key == 'mode' and value not in (
'legacy',
'standard',
'adaptive',
):
raise InvalidRetryModeError(provided_retry_mode=value)
if key == 'mode' and value not in valid_modes:
raise InvalidRetryModeError(
provided_retry_mode=value,
valid_modes=valid_modes,
)
def merge(self, other_config):
"""Merges the config object with another config object

View file

@ -11,13 +11,13 @@
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
import configparser
import copy
import os
import shlex
import sys
import botocore.exceptions
from botocore.compat import six
def multi_file_load_config(*filenames):
@ -143,10 +143,10 @@ def raw_config_parse(config_filename, parse_subsections=True):
path = os.path.expanduser(path)
if not os.path.isfile(path):
raise botocore.exceptions.ConfigNotFound(path=_unicode_path(path))
cp = six.moves.configparser.RawConfigParser()
cp = configparser.RawConfigParser()
try:
cp.read([path])
except (six.moves.configparser.Error, UnicodeDecodeError) as e:
except (configparser.Error, UnicodeDecodeError) as e:
raise botocore.exceptions.ConfigParseError(
path=_unicode_path(path), error=e
) from None
@ -253,6 +253,7 @@ def build_profile_map(parsed_ini_config):
"""
parsed_config = copy.deepcopy(parsed_ini_config)
profiles = {}
sso_sessions = {}
final_config = {}
for key, values in parsed_config.items():
if key.startswith("profile"):
@ -262,6 +263,13 @@ def build_profile_map(parsed_ini_config):
continue
if len(parts) == 2:
profiles[parts[1]] = values
elif key.startswith("sso-session"):
try:
parts = shlex.split(key)
except ValueError:
continue
if len(parts) == 2:
sso_sessions[parts[1]] = values
elif key == 'default':
# default section is special and is considered a profile
# name but we don't require you use 'profile "default"'
@ -270,4 +278,5 @@ def build_profile_map(parsed_ini_config):
else:
final_config[key] = values
final_config['profiles'] = profiles
final_config['sso_sessions'] = sso_sessions
return final_config

View file

@ -22,7 +22,6 @@ import time
from collections import namedtuple
from copy import deepcopy
from hashlib import sha1
from pathlib import Path
from dateutil.parser import parse
from dateutil.tz import tzlocal, tzutc
@ -43,10 +42,12 @@ from botocore.exceptions import (
UnauthorizedSSOTokenError,
UnknownCredentialError,
)
from botocore.tokens import SSOTokenProvider
from botocore.utils import (
ContainerMetadataFetcher,
FileWebIdentityTokenLoader,
InstanceMetadataFetcher,
JSONFileCache,
SSOTokenLoader,
parse_key_val_file,
resolve_imds_endpoint_mode,
@ -223,6 +224,7 @@ class ProfileProviderBuilder:
profile_name=profile_name,
cache=self._cache,
token_cache=self._sso_token_cache,
token_provider=SSOTokenProvider(self._session),
)
@ -292,68 +294,6 @@ def create_mfa_serial_refresher(actual_refresh):
return _Refresher(actual_refresh)
class JSONFileCache:
"""JSON file cache.
This provides a dict like interface that stores JSON serializable
objects.
The objects are serialized to JSON and stored in a file. These
values can be retrieved at a later time.
"""
CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'boto', 'cache'))
def __init__(self, working_dir=CACHE_DIR, dumps_func=None):
self._working_dir = working_dir
if dumps_func is None:
dumps_func = self._default_dumps
self._dumps = dumps_func
def _default_dumps(self, obj):
return json.dumps(obj, default=_serialize_if_needed)
def __contains__(self, cache_key):
actual_key = self._convert_cache_key(cache_key)
return os.path.isfile(actual_key)
def __getitem__(self, cache_key):
"""Retrieve value from a cache key."""
actual_key = self._convert_cache_key(cache_key)
try:
with open(actual_key) as f:
return json.load(f)
except (OSError, ValueError):
raise KeyError(cache_key)
def __delitem__(self, cache_key):
actual_key = self._convert_cache_key(cache_key)
try:
key_path = Path(actual_key)
key_path.unlink()
except FileNotFoundError:
raise KeyError(cache_key)
def __setitem__(self, cache_key, value):
full_key = self._convert_cache_key(cache_key)
try:
file_content = self._dumps(value)
except (TypeError, ValueError):
raise ValueError(
f"Value cannot be cached, must be "
f"JSON serializable: {value}"
)
if not os.path.isdir(self._working_dir):
os.makedirs(self._working_dir)
with os.fdopen(
os.open(full_key, os.O_WRONLY | os.O_CREAT, 0o600), 'w'
) as f:
f.truncate()
f.write(file_content)
def _convert_cache_key(self, cache_key):
full_path = os.path.join(self._working_dir, cache_key + '.json')
return full_path
class Credentials:
"""
Holds the credentials needed to authenticate requests.
@ -1105,7 +1045,7 @@ class InstanceMetadataProvider(CredentialProvider):
metadata = fetcher.retrieve_iam_role_credentials()
if not metadata:
return None
logger.debug(
logger.info(
'Found credentials from IAM Role: %s', metadata['role_name']
)
# We manually set the data here, since we already made the request &
@ -2118,6 +2058,8 @@ class SSOCredentialFetcher(CachedCredentialFetcher):
token_loader=None,
cache=None,
expiry_window_seconds=None,
token_provider=None,
sso_session_name=None,
):
self._client_creator = client_creator
self._sso_region = sso_region
@ -2125,6 +2067,8 @@ class SSOCredentialFetcher(CachedCredentialFetcher):
self._account_id = account_id
self._start_url = start_url
self._token_loader = token_loader
self._token_provider = token_provider
self._sso_session_name = sso_session_name
super().__init__(cache, expiry_window_seconds)
def _create_cache_key(self):
@ -2133,10 +2077,13 @@ class SSOCredentialFetcher(CachedCredentialFetcher):
The cache key is intended to be compatible with file names.
"""
args = {
'startUrl': self._start_url,
'roleName': self._role_name,
'accountId': self._account_id,
}
if self._sso_session_name:
args['sessionName'] = self._sso_session_name
else:
args['startUrl'] = self._start_url
# NOTE: It would be good to hoist this cache key construction logic
# into the CachedCredentialFetcher class as we should be consistent.
# Unfortunately, the current assume role fetchers that sub class don't
@ -2159,11 +2106,16 @@ class SSOCredentialFetcher(CachedCredentialFetcher):
region_name=self._sso_region,
)
client = self._client_creator('sso', config=config)
if self._token_provider:
initial_token_data = self._token_provider.load_token()
token = initial_token_data.get_frozen_token().token
else:
token = self._token_loader(self._start_url)['accessToken']
kwargs = {
'roleName': self._role_name,
'accountId': self._account_id,
'accessToken': self._token_loader(self._start_url),
'accessToken': token,
}
try:
response = client.get_role_credentials(**kwargs)
@ -2189,12 +2141,17 @@ class SSOProvider(CredentialProvider):
_SSO_TOKEN_CACHE_DIR = os.path.expanduser(
os.path.join('~', '.aws', 'sso', 'cache')
)
_SSO_CONFIG_VARS = [
'sso_start_url',
'sso_region',
_PROFILE_REQUIRED_CONFIG_VARS = (
'sso_role_name',
'sso_account_id',
]
)
_SSO_REQUIRED_CONFIG_VARS = (
'sso_start_url',
'sso_region',
)
_ALL_REQUIRED_CONFIG_VARS = (
_PROFILE_REQUIRED_CONFIG_VARS + _SSO_REQUIRED_CONFIG_VARS
)
def __init__(
self,
@ -2203,10 +2160,12 @@ class SSOProvider(CredentialProvider):
profile_name,
cache=None,
token_cache=None,
token_provider=None,
):
if token_cache is None:
token_cache = JSONFileCache(self._SSO_TOKEN_CACHE_DIR)
self._token_cache = token_cache
self._token_provider = token_provider
if cache is None:
cache = {}
self.cache = cache
@ -2219,15 +2178,24 @@ class SSOProvider(CredentialProvider):
profiles = loaded_config.get('profiles', {})
profile_name = self._profile_name
profile_config = profiles.get(self._profile_name, {})
sso_sessions = loaded_config.get('sso_sessions', {})
if all(c not in profile_config for c in self._SSO_CONFIG_VARS):
# Role name & Account ID indicate the cred provider should be used
if all(
c not in profile_config for c in self._PROFILE_REQUIRED_CONFIG_VARS
):
return None
resolved_config, extra_reqs = self._resolve_sso_session_reference(
profile_config, sso_sessions
)
config = {}
missing_config_vars = []
for config_var in self._SSO_CONFIG_VARS:
if config_var in profile_config:
config[config_var] = profile_config[config_var]
all_required_configs = self._ALL_REQUIRED_CONFIG_VARS + extra_reqs
for config_var in all_required_configs:
if config_var in resolved_config:
config[config_var] = resolved_config[config_var]
else:
missing_config_vars.append(config_var)
@ -2239,23 +2207,50 @@ class SSOProvider(CredentialProvider):
'required configuration: %s' % (profile_name, missing)
)
)
return config
def _resolve_sso_session_reference(self, profile_config, sso_sessions):
sso_session_name = profile_config.get('sso_session')
if sso_session_name is None:
# No reference to resolve, proceed with legacy flow
return profile_config, ()
if sso_session_name not in sso_sessions:
error_msg = f'The specified sso-session does not exist: "{sso_session_name}"'
raise InvalidConfigError(error_msg=error_msg)
config = profile_config.copy()
session = sso_sessions[sso_session_name]
for config_var, val in session.items():
# Validate any keys referenced in both profile and sso_session match
if config.get(config_var, val) != val:
error_msg = (
f"The value for {config_var} is inconsistent between "
f"profile ({config[config_var]}) and sso-session ({val})."
)
raise InvalidConfigError(error_msg=error_msg)
config[config_var] = val
return config, ('sso_session',)
def load(self):
sso_config = self._load_sso_config()
if not sso_config:
return None
sso_fetcher = SSOCredentialFetcher(
sso_config['sso_start_url'],
sso_config['sso_region'],
sso_config['sso_role_name'],
sso_config['sso_account_id'],
self._client_creator,
token_loader=SSOTokenLoader(cache=self._token_cache),
cache=self.cache,
)
fetcher_kwargs = {
'start_url': sso_config['sso_start_url'],
'sso_region': sso_config['sso_region'],
'role_name': sso_config['sso_role_name'],
'account_id': sso_config['sso_account_id'],
'client_creator': self._client_creator,
'token_loader': SSOTokenLoader(cache=self._token_cache),
'cache': self.cache,
}
if 'sso_session' in sso_config:
fetcher_kwargs['sso_session_name'] = sso_config['sso_session']
fetcher_kwargs['token_provider'] = self._token_provider
sso_fetcher = SSOCredentialFetcher(**fetcher_kwargs)
return DeferredRefreshableCredentials(
method=self.METHOD,

View file

@ -0,0 +1,27 @@
# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
# A list of auth types supported by the signers in botocore/crt/auth.py. This
# should always match the keys of botocore.crt.auth.CRT_AUTH_TYPE_MAPS. The
# information is duplicated here so that it can be accessed in environments
# where `awscrt` is not present and any import from botocore.crt.auth would
# fail.
CRT_SUPPORTED_AUTH_TYPES = (
'v4',
'v4-query',
'v4a',
's3v4',
's3v4-query',
's3v4a',
's3v4a-query',
)

View file

@ -1,3 +1,16 @@
# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.
import datetime
from io import BytesIO

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": true,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://access-analyzer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://access-analyzer-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://access-analyzer.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://access-analyzer.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -545,13 +545,17 @@
"AccessPreview":{
"type":"structure",
"required":[
"id",
"analyzerArn",
"configurations",
"createdAt",
"id",
"status"
],
"members":{
"id":{
"shape":"AccessPreviewId",
"documentation":"<p>The unique ID for the access preview.</p>"
},
"analyzerArn":{
"shape":"AnalyzerArn",
"documentation":"<p>The ARN of the analyzer used to generate the access preview.</p>"
@ -564,10 +568,6 @@
"shape":"Timestamp",
"documentation":"<p>The time at which the access preview was created.</p>"
},
"id":{
"shape":"AccessPreviewId",
"documentation":"<p>The unique ID for the access preview.</p>"
},
"status":{
"shape":"AccessPreviewStatus",
"documentation":"<p>The status of the access preview.</p> <ul> <li> <p> <code>Creating</code> - The access preview creation is in progress.</p> </li> <li> <p> <code>Completed</code> - The access preview is complete. You can preview findings for external access to the resource.</p> </li> <li> <p> <code>Failed</code> - The access preview creation has failed.</p> </li> </ul>"
@ -582,33 +582,17 @@
"AccessPreviewFinding":{
"type":"structure",
"required":[
"changeType",
"createdAt",
"id",
"resourceOwnerAccount",
"resourceType",
"status"
"createdAt",
"changeType",
"status",
"resourceOwnerAccount"
],
"members":{
"action":{
"shape":"ActionList",
"documentation":"<p>The action in the analyzed policy statement that an external principal has permission to perform.</p>"
},
"changeType":{
"shape":"FindingChangeType",
"documentation":"<p>Provides context on how the access preview finding compares to existing access identified in IAM Access Analyzer.</p> <ul> <li> <p> <code>New</code> - The finding is for newly-introduced access.</p> </li> <li> <p> <code>Unchanged</code> - The preview finding is an existing finding that would remain unchanged.</p> </li> <li> <p> <code>Changed</code> - The preview finding is an existing finding with a change in status.</p> </li> </ul> <p>For example, a <code>Changed</code> finding with preview status <code>Resolved</code> and existing status <code>Active</code> indicates the existing <code>Active</code> finding would become <code>Resolved</code> as a result of the proposed permissions change.</p>"
},
"condition":{
"shape":"ConditionKeyMap",
"documentation":"<p>The condition in the analyzed policy statement that resulted in a finding.</p>"
},
"createdAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the access preview finding was created.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>An error.</p>"
"id":{
"shape":"AccessPreviewFindingId",
"documentation":"<p>The ID of the access preview finding. This ID uniquely identifies the element in the list of access preview findings and is not related to the finding ID in Access Analyzer.</p>"
},
"existingFindingId":{
"shape":"FindingId",
@ -618,37 +602,53 @@
"shape":"FindingStatus",
"documentation":"<p>The existing status of the finding, provided only for existing findings.</p>"
},
"id":{
"shape":"AccessPreviewFindingId",
"documentation":"<p>The ID of the access preview finding. This ID uniquely identifies the element in the list of access preview findings and is not related to the finding ID in Access Analyzer.</p>"
},
"isPublic":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the policy that generated the finding allows public access to the resource.</p>"
},
"principal":{
"shape":"PrincipalMap",
"documentation":"<p>The external principal that has access to a resource within the zone of trust.</p>"
},
"action":{
"shape":"ActionList",
"documentation":"<p>The action in the analyzed policy statement that an external principal has permission to perform.</p>"
},
"condition":{
"shape":"ConditionKeyMap",
"documentation":"<p>The condition in the analyzed policy statement that resulted in a finding.</p>"
},
"resource":{
"shape":"String",
"documentation":"<p>The resource that an external principal has access to. This is the resource associated with the access preview.</p>"
},
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning account is the account in which the resource was created.</p>"
"isPublic":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the policy that generated the finding allows public access to the resource.</p>"
},
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of the resource that can be accessed in the finding.</p>"
},
"sources":{
"shape":"FindingSourceList",
"documentation":"<p>The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.</p>"
"createdAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the access preview finding was created.</p>"
},
"changeType":{
"shape":"FindingChangeType",
"documentation":"<p>Provides context on how the access preview finding compares to existing access identified in IAM Access Analyzer.</p> <ul> <li> <p> <code>New</code> - The finding is for newly-introduced access.</p> </li> <li> <p> <code>Unchanged</code> - The preview finding is an existing finding that would remain unchanged.</p> </li> <li> <p> <code>Changed</code> - The preview finding is an existing finding with a change in status.</p> </li> </ul> <p>For example, a <code>Changed</code> finding with preview status <code>Resolved</code> and existing status <code>Active</code> indicates the existing <code>Active</code> finding would become <code>Resolved</code> as a result of the proposed permissions change.</p>"
},
"status":{
"shape":"FindingStatus",
"documentation":"<p>The preview status of the finding. This is what the status of the finding would be after permissions deployment. For example, a <code>Changed</code> finding with preview status <code>Resolved</code> and existing status <code>Active</code> indicates the existing <code>Active</code> finding would become <code>Resolved</code> as a result of the proposed permissions change.</p>"
},
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning account is the account in which the resource was created.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>An error.</p>"
},
"sources":{
"shape":"FindingSourceList",
"documentation":"<p>The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.</p>"
}
},
"documentation":"<p>An access preview finding generated by the access preview.</p>"
@ -691,12 +691,16 @@
"AccessPreviewSummary":{
"type":"structure",
"required":[
"id",
"analyzerArn",
"createdAt",
"id",
"status"
],
"members":{
"id":{
"shape":"AccessPreviewId",
"documentation":"<p>The unique ID for the access preview.</p>"
},
"analyzerArn":{
"shape":"AnalyzerArn",
"documentation":"<p>The ARN of the analyzer used to generate the access preview.</p>"
@ -705,10 +709,6 @@
"shape":"Timestamp",
"documentation":"<p>The time at which the access preview was created.</p>"
},
"id":{
"shape":"AccessPreviewId",
"documentation":"<p>The unique ID for the access preview.</p>"
},
"status":{
"shape":"AccessPreviewStatus",
"documentation":"<p>The status of the access preview.</p> <ul> <li> <p> <code>Creating</code> - The access preview creation is in progress.</p> </li> <li> <p> <code>Completed</code> - The access preview is complete and previews the findings for external access to the resource.</p> </li> <li> <p> <code>Failed</code> - The access preview creation has failed.</p> </li> </ul>"
@ -755,46 +755,42 @@
"AnalyzedResource":{
"type":"structure",
"required":[
"analyzedAt",
"createdAt",
"isPublic",
"resourceArn",
"resourceOwnerAccount",
"resourceType",
"updatedAt"
"createdAt",
"analyzedAt",
"updatedAt",
"isPublic",
"resourceOwnerAccount"
],
"members":{
"actions":{
"shape":"ActionList",
"documentation":"<p>The actions that an external principal is granted permission to use by the policy that generated the finding.</p>"
"resourceArn":{
"shape":"ResourceArn",
"documentation":"<p>The ARN of the resource that was analyzed.</p>"
},
"analyzedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the resource was analyzed.</p>"
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of the resource that was analyzed.</p>"
},
"createdAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was created.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>An error message.</p>"
"analyzedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the resource was analyzed.</p>"
},
"updatedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was updated.</p>"
},
"isPublic":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the policy that generated the finding grants public access to the resource.</p>"
},
"resourceArn":{
"shape":"ResourceArn",
"documentation":"<p>The ARN of the resource that was analyzed.</p>"
},
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource.</p>"
},
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of the resource that was analyzed.</p>"
"actions":{
"shape":"ActionList",
"documentation":"<p>The actions that an external principal is granted permission to use by the policy that generated the finding.</p>"
},
"sharedVia":{
"shape":"SharedViaList",
@ -804,9 +800,13 @@
"shape":"FindingStatus",
"documentation":"<p>The current status of the finding generated from the analyzed resource.</p>"
},
"updatedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was updated.</p>"
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>An error message.</p>"
}
},
"documentation":"<p>Contains details about the analyzed resource.</p>"
@ -855,16 +855,24 @@
"type":"structure",
"required":[
"arn",
"createdAt",
"name",
"status",
"type"
"type",
"createdAt",
"status"
],
"members":{
"arn":{
"shape":"AnalyzerArn",
"documentation":"<p>The ARN of the analyzer.</p>"
},
"name":{
"shape":"Name",
"documentation":"<p>The name of the analyzer.</p>"
},
"type":{
"shape":"Type",
"documentation":"<p>The type of analyzer, which corresponds to the zone of trust chosen for the analyzer.</p>"
},
"createdAt":{
"shape":"Timestamp",
"documentation":"<p>A timestamp for the time at which the analyzer was created.</p>"
@ -877,9 +885,9 @@
"shape":"Timestamp",
"documentation":"<p>The time at which the most recently analyzed resource was analyzed.</p>"
},
"name":{
"shape":"Name",
"documentation":"<p>The name of the analyzer.</p>"
"tags":{
"shape":"TagsMap",
"documentation":"<p>The tags added to the analyzer.</p>"
},
"status":{
"shape":"AnalyzerStatus",
@ -888,14 +896,6 @@
"statusReason":{
"shape":"StatusReason",
"documentation":"<p>The <code>statusReason</code> provides more details about the current status of the analyzer. For example, if the creation for the analyzer fails, a <code>Failed</code> status is returned. For an analyzer with organization as the type, this failure can be due to an issue with creating the service-linked roles required in the member accounts of the Amazon Web Services organization.</p>"
},
"tags":{
"shape":"TagsMap",
"documentation":"<p>The tags added to the analyzer.</p>"
},
"type":{
"shape":"Type",
"documentation":"<p>The type of analyzer, which corresponds to the zone of trust chosen for the analyzer.</p>"
}
},
"documentation":"<p>Contains information about the analyzer.</p>"
@ -915,14 +915,14 @@
"shape":"AnalyzerArn",
"documentation":"<p>The Amazon resource name (ARN) of the analyzer.</p>"
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule to apply.</p>"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule to apply.</p>"
}
},
"documentation":"<p>Retroactively applies an archive rule.</p>"
@ -930,23 +930,23 @@
"ArchiveRuleSummary":{
"type":"structure",
"required":[
"createdAt",
"filter",
"ruleName",
"filter",
"createdAt",
"updatedAt"
],
"members":{
"createdAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the archive rule was created.</p>"
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the archive rule.</p>"
},
"filter":{
"shape":"FilterCriteriaMap",
"documentation":"<p>A filter used to define the archive rule.</p>"
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the archive rule.</p>"
"createdAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the archive rule was created.</p>"
},
"updatedAt":{
"shape":"Timestamp",
@ -987,26 +987,26 @@
"CloudTrailDetails":{
"type":"structure",
"required":[
"trails",
"accessRole",
"startTime",
"trails"
"startTime"
],
"members":{
"trails":{
"shape":"TrailList",
"documentation":"<p>A <code>Trail</code> object that contains settings for a trail.</p>"
},
"accessRole":{
"shape":"RoleArn",
"documentation":"<p>The ARN of the service role that IAM Access Analyzer uses to access your CloudTrail trail and service last accessed information.</p>"
},
"endTime":{
"shape":"Timestamp",
"documentation":"<p>The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.</p>"
},
"startTime":{
"shape":"Timestamp",
"documentation":"<p>The start of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp before this time are not considered to generate a policy.</p>"
},
"trails":{
"shape":"TrailList",
"documentation":"<p>A <code>Trail</code> object that contains settings for a trail.</p>"
"endTime":{
"shape":"Timestamp",
"documentation":"<p>The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.</p>"
}
},
"documentation":"<p>Contains information about CloudTrail access.</p>"
@ -1014,22 +1014,22 @@
"CloudTrailProperties":{
"type":"structure",
"required":[
"endTime",
"trailProperties",
"startTime",
"trailProperties"
"endTime"
],
"members":{
"endTime":{
"shape":"Timestamp",
"documentation":"<p>The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.</p>"
"trailProperties":{
"shape":"TrailPropertiesList",
"documentation":"<p>A <code>TrailProperties</code> object that contains settings for trail properties.</p>"
},
"startTime":{
"shape":"Timestamp",
"documentation":"<p>The start of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp before this time are not considered to generate a policy.</p>"
},
"trailProperties":{
"shape":"TrailPropertiesList",
"documentation":"<p>A <code>TrailProperties</code> object that contains settings for trail properties.</p>"
"endTime":{
"shape":"Timestamp",
"documentation":"<p>The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.</p>"
}
},
"documentation":"<p>Contains information about CloudTrail access.</p>"
@ -1042,22 +1042,46 @@
"Configuration":{
"type":"structure",
"members":{
"ebsSnapshot":{
"shape":"EbsSnapshotConfiguration",
"documentation":"<p>The access control configuration is for an Amazon EBS volume snapshot.</p>"
},
"ecrRepository":{
"shape":"EcrRepositoryConfiguration",
"documentation":"<p>The access control configuration is for an Amazon ECR repository.</p>"
},
"iamRole":{
"shape":"IamRoleConfiguration",
"documentation":"<p>The access control configuration is for an IAM role. </p>"
},
"efsFileSystem":{
"shape":"EfsFileSystemConfiguration",
"documentation":"<p>The access control configuration is for an Amazon EFS file system.</p>"
},
"kmsKey":{
"shape":"KmsKeyConfiguration",
"documentation":"<p>The access control configuration is for a KMS key. </p>"
},
"s3Bucket":{
"shape":"S3BucketConfiguration",
"documentation":"<p>The access control configuration is for an Amazon S3 Bucket. </p>"
"rdsDbClusterSnapshot":{
"shape":"RdsDbClusterSnapshotConfiguration",
"documentation":"<p>The access control configuration is for an Amazon RDS DB cluster snapshot.</p>"
},
"rdsDbSnapshot":{
"shape":"RdsDbSnapshotConfiguration",
"documentation":"<p>The access control configuration is for an Amazon RDS DB snapshot.</p>"
},
"secretsManagerSecret":{
"shape":"SecretsManagerSecretConfiguration",
"documentation":"<p>The access control configuration is for a Secrets Manager secret.</p>"
},
"s3Bucket":{
"shape":"S3BucketConfiguration",
"documentation":"<p>The access control configuration is for an Amazon S3 Bucket. </p>"
},
"snsTopic":{
"shape":"SnsTopicConfiguration",
"documentation":"<p>The access control configuration is for an Amazon SNS topic</p>"
},
"sqsQueue":{
"shape":"SqsQueueConfiguration",
"documentation":"<p>The access control configuration is for an Amazon SQS queue. </p>"
@ -1108,14 +1132,14 @@
"shape":"AnalyzerArn",
"documentation":"<p>The <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources\">ARN of the account analyzer</a> used to generate the access preview. You can only create an access preview for analyzers with an <code>Account</code> type and <code>Active</code> status.</p>"
},
"configurations":{
"shape":"ConfigurationsMap",
"documentation":"<p>Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element.</p>"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
},
"configurations":{
"shape":"ConfigurationsMap",
"documentation":"<p>Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element.</p>"
}
}
},
@ -1140,22 +1164,22 @@
"shape":"Name",
"documentation":"<p>The name of the analyzer to create.</p>"
},
"type":{
"shape":"Type",
"documentation":"<p>The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>"
},
"archiveRules":{
"shape":"InlineArchiveRulesList",
"documentation":"<p>Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.</p>"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
},
"tags":{
"shape":"TagsMap",
"documentation":"<p>The tags to apply to the analyzer.</p>"
},
"type":{
"shape":"Type",
"documentation":"<p>The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>"
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
}
},
"documentation":"<p>Creates an analyzer.</p>"
@ -1174,8 +1198,8 @@
"type":"structure",
"required":[
"analyzerName",
"filter",
"ruleName"
"ruleName",
"filter"
],
"members":{
"analyzerName":{
@ -1184,18 +1208,18 @@
"location":"uri",
"locationName":"analyzerName"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule to create.</p>"
},
"filter":{
"shape":"FilterCriteriaMap",
"documentation":"<p>The criteria for the rule.</p>"
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule to create.</p>"
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
}
},
"documentation":"<p>Creates an archive rule.</p>"
@ -1203,24 +1227,24 @@
"Criterion":{
"type":"structure",
"members":{
"contains":{
"shape":"ValueList",
"documentation":"<p>A \"contains\" operator to match for the filter used to create the rule.</p>"
},
"eq":{
"shape":"ValueList",
"documentation":"<p>An \"equals\" operator to match for the filter used to create the rule.</p>"
},
"exists":{
"shape":"Boolean",
"documentation":"<p>An \"exists\" operator to match for the filter used to create the rule. </p>"
},
"neq":{
"shape":"ValueList",
"documentation":"<p>A \"not equals\" operator to match for the filter used to create the rule.</p>"
},
"contains":{
"shape":"ValueList",
"documentation":"<p>A \"contains\" operator to match for the filter used to create the rule.</p>"
},
"exists":{
"shape":"Boolean",
"documentation":"<p>An \"exists\" operator to match for the filter used to create the rule. </p>"
}
},
"documentation":"<p>The criteria to use in the filter that defines the archive rule.</p>"
"documentation":"<p>The criteria to use in the filter that defines the archive rule. For more information on available filter keys, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-filter-keys.html\">IAM Access Analyzer filter keys</a>.</p>"
},
"DeleteAnalyzerRequest":{
"type":"structure",
@ -1255,22 +1279,73 @@
"location":"uri",
"locationName":"analyzerName"
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule to delete.</p>",
"location":"uri",
"locationName":"ruleName"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true,
"location":"querystring",
"locationName":"clientToken"
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule to delete.</p>",
"location":"uri",
"locationName":"ruleName"
}
},
"documentation":"<p>Deletes an archive rule.</p>"
},
"EbsGroup":{"type":"string"},
"EbsGroupList":{
"type":"list",
"member":{"shape":"EbsGroup"}
},
"EbsSnapshotConfiguration":{
"type":"structure",
"members":{
"userIds":{
"shape":"EbsUserIdList",
"documentation":"<p>The IDs of the Amazon Web Services accounts that have access to the Amazon EBS volume snapshot.</p> <ul> <li> <p>If the configuration is for an existing Amazon EBS volume snapshot and you do not specify the <code>userIds</code>, then the access preview uses the existing shared <code>userIds</code> for the snapshot.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the <code>userIds</code>, then the access preview considers the snapshot without any <code>userIds</code>.</p> </li> <li> <p>To propose deletion of existing shared <code>accountIds</code>, you can specify an empty list for <code>userIds</code>.</p> </li> </ul>"
},
"groups":{
"shape":"EbsGroupList",
"documentation":"<p>The groups that have access to the Amazon EBS volume snapshot. If the value <code>all</code> is specified, then the Amazon EBS volume snapshot is public.</p> <ul> <li> <p>If the configuration is for an existing Amazon EBS volume snapshot and you do not specify the <code>groups</code>, then the access preview uses the existing shared <code>groups</code> for the snapshot.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the <code>groups</code>, then the access preview considers the snapshot without any <code>groups</code>.</p> </li> <li> <p>To propose deletion of existing shared <code>groups</code>, you can specify an empty list for <code>groups</code>.</p> </li> </ul>"
},
"kmsKeyId":{
"shape":"EbsSnapshotDataEncryptionKeyId",
"documentation":"<p>The KMS key identifier for an encrypted Amazon EBS volume snapshot. The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.</p> <ul> <li> <p>If the configuration is for an existing Amazon EBS volume snapshot and you do not specify the <code>kmsKeyId</code>, or you specify an empty string, then the access preview uses the existing <code>kmsKeyId</code> of the snapshot.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the <code>kmsKeyId</code>, the access preview considers the snapshot as unencrypted.</p> </li> </ul>"
}
},
"documentation":"<p>The proposed access control configuration for an Amazon EBS volume snapshot. You can propose a configuration for a new Amazon EBS volume snapshot or an Amazon EBS volume snapshot that you own by specifying the user IDs, groups, and optional KMS encryption key. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySnapshotAttribute.html\">ModifySnapshotAttribute</a>.</p>"
},
"EbsSnapshotDataEncryptionKeyId":{"type":"string"},
"EbsUserId":{"type":"string"},
"EbsUserIdList":{
"type":"list",
"member":{"shape":"EbsUserId"}
},
"EcrRepositoryConfiguration":{
"type":"structure",
"members":{
"repositoryPolicy":{
"shape":"EcrRepositoryPolicy",
"documentation":"<p>The JSON repository policy text to apply to the Amazon ECR repository. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html\">Private repository policy examples</a> in the <i>Amazon ECR User Guide</i>.</p>"
}
},
"documentation":"<p>The proposed access control configuration for an Amazon ECR repository. You can propose a configuration for a new Amazon ECR repository or an existing Amazon ECR repository that you own by specifying the Amazon ECR policy. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECR/latest/APIReference/API_Repository.html\">Repository</a>.</p> <ul> <li> <p>If the configuration is for an existing Amazon ECR repository and you do not specify the Amazon ECR policy, then the access preview uses the existing Amazon ECR policy for the repository.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the policy, then the access preview assumes an Amazon ECR repository without a policy.</p> </li> <li> <p>To propose deletion of an existing Amazon ECR repository policy, you can specify an empty string for the Amazon ECR policy.</p> </li> </ul>"
},
"EcrRepositoryPolicy":{"type":"string"},
"EfsFileSystemConfiguration":{
"type":"structure",
"members":{
"fileSystemPolicy":{
"shape":"EfsFileSystemPolicy",
"documentation":"<p>The JSON policy definition to apply to the Amazon EFS file system. For more information on the elements that make up a file system policy, see <a href=\"https://docs.aws.amazon.com/efs/latest/ug/access-control-overview.html#access-control-manage-access-intro-resource-policies\">Amazon EFS Resource-based policies</a>.</p>"
}
},
"documentation":"<p>The proposed access control configuration for an Amazon EFS file system. You can propose a configuration for a new Amazon EFS file system or an existing Amazon EFS file system that you own by specifying the Amazon EFS policy. For more information, see <a href=\"https://docs.aws.amazon.com/efs/latest/ug/using-fs.html\">Using file systems in Amazon EFS</a>.</p> <ul> <li> <p>If the configuration is for an existing Amazon EFS file system and you do not specify the Amazon EFS policy, then the access preview uses the existing Amazon EFS policy for the file system.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the policy, then the access preview assumes an Amazon EFS file system without a policy.</p> </li> <li> <p>To propose deletion of an existing Amazon EFS file system policy, you can specify an empty string for the Amazon EFS policy.</p> </li> </ul>"
},
"EfsFileSystemPolicy":{"type":"string"},
"FilterCriteriaMap":{
"type":"map",
"key":{"shape":"String"},
@ -1279,23 +1354,39 @@
"Finding":{
"type":"structure",
"required":[
"analyzedAt",
"id",
"resourceType",
"condition",
"createdAt",
"id",
"resourceOwnerAccount",
"resourceType",
"analyzedAt",
"updatedAt",
"status",
"updatedAt"
"resourceOwnerAccount"
],
"members":{
"id":{
"shape":"FindingId",
"documentation":"<p>The ID of the finding.</p>"
},
"principal":{
"shape":"PrincipalMap",
"documentation":"<p>The external principal that access to a resource within the zone of trust.</p>"
},
"action":{
"shape":"ActionList",
"documentation":"<p>The action in the analyzed policy statement that an external principal has permission to use.</p>"
},
"analyzedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the resource was analyzed.</p>"
"resource":{
"shape":"String",
"documentation":"<p>The resource that an external principal has access to.</p>"
},
"isPublic":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the policy that generated the finding allows public access to the resource.</p>"
},
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of the resource identified in the finding.</p>"
},
"condition":{
"shape":"ConditionKeyMap",
@ -1305,45 +1396,29 @@
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was generated.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>An error.</p>"
"analyzedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the resource was analyzed.</p>"
},
"id":{
"shape":"FindingId",
"documentation":"<p>The ID of the finding.</p>"
},
"isPublic":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the policy that generated the finding allows public access to the resource.</p>"
},
"principal":{
"shape":"PrincipalMap",
"documentation":"<p>The external principal that access to a resource within the zone of trust.</p>"
},
"resource":{
"shape":"String",
"documentation":"<p>The resource that an external principal has access to.</p>"
},
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource.</p>"
},
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of the resource identified in the finding.</p>"
},
"sources":{
"shape":"FindingSourceList",
"documentation":"<p>The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.</p>"
"updatedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was updated.</p>"
},
"status":{
"shape":"FindingStatus",
"documentation":"<p>The current status of the finding.</p>"
},
"updatedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was updated.</p>"
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>An error.</p>"
},
"sources":{
"shape":"FindingSourceList",
"documentation":"<p>The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.</p>"
}
},
"documentation":"<p>Contains information about a finding.</p>"
@ -1365,13 +1440,13 @@
"type":"structure",
"required":["type"],
"members":{
"detail":{
"shape":"FindingSourceDetail",
"documentation":"<p>Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.</p>"
},
"type":{
"shape":"FindingSourceType",
"documentation":"<p>Indicates the type of access that generated the finding.</p>"
},
"detail":{
"shape":"FindingSourceDetail",
"documentation":"<p>Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.</p>"
}
},
"documentation":"<p>The source of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.</p>"
@ -1382,6 +1457,10 @@
"accessPointArn":{
"shape":"String",
"documentation":"<p>The ARN of the access point that generated the finding. The ARN format depends on whether the ARN represents an access point or a multi-region access point.</p>"
},
"accessPointAccount":{
"shape":"String",
"documentation":"<p>The account of the cross-account access point that generated the finding.</p>"
}
},
"documentation":"<p>Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.</p>"
@ -1395,7 +1474,8 @@
"enum":[
"POLICY",
"BUCKET_ACL",
"S3_ACCESS_POINT"
"S3_ACCESS_POINT",
"S3_ACCESS_POINT_ACCOUNT"
]
},
"FindingStatus":{
@ -1416,23 +1496,39 @@
"FindingSummary":{
"type":"structure",
"required":[
"analyzedAt",
"id",
"resourceType",
"condition",
"createdAt",
"id",
"resourceOwnerAccount",
"resourceType",
"analyzedAt",
"updatedAt",
"status",
"updatedAt"
"resourceOwnerAccount"
],
"members":{
"id":{
"shape":"FindingId",
"documentation":"<p>The ID of the finding.</p>"
},
"principal":{
"shape":"PrincipalMap",
"documentation":"<p>The external principal that has access to a resource within the zone of trust.</p>"
},
"action":{
"shape":"ActionList",
"documentation":"<p>The action in the analyzed policy statement that an external principal has permission to use.</p>"
},
"analyzedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the resource-based policy that generated the finding was analyzed.</p>"
"resource":{
"shape":"String",
"documentation":"<p>The resource that the external principal has access to.</p>"
},
"isPublic":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the finding reports a resource that has a policy that allows public access.</p>"
},
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of the resource that the external principal has access to.</p>"
},
"condition":{
"shape":"ConditionKeyMap",
@ -1442,45 +1538,29 @@
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was created.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>The error that resulted in an Error finding.</p>"
"analyzedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the resource-based policy that generated the finding was analyzed.</p>"
},
"id":{
"shape":"FindingId",
"documentation":"<p>The ID of the finding.</p>"
},
"isPublic":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the finding reports a resource that has a policy that allows public access.</p>"
},
"principal":{
"shape":"PrincipalMap",
"documentation":"<p>The external principal that has access to a resource within the zone of trust.</p>"
},
"resource":{
"shape":"String",
"documentation":"<p>The resource that the external principal has access to.</p>"
},
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource.</p>"
},
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of the resource that the external principal has access to.</p>"
},
"sources":{
"shape":"FindingSourceList",
"documentation":"<p>The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.</p>"
"updatedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was most recently updated.</p>"
},
"status":{
"shape":"FindingStatus",
"documentation":"<p>The status of the finding.</p>"
},
"updatedAt":{
"shape":"Timestamp",
"documentation":"<p>The time at which the finding was most recently updated.</p>"
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource.</p>"
},
"error":{
"shape":"String",
"documentation":"<p>The error that resulted in an Error finding.</p>"
},
"sources":{
"shape":"FindingSourceList",
"documentation":"<p>The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.</p>"
}
},
"documentation":"<p>Contains information about a finding.</p>"
@ -1508,10 +1588,6 @@
"type":"structure",
"required":["principalArn"],
"members":{
"cloudTrailProperties":{
"shape":"CloudTrailProperties",
"documentation":"<p>Lists details about the <code>Trail</code> used to generated policy.</p>"
},
"isComplete":{
"shape":"Boolean",
"documentation":"<p>This value is set to <code>true</code> if the generated policy contains all possible actions for a service that IAM Access Analyzer identified from the CloudTrail trail that you specified, and <code>false</code> otherwise.</p>"
@ -1519,6 +1595,10 @@
"principalArn":{
"shape":"PrincipalArn",
"documentation":"<p>The ARN of the IAM entity (user or role) for which you are generating a policy.</p>"
},
"cloudTrailProperties":{
"shape":"CloudTrailProperties",
"documentation":"<p>Lists details about the <code>Trail</code> used to generated policy.</p>"
}
},
"documentation":"<p>Contains the generated policy details.</p>"
@ -1527,13 +1607,13 @@
"type":"structure",
"required":["properties"],
"members":{
"generatedPolicies":{
"shape":"GeneratedPolicyList",
"documentation":"<p>The text to use as the content for the new policy. The policy is created using the <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html\">CreatePolicy</a> action.</p>"
},
"properties":{
"shape":"GeneratedPolicyProperties",
"documentation":"<p>A <code>GeneratedPolicyProperties</code> object that contains properties of the generated policy.</p>"
},
"generatedPolicies":{
"shape":"GeneratedPolicyList",
"documentation":"<p>The text to use as the content for the new policy. The policy is created using the <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html\">CreatePolicy</a> action.</p>"
}
},
"documentation":"<p>Contains the text for the generated policy and its details.</p>"
@ -1691,6 +1771,12 @@
"type":"structure",
"required":["jobId"],
"members":{
"jobId":{
"shape":"JobId",
"documentation":"<p>The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.</p>",
"location":"uri",
"locationName":"jobId"
},
"includeResourcePlaceholders":{
"shape":"Boolean",
"documentation":"<p>The level of detail that you want to generate. You can specify whether to generate policies with placeholders for resource ARNs for actions that support resource level granularity in policies.</p> <p>For example, in the resource section of a policy, you can receive a placeholder such as <code>\"Resource\":\"arn:aws:s3:::${BucketName}\"</code> instead of <code>\"*\"</code>.</p>",
@ -1702,29 +1788,23 @@
"documentation":"<p>The level of detail that you want to generate. You can specify whether to generate service-level policies. </p> <p>IAM Access Analyzer uses <code>iam:servicelastaccessed</code> to identify services that have been used recently to create this service-level template.</p>",
"location":"querystring",
"locationName":"includeServiceLevelTemplate"
},
"jobId":{
"shape":"JobId",
"documentation":"<p>The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.</p>",
"location":"uri",
"locationName":"jobId"
}
}
},
"GetGeneratedPolicyResponse":{
"type":"structure",
"required":[
"generatedPolicyResult",
"jobDetails"
"jobDetails",
"generatedPolicyResult"
],
"members":{
"generatedPolicyResult":{
"shape":"GeneratedPolicyResult",
"documentation":"<p>A <code>GeneratedPolicyResult</code> object that contains the generated policies and associated details.</p>"
},
"jobDetails":{
"shape":"JobDetails",
"documentation":"<p>A <code>GeneratedPolicyDetails</code> object that contains details about the generated policy.</p>"
},
"generatedPolicyResult":{
"shape":"GeneratedPolicyResult",
"documentation":"<p>A <code>GeneratedPolicyResult</code> object that contains the generated policies and associated details.</p>"
}
}
},
@ -1743,17 +1823,17 @@
"InlineArchiveRule":{
"type":"structure",
"required":[
"filter",
"ruleName"
"ruleName",
"filter"
],
"members":{
"filter":{
"shape":"FilterCriteriaMap",
"documentation":"<p>The condition and values for a criterion.</p>"
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule.</p>"
},
"filter":{
"shape":"FilterCriteriaMap",
"documentation":"<p>The condition and values for a criterion.</p>"
}
},
"documentation":"<p>An criterion statement in an archive rule. Each archive rule may have multiple criteria.</p>"
@ -1796,10 +1876,22 @@
"type":"structure",
"required":[
"jobId",
"startedOn",
"status"
"status",
"startedOn"
],
"members":{
"jobId":{
"shape":"JobId",
"documentation":"<p>The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.</p>"
},
"status":{
"shape":"JobStatus",
"documentation":"<p>The status of the job request.</p>"
},
"startedOn":{
"shape":"Timestamp",
"documentation":"<p>A timestamp of when the job was started.</p>"
},
"completedOn":{
"shape":"Timestamp",
"documentation":"<p>A timestamp of when the job was completed.</p>"
@ -1807,18 +1899,6 @@
"jobError":{
"shape":"JobError",
"documentation":"<p>The job error for the policy generation request.</p>"
},
"jobId":{
"shape":"JobId",
"documentation":"<p>The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.</p>"
},
"startedOn":{
"shape":"Timestamp",
"documentation":"<p>A timestamp of when the job was started.</p>"
},
"status":{
"shape":"JobStatus",
"documentation":"<p>The status of the job request.</p>"
}
},
"documentation":"<p>Contains details about the policy generation request.</p>"
@ -1870,30 +1950,30 @@
"KmsGrantConfiguration":{
"type":"structure",
"required":[
"operations",
"granteePrincipal",
"issuingAccount",
"operations"
"issuingAccount"
],
"members":{
"constraints":{
"shape":"KmsGrantConstraints",
"documentation":"<p>Use this structure to propose allowing <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations\">cryptographic operations</a> in the grant only when the operation request includes the specified <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">encryption context</a>.</p>"
"operations":{
"shape":"KmsGrantOperationsList",
"documentation":"<p>A list of operations that the grant permits.</p>"
},
"granteePrincipal":{
"shape":"GranteePrincipal",
"documentation":"<p>The principal that is given permission to perform the operations that the grant permits.</p>"
},
"issuingAccount":{
"shape":"IssuingAccount",
"documentation":"<p> The Amazon Web Services account under which the grant was issued. The account is used to propose KMS grants issued by accounts other than the owner of the key.</p>"
},
"operations":{
"shape":"KmsGrantOperationsList",
"documentation":"<p>A list of operations that the grant permits.</p>"
},
"retiringPrincipal":{
"shape":"RetiringPrincipal",
"documentation":"<p>The principal that is given permission to retire the grant by using <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html\">RetireGrant</a> operation.</p>"
},
"constraints":{
"shape":"KmsGrantConstraints",
"documentation":"<p>Use this structure to propose allowing <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations\">cryptographic operations</a> in the grant only when the operation request includes the specified <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">encryption context</a>.</p>"
},
"issuingAccount":{
"shape":"IssuingAccount",
"documentation":"<p> The Amazon Web Services account under which the grant was issued. The account is used to propose KMS grants issued by accounts other than the owner of the key.</p>"
}
},
"documentation":"<p>A proposed grant configuration for a KMS key. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html\">CreateGrant</a>.</p>"
@ -1942,13 +2022,13 @@
"KmsKeyConfiguration":{
"type":"structure",
"members":{
"grants":{
"shape":"KmsGrantConfigurationsList",
"documentation":"<p>A list of proposed grant configurations for the KMS key. If the proposed grant configuration is for an existing key, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the key.</p>"
},
"keyPolicies":{
"shape":"KmsKeyPoliciesMap",
"documentation":"<p>Resource policy configuration for the KMS key. The only valid value for the name of the key policy is <code>default</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default\">Default key policy</a>.</p>"
},
"grants":{
"shape":"KmsGrantConfigurationsList",
"documentation":"<p>A list of proposed grant configurations for the KMS key. If the proposed grant configuration is for an existing key, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the key.</p>"
}
},
"documentation":"<p>Proposed access control configuration for a KMS key. You can propose a configuration for a new KMS key or an existing KMS key that you own by specifying the key policy and KMS grant configuration. If the configuration is for an existing key and you do not specify the key policy, the access preview uses the existing policy for the key. If the access preview is for a new resource and you do not specify the key policy, then the access preview uses the default key policy. The proposed key policy cannot be an empty string. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default\">Default key policy</a>. For more information about key policy limits, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/resource-limits.html\">Resource quotas</a>.</p> <p/>"
@ -1981,13 +2061,13 @@
"shape":"FilterCriteriaMap",
"documentation":"<p>Criteria to filter the returned findings.</p>"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>"
},
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>"
}
}
},
@ -2015,17 +2095,17 @@
"location":"querystring",
"locationName":"analyzerArn"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>",
"location":"querystring",
"locationName":"maxResults"
},
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>",
"location":"querystring",
"locationName":"nextToken"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>",
"location":"querystring",
"locationName":"maxResults"
}
}
},
@ -2051,17 +2131,17 @@
"shape":"AnalyzerArn",
"documentation":"<p>The <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources\">ARN of the analyzer</a> to retrieve a list of analyzed resources from.</p>"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>"
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of resource.</p>"
},
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>"
},
"resourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of resource.</p>"
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>"
}
},
"documentation":"<p>Retrieves a list of resources that have been analyzed.</p>"
@ -2084,18 +2164,18 @@
"ListAnalyzersRequest":{
"type":"structure",
"members":{
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>",
"location":"querystring",
"locationName":"maxResults"
},
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>",
"location":"querystring",
"locationName":"nextToken"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>",
"location":"querystring",
"locationName":"maxResults"
},
"type":{
"shape":"Type",
"documentation":"<p>The type of analyzer.</p>",
@ -2130,17 +2210,17 @@
"location":"uri",
"locationName":"analyzerName"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the request.</p>",
"location":"querystring",
"locationName":"maxResults"
},
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>",
"location":"querystring",
"locationName":"nextToken"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the request.</p>",
"location":"querystring",
"locationName":"maxResults"
}
},
"documentation":"<p>Retrieves a list of archive rules created for the specified analyzer.</p>"
@ -2172,17 +2252,17 @@
"shape":"FilterCriteriaMap",
"documentation":"<p>A filter to match for the findings to return.</p>"
},
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>"
"sort":{
"shape":"SortCriteria",
"documentation":"<p>The sort order for the findings returned.</p>"
},
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>"
},
"sort":{
"shape":"SortCriteria",
"documentation":"<p>The sort order for the findings returned.</p>"
"maxResults":{
"shape":"Integer",
"documentation":"<p>The maximum number of results to return in the response.</p>"
}
},
"documentation":"<p>Retrieves a list of findings generated by the specified analyzer.</p>"
@ -2205,6 +2285,12 @@
"ListPolicyGenerationsRequest":{
"type":"structure",
"members":{
"principalArn":{
"shape":"PrincipalArn",
"documentation":"<p>The ARN of the IAM entity (user or role) for which you are generating a policy. Use this with <code>ListGeneratedPolicies</code> to filter the results to only include results for a specific principal.</p>",
"location":"querystring",
"locationName":"principalArn"
},
"maxResults":{
"shape":"ListPolicyGenerationsRequestMaxResultsInteger",
"documentation":"<p>The maximum number of results to return in the response.</p>",
@ -2216,12 +2302,6 @@
"documentation":"<p>A token used for pagination of results returned.</p>",
"location":"querystring",
"locationName":"nextToken"
},
"principalArn":{
"shape":"PrincipalArn",
"documentation":"<p>The ARN of the IAM entity (user or role) for which you are generating a policy. Use this with <code>ListGeneratedPolicies</code> to filter the results to only include results for a specific principal.</p>",
"location":"querystring",
"locationName":"principalArn"
}
}
},
@ -2234,13 +2314,13 @@
"type":"structure",
"required":["policyGenerations"],
"members":{
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>"
},
"policyGenerations":{
"shape":"PolicyGenerationList",
"documentation":"<p>A <code>PolicyGeneration</code> object that contains details about the generated policy.</p>"
},
"nextToken":{
"shape":"Token",
"documentation":"<p>A token used for pagination of results returned.</p>"
}
}
},
@ -2313,11 +2393,11 @@
"NetworkOriginConfiguration":{
"type":"structure",
"members":{
"vpcConfiguration":{"shape":"VpcConfiguration"},
"internetConfiguration":{
"shape":"InternetConfiguration",
"documentation":"<p>The configuration for the Amazon S3 access point or multi-region access point with an <code>Internet</code> origin.</p>"
},
"vpcConfiguration":{"shape":"VpcConfiguration"}
}
},
"documentation":"<p>The proposed <code>InternetConfiguration</code> or <code>VpcConfiguration</code> to apply to the Amazon S3 access point. <code>VpcConfiguration</code> does not apply to multi-region access points. You can make the access point accessible from the internet, or you can specify that all requests made through that access point must originate from a specific virtual private cloud (VPC). You can specify only one type of network configuration. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html\">Creating access points</a>.</p>",
"union":true
@ -2362,14 +2442,10 @@
"required":[
"jobId",
"principalArn",
"startedOn",
"status"
"status",
"startedOn"
],
"members":{
"completedOn":{
"shape":"Timestamp",
"documentation":"<p>A timestamp of when the policy generation was completed.</p>"
},
"jobId":{
"shape":"JobId",
"documentation":"<p>The <code>JobId</code> that is returned by the <code>StartPolicyGeneration</code> operation. The <code>JobId</code> can be used with <code>GetGeneratedPolicy</code> to retrieve the generated policies or used with <code>CancelPolicyGeneration</code> to cancel the policy generation request.</p>"
@ -2378,13 +2454,17 @@
"shape":"PrincipalArn",
"documentation":"<p>The ARN of the IAM entity (user or role) for which you are generating a policy.</p>"
},
"status":{
"shape":"JobStatus",
"documentation":"<p>The status of the policy generation request.</p>"
},
"startedOn":{
"shape":"Timestamp",
"documentation":"<p>A timestamp of when the policy generation started.</p>"
},
"status":{
"shape":"JobStatus",
"documentation":"<p>The status of the policy generation request.</p>"
"completedOn":{
"shape":"Timestamp",
"documentation":"<p>A timestamp of when the policy generation was completed.</p>"
}
},
"documentation":"<p>Contains details about the policy generation status and properties.</p>"
@ -2416,19 +2496,19 @@
"Position":{
"type":"structure",
"required":[
"column",
"line",
"column",
"offset"
],
"members":{
"column":{
"shape":"Integer",
"documentation":"<p>The column of the position, starting from 0.</p>"
},
"line":{
"shape":"Integer",
"documentation":"<p>The line of the position, starting from 1.</p>"
},
"column":{
"shape":"Integer",
"documentation":"<p>The column of the position, starting from 0.</p>"
},
"offset":{
"shape":"Integer",
"documentation":"<p>The offset within the policy that corresponds to the position, starting from 0.</p>"
@ -2445,6 +2525,80 @@
"key":{"shape":"String"},
"value":{"shape":"String"}
},
"RdsDbClusterSnapshotAccountId":{"type":"string"},
"RdsDbClusterSnapshotAccountIdsList":{
"type":"list",
"member":{"shape":"RdsDbClusterSnapshotAccountId"}
},
"RdsDbClusterSnapshotAttributeName":{"type":"string"},
"RdsDbClusterSnapshotAttributeValue":{
"type":"structure",
"members":{
"accountIds":{
"shape":"RdsDbClusterSnapshotAccountIdsList",
"documentation":"<p>The Amazon Web Services account IDs that have access to the manual Amazon RDS DB cluster snapshot. If the value <code>all</code> is specified, then the Amazon RDS DB cluster snapshot is public and can be copied or restored by all Amazon Web Services accounts.</p> <ul> <li> <p>If the configuration is for an existing Amazon RDS DB cluster snapshot and you do not specify the <code>accountIds</code> in <code>RdsDbClusterSnapshotAttributeValue</code>, then the access preview uses the existing shared <code>accountIds</code> for the snapshot.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the specify the <code>accountIds</code> in <code>RdsDbClusterSnapshotAttributeValue</code>, then the access preview considers the snapshot without any attributes.</p> </li> <li> <p>To propose deletion of existing shared <code>accountIds</code>, you can specify an empty list for <code>accountIds</code> in the <code>RdsDbClusterSnapshotAttributeValue</code>.</p> </li> </ul>"
}
},
"documentation":"<p>The values for a manual Amazon RDS DB cluster snapshot attribute.</p>",
"union":true
},
"RdsDbClusterSnapshotAttributesMap":{
"type":"map",
"key":{"shape":"RdsDbClusterSnapshotAttributeName"},
"value":{"shape":"RdsDbClusterSnapshotAttributeValue"}
},
"RdsDbClusterSnapshotConfiguration":{
"type":"structure",
"members":{
"attributes":{
"shape":"RdsDbClusterSnapshotAttributesMap",
"documentation":"<p>The names and values of manual DB cluster snapshot attributes. Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB cluster snapshot. The only valid value for <code>AttributeName</code> for the attribute map is <code>restore</code> </p>"
},
"kmsKeyId":{
"shape":"RdsDbClusterSnapshotKmsKeyId",
"documentation":"<p>The KMS key identifier for an encrypted Amazon RDS DB cluster snapshot. The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.</p> <ul> <li> <p>If the configuration is for an existing Amazon RDS DB cluster snapshot and you do not specify the <code>kmsKeyId</code>, or you specify an empty string, then the access preview uses the existing <code>kmsKeyId</code> of the snapshot.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the specify the <code>kmsKeyId</code>, then the access preview considers the snapshot as unencrypted.</p> </li> </ul>"
}
},
"documentation":"<p>The proposed access control configuration for an Amazon RDS DB cluster snapshot. You can propose a configuration for a new Amazon RDS DB cluster snapshot or an Amazon RDS DB cluster snapshot that you own by specifying the <code>RdsDbClusterSnapshotAttributeValue</code> and optional KMS encryption key. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterSnapshotAttribute.html\">ModifyDBClusterSnapshotAttribute</a>.</p>"
},
"RdsDbClusterSnapshotKmsKeyId":{"type":"string"},
"RdsDbSnapshotAccountId":{"type":"string"},
"RdsDbSnapshotAccountIdsList":{
"type":"list",
"member":{"shape":"RdsDbSnapshotAccountId"}
},
"RdsDbSnapshotAttributeName":{"type":"string"},
"RdsDbSnapshotAttributeValue":{
"type":"structure",
"members":{
"accountIds":{
"shape":"RdsDbSnapshotAccountIdsList",
"documentation":"<p>The Amazon Web Services account IDs that have access to the manual Amazon RDS DB snapshot. If the value <code>all</code> is specified, then the Amazon RDS DB snapshot is public and can be copied or restored by all Amazon Web Services accounts.</p> <ul> <li> <p>If the configuration is for an existing Amazon RDS DB snapshot and you do not specify the <code>accountIds</code> in <code>RdsDbSnapshotAttributeValue</code>, then the access preview uses the existing shared <code>accountIds</code> for the snapshot.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the specify the <code>accountIds</code> in <code>RdsDbSnapshotAttributeValue</code>, then the access preview considers the snapshot without any attributes.</p> </li> <li> <p>To propose deletion of an existing shared <code>accountIds</code>, you can specify an empty list for <code>accountIds</code> in the <code>RdsDbSnapshotAttributeValue</code>.</p> </li> </ul>"
}
},
"documentation":"<p>The name and values of a manual Amazon RDS DB snapshot attribute. Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB snapshot.</p>",
"union":true
},
"RdsDbSnapshotAttributesMap":{
"type":"map",
"key":{"shape":"RdsDbSnapshotAttributeName"},
"value":{"shape":"RdsDbSnapshotAttributeValue"}
},
"RdsDbSnapshotConfiguration":{
"type":"structure",
"members":{
"attributes":{
"shape":"RdsDbSnapshotAttributesMap",
"documentation":"<p>The names and values of manual DB snapshot attributes. Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB snapshot. The only valid value for <code>attributeName</code> for the attribute map is restore.</p>"
},
"kmsKeyId":{
"shape":"RdsDbSnapshotKmsKeyId",
"documentation":"<p>The KMS key identifier for an encrypted Amazon RDS DB snapshot. The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.</p> <ul> <li> <p>If the configuration is for an existing Amazon RDS DB snapshot and you do not specify the <code>kmsKeyId</code>, or you specify an empty string, then the access preview uses the existing <code>kmsKeyId</code> of the snapshot.</p> </li> <li> <p>If the access preview is for a new resource and you do not specify the specify the <code>kmsKeyId</code>, then the access preview considers the snapshot as unencrypted.</p> </li> </ul>"
}
},
"documentation":"<p>The proposed access control configuration for an Amazon RDS DB snapshot. You can propose a configuration for a new Amazon RDS DB snapshot or an Amazon RDS DB snapshot that you own by specifying the <code>RdsDbSnapshotAttributeValue</code> and optional KMS encryption key. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshotAttribute.html\">ModifyDBSnapshotAttribute</a>.</p>"
},
"RdsDbSnapshotKmsKeyId":{"type":"string"},
"ReasonCode":{
"type":"string",
"enum":[
@ -2496,7 +2650,13 @@
"AWS::Lambda::Function",
"AWS::Lambda::LayerVersion",
"AWS::KMS::Key",
"AWS::SecretsManager::Secret"
"AWS::SecretsManager::Secret",
"AWS::EFS::FileSystem",
"AWS::EC2::Snapshot",
"AWS::ECR::Repository",
"AWS::RDS::DBSnapshot",
"AWS::RDS::DBClusterSnapshot",
"AWS::SNS::Topic"
]
},
"RetiringPrincipal":{"type":"string"},
@ -2511,16 +2671,16 @@
"shape":"AccessPointPolicy",
"documentation":"<p>The access point or multi-region access point policy.</p>"
},
"networkOrigin":{
"shape":"NetworkOriginConfiguration",
"documentation":"<p>The proposed <code>Internet</code> and <code>VpcConfiguration</code> to apply to this Amazon S3 access point. <code>VpcConfiguration</code> does not apply to multi-region access points. If the access preview is for a new resource and neither is specified, the access preview uses <code>Internet</code> for the network origin. If the access preview is for an existing resource and neither is specified, the access preview uses the exiting network origin.</p>"
},
"publicAccessBlock":{
"shape":"S3PublicAccessBlockConfiguration",
"documentation":"<p>The proposed <code>S3PublicAccessBlock</code> configuration to apply to this Amazon S3 access point or multi-region access point.</p>"
},
"networkOrigin":{
"shape":"NetworkOriginConfiguration",
"documentation":"<p>The proposed <code>Internet</code> and <code>VpcConfiguration</code> to apply to this Amazon S3 access point. <code>VpcConfiguration</code> does not apply to multi-region access points. If the access preview is for a new resource and neither is specified, the access preview uses <code>Internet</code> for the network origin. If the access preview is for an existing resource and neither is specified, the access preview uses the exiting network origin.</p>"
}
},
"documentation":"<p>The configuration for an Amazon S3 access point or multi-region access point for the bucket. You can propose up to 10 access points or multi-region access points per bucket. If the proposed Amazon S3 access point configuration is for an existing bucket, the access preview uses the proposed access point configuration in place of the existing access points. To propose an access point without a policy, you can provide an empty string as the access point policy. For more information, see <a href=\"https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html\">Creating access points</a>. For more information about access point policy limits, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points-restrictions-limitations.html\">Access points restrictions and limitations</a>.</p>"
"documentation":"<p>The configuration for an Amazon S3 access point or multi-region access point for the bucket. You can propose up to 10 access points or multi-region access points per bucket. If the proposed Amazon S3 access point configuration is for an existing bucket, the access preview uses the proposed access point configuration in place of the existing access points. To propose an access point without a policy, you can provide an empty string as the access point policy. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/creating-access-points.html\">Creating access points</a>. For more information about access point policy limits, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points-restrictions-limitations.html\">Access points restrictions and limitations</a>.</p>"
},
"S3AccessPointConfigurationsMap":{
"type":"map",
@ -2530,17 +2690,17 @@
"S3BucketAclGrantConfiguration":{
"type":"structure",
"required":[
"grantee",
"permission"
"permission",
"grantee"
],
"members":{
"grantee":{
"shape":"AclGrantee",
"documentation":"<p>The grantee to whom youre assigning access rights.</p>"
},
"permission":{
"shape":"AclPermission",
"documentation":"<p>The permissions being granted.</p>"
},
"grantee":{
"shape":"AclGrantee",
"documentation":"<p>The grantee to whom youre assigning access rights.</p>"
}
},
"documentation":"<p>A proposed access control list grant configuration for an Amazon S3 bucket. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#setting-acls\">How to Specify an ACL</a>.</p>"
@ -2552,21 +2712,21 @@
"S3BucketConfiguration":{
"type":"structure",
"members":{
"accessPoints":{
"shape":"S3AccessPointConfigurationsMap",
"documentation":"<p>The configuration of Amazon S3 access points or multi-region access points for the bucket. You can propose up to 10 new access points per bucket.</p>"
"bucketPolicy":{
"shape":"S3BucketPolicy",
"documentation":"<p>The proposed bucket policy for the Amazon S3 bucket.</p>"
},
"bucketAclGrants":{
"shape":"S3BucketAclGrantConfigurationsList",
"documentation":"<p>The proposed list of ACL grants for the Amazon S3 bucket. You can propose up to 100 ACL grants per bucket. If the proposed grant configuration is for an existing bucket, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the bucket.</p>"
},
"bucketPolicy":{
"shape":"S3BucketPolicy",
"documentation":"<p>The proposed bucket policy for the Amazon S3 bucket.</p>"
},
"bucketPublicAccessBlock":{
"shape":"S3PublicAccessBlockConfiguration",
"documentation":"<p>The proposed block public access configuration for the Amazon S3 bucket.</p>"
},
"accessPoints":{
"shape":"S3AccessPointConfigurationsMap",
"documentation":"<p>The configuration of Amazon S3 access points or multi-region access points for the bucket. You can propose up to 10 new access points per bucket.</p>"
}
},
"documentation":"<p>Proposed access control configuration for an Amazon S3 bucket. You can propose a configuration for a new Amazon S3 bucket or an existing Amazon S3 bucket that you own by specifying the Amazon S3 bucket policy, bucket ACLs, bucket BPA settings, Amazon S3 access points, and multi-region access points attached to the bucket. If the configuration is for an existing Amazon S3 bucket and you do not specify the Amazon S3 bucket policy, the access preview uses the existing policy attached to the bucket. If the access preview is for a new resource and you do not specify the Amazon S3 bucket policy, the access preview assumes a bucket without a policy. To propose deletion of an existing bucket policy, you can specify an empty string. For more information about bucket policy limits, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html\">Bucket Policy Examples</a>.</p>"
@ -2635,6 +2795,21 @@
"type":"list",
"member":{"shape":"String"}
},
"SnsTopicConfiguration":{
"type":"structure",
"members":{
"topicPolicy":{
"shape":"SnsTopicPolicy",
"documentation":"<p>The JSON policy text that defines who can access an Amazon SNS topic. For more information, see <a href=\"https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html\">Example cases for Amazon SNS access control</a> in the <i>Amazon SNS Developer Guide</i>.</p>"
}
},
"documentation":"<p>The proposed access control configuration for an Amazon SNS topic. You can propose a configuration for a new Amazon SNS topic or an existing Amazon SNS topic that you own by specifying the policy. If the configuration is for an existing Amazon SNS topic and you do not specify the Amazon SNS policy, then the access preview uses the existing Amazon SNS policy for the topic. If the access preview is for a new resource and you do not specify the policy, then the access preview assumes an Amazon SNS topic without a policy. To propose deletion of an existing Amazon SNS topic policy, you can specify an empty string for the Amazon SNS policy. For more information, see <a href=\"https://docs.aws.amazon.com/sns/latest/api/API_Topic.html\">Topic</a>.</p>"
},
"SnsTopicPolicy":{
"type":"string",
"max":30720,
"min":0
},
"SortCriteria":{
"type":"structure",
"members":{
@ -2652,17 +2827,17 @@
"Span":{
"type":"structure",
"required":[
"end",
"start"
"start",
"end"
],
"members":{
"end":{
"shape":"Position",
"documentation":"<p>The end position of the span (exclusive).</p>"
},
"start":{
"shape":"Position",
"documentation":"<p>The start position of the span (inclusive).</p>"
},
"end":{
"shape":"Position",
"documentation":"<p>The end position of the span (exclusive).</p>"
}
},
"documentation":"<p>A span in a policy. The span consists of a start position (inclusive) and end position (exclusive).</p>"
@ -2682,18 +2857,18 @@
"type":"structure",
"required":["policyGenerationDetails"],
"members":{
"clientToken":{
"shape":"String",
"documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
"idempotencyToken":true
"policyGenerationDetails":{
"shape":"PolicyGenerationDetails",
"documentation":"<p>Contains the ARN of the IAM entity (user or role) for which you are generating a policy.</p>"
},
"cloudTrailDetails":{
"shape":"CloudTrailDetails",
"documentation":"<p>A <code>CloudTrailDetails</code> object that contains details about a <code>Trail</code> that you want to analyze to generate policies.</p>"
},
"policyGenerationDetails":{
"shape":"PolicyGenerationDetails",
"documentation":"<p>Contains the ARN of the IAM entity (user or role) for which you are generating a policy.</p>"
"clientToken":{
"shape":"String",
"documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
"idempotencyToken":true
}
}
},
@ -2721,6 +2896,10 @@
"resourceArn":{
"shape":"ResourceArn",
"documentation":"<p>The ARN of the resource to scan.</p>"
},
"resourceOwnerAccount":{
"shape":"String",
"documentation":"<p>The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning account is the account in which the resource was created.</p>"
}
},
"documentation":"<p>Starts a scan of the policies applied to the specified resource.</p>"
@ -2740,17 +2919,17 @@
"Substring":{
"type":"structure",
"required":[
"length",
"start"
"start",
"length"
],
"members":{
"length":{
"shape":"Integer",
"documentation":"<p>The length of the substring.</p>"
},
"start":{
"shape":"Integer",
"documentation":"<p>The start index of the substring, starting from 0.</p>"
},
"length":{
"shape":"Integer",
"documentation":"<p>The length of the substring.</p>"
}
},
"documentation":"<p>A reference to a substring of a literal string in a JSON document.</p>"
@ -2819,10 +2998,6 @@
"type":"structure",
"required":["cloudTrailArn"],
"members":{
"allRegions":{
"shape":"Boolean",
"documentation":"<p>Possible values are <code>true</code> or <code>false</code>. If set to <code>true</code>, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.</p>"
},
"cloudTrailArn":{
"shape":"CloudTrailArn",
"documentation":"<p>Specifies the ARN of the trail. The format of a trail ARN is <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code>.</p>"
@ -2830,6 +3005,10 @@
"regions":{
"shape":"RegionList",
"documentation":"<p>A list of regions to get CloudTrail data from and analyze to generate a policy.</p>"
},
"allRegions":{
"shape":"Boolean",
"documentation":"<p>Possible values are <code>true</code> or <code>false</code>. If set to <code>true</code>, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.</p>"
}
},
"documentation":"<p>Contains details about the CloudTrail trail being analyzed to generate a policy.</p>"
@ -2842,10 +3021,6 @@
"type":"structure",
"required":["cloudTrailArn"],
"members":{
"allRegions":{
"shape":"Boolean",
"documentation":"<p>Possible values are <code>true</code> or <code>false</code>. If set to <code>true</code>, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.</p>"
},
"cloudTrailArn":{
"shape":"CloudTrailArn",
"documentation":"<p>Specifies the ARN of the trail. The format of a trail ARN is <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code>.</p>"
@ -2853,6 +3028,10 @@
"regions":{
"shape":"RegionList",
"documentation":"<p>A list of regions to get CloudTrail data from and analyze to generate a policy.</p>"
},
"allRegions":{
"shape":"Boolean",
"documentation":"<p>Possible values are <code>true</code> or <code>false</code>. If set to <code>true</code>, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.</p>"
}
},
"documentation":"<p>Contains details about the CloudTrail trail being analyzed to generate a policy.</p>"
@ -2900,8 +3079,8 @@
"type":"structure",
"required":[
"analyzerName",
"filter",
"ruleName"
"ruleName",
"filter"
],
"members":{
"analyzerName":{
@ -2910,20 +3089,20 @@
"location":"uri",
"locationName":"analyzerName"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
},
"filter":{
"shape":"FilterCriteriaMap",
"documentation":"<p>A filter to match for the rules to update. Only rules that match the filter are updated.</p>"
},
"ruleName":{
"shape":"Name",
"documentation":"<p>The name of the rule to update.</p>",
"location":"uri",
"locationName":"ruleName"
},
"filter":{
"shape":"FilterCriteriaMap",
"documentation":"<p>A filter to match for the rules to update. Only rules that match the filter are updated.</p>"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
}
},
"documentation":"<p>Updates the specified archive rule.</p>"
@ -2939,10 +3118,9 @@
"shape":"AnalyzerArn",
"documentation":"<p>The <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources\">ARN of the analyzer</a> that generated the findings to update.</p>"
},
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
"status":{
"shape":"FindingStatusUpdate",
"documentation":"<p>The state represents the action to take to update the finding Status. Use <code>ARCHIVE</code> to change an Active finding to an Archived finding. Use <code>ACTIVE</code> to change an Archived finding to an Active finding.</p>"
},
"ids":{
"shape":"FindingIdList",
@ -2952,9 +3130,10 @@
"shape":"ResourceArn",
"documentation":"<p>The ARN of the resource identified in the finding.</p>"
},
"status":{
"shape":"FindingStatusUpdate",
"documentation":"<p>The state represents the action to take to update the finding Status. Use <code>ARCHIVE</code> to change an Active finding to an Archived finding. Use <code>ACTIVE</code> to change an Archived finding to an Active finding.</p>"
"clientToken":{
"shape":"String",
"documentation":"<p>A client token.</p>",
"idempotencyToken":true
}
},
"documentation":"<p>Updates findings with the new values provided in the request.</p>"
@ -3048,7 +3227,8 @@
"AWS::S3::Bucket",
"AWS::S3::AccessPoint",
"AWS::S3::MultiRegionAccessPoint",
"AWS::S3ObjectLambda::AccessPoint"
"AWS::S3ObjectLambda::AccessPoint",
"AWS::IAM::AssumeRolePolicyDocument"
]
},
"ValidatePolicyResponse":{
@ -3072,14 +3252,14 @@
"reason"
],
"members":{
"fieldList":{
"shape":"ValidationExceptionFieldList",
"documentation":"<p>A list of fields that didn't validate.</p>"
},
"message":{"shape":"String"},
"reason":{
"shape":"ValidationExceptionReason",
"documentation":"<p>The reason for the exception.</p>"
},
"fieldList":{
"shape":"ValidationExceptionFieldList",
"documentation":"<p>A list of fields that didn't validate.</p>"
}
},
"documentation":"<p>Validation exception error.</p>",
@ -3092,17 +3272,17 @@
"ValidationExceptionField":{
"type":"structure",
"required":[
"message",
"name"
"name",
"message"
],
"members":{
"message":{
"shape":"String",
"documentation":"<p>A message about the validation exception.</p>"
},
"name":{
"shape":"String",
"documentation":"<p>The name of the validation exception.</p>"
},
"message":{
"shape":"String",
"documentation":"<p>A message about the validation exception.</p>"
}
},
"documentation":"<p>Contains information about a validation exception.</p>"

View file

@ -0,0 +1,861 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
},
"aws"
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account-fips.{Region}.api.aws",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "us-east-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account-fips.{Region}.amazonaws.com",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "us-east-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account.{Region}.api.aws",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "us-east-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://account.us-east-1.amazonaws.com",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "us-east-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
},
"aws-cn"
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account-fips.{Region}.api.amazonwebservices.com.cn",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "cn-northwest-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account-fips.{Region}.amazonaws.com.cn",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "cn-northwest-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account.{Region}.api.amazonwebservices.com.cn",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "cn-northwest-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://account.cn-northwest-1.amazonaws.com.cn",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "cn-northwest-1"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://account.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"ref": "Region"
},
"aws-global"
]
}
],
"endpoint": {
"url": "https://account.us-east-1.amazonaws.com",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "us-east-1"
}
]
},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"ref": "Region"
},
"aws-cn-global"
]
}
],
"endpoint": {
"url": "https://account.cn-northwest-1.amazonaws.com.cn",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingName": "account",
"signingRegion": "cn-northwest-1"
}
]
},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [],
"endpoint": {
"url": "https://account.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -27,7 +27,7 @@
{"shape":"TooManyRequestsException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Deletes the specified alternate contact from an Amazon Web Services account.</p> <p>For complete details about how to use the alternate contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Access or updating the alternate contacts</a>.</p>",
"documentation":"<p>Deletes the specified alternate contact from an Amazon Web Services account.</p> <p>For complete details about how to use the alternate contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Access or updating the alternate contacts</a>.</p> <note> <p>Before you can update the alternate contact information for an Amazon Web Services account that is managed by Organizations, you must first enable integration between Amazon Web Services Account Management and Organizations. For more information, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/using-orgs-trusted-access.html\">Enabling trusted access for Amazon Web Services Account Management</a>.</p> </note>",
"idempotent":true
},
"GetAlternateContact":{
@ -46,7 +46,25 @@
{"shape":"TooManyRequestsException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Retrieves the specified alternate contact attached to an Amazon Web Services account.</p> <p>For complete details about how to use the alternate contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Access or updating the alternate contacts</a>.</p>"
"documentation":"<p>Retrieves the specified alternate contact attached to an Amazon Web Services account.</p> <p>For complete details about how to use the alternate contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Access or updating the alternate contacts</a>.</p> <note> <p>Before you can update the alternate contact information for an Amazon Web Services account that is managed by Organizations, you must first enable integration between Amazon Web Services Account Management and Organizations. For more information, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/using-orgs-trusted-access.html\">Enabling trusted access for Amazon Web Services Account Management</a>.</p> </note>"
},
"GetContactInformation":{
"name":"GetContactInformation",
"http":{
"method":"POST",
"requestUri":"/getContactInformation",
"responseCode":200
},
"input":{"shape":"GetContactInformationRequest"},
"output":{"shape":"GetContactInformationResponse"},
"errors":[
{"shape":"ResourceNotFoundException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"},
{"shape":"TooManyRequestsException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Retrieves the primary contact information of an Amazon Web Services account.</p> <p>For complete details about how to use the primary contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Update the primary and alternate contact information</a>.</p>"
},
"PutAlternateContact":{
"name":"PutAlternateContact",
@ -62,7 +80,24 @@
{"shape":"TooManyRequestsException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Modifies the specified alternate contact attached to an Amazon Web Services account.</p> <p>For complete details about how to use the alternate contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Access or updating the alternate contacts</a>.</p>",
"documentation":"<p>Modifies the specified alternate contact attached to an Amazon Web Services account.</p> <p>For complete details about how to use the alternate contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Access or updating the alternate contacts</a>.</p> <note> <p>Before you can update the alternate contact information for an Amazon Web Services account that is managed by Organizations, you must first enable integration between Amazon Web Services Account Management and Organizations. For more information, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/using-orgs-trusted-access.html\">Enabling trusted access for Amazon Web Services Account Management</a>.</p> </note>",
"idempotent":true
},
"PutContactInformation":{
"name":"PutContactInformation",
"http":{
"method":"POST",
"requestUri":"/putContactInformation",
"responseCode":200
},
"input":{"shape":"PutContactInformationRequest"},
"errors":[
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"},
{"shape":"TooManyRequestsException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Updates the primary contact information of an Amazon Web Services account.</p> <p>For complete details about how to use the primary contact operations, see <a href=\"https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact.html\">Update the primary and alternate contact information</a>.</p>",
"idempotent":true
}
},
@ -84,6 +119,12 @@
"type":"string",
"pattern":"^\\d{12}$"
},
"AddressLine":{
"type":"string",
"max":60,
"min":1,
"sensitive":true
},
"AlternateContact":{
"type":"structure",
"members":{
@ -118,6 +159,93 @@
"SECURITY"
]
},
"City":{
"type":"string",
"max":50,
"min":1,
"sensitive":true
},
"CompanyName":{
"type":"string",
"max":50,
"min":1,
"sensitive":true
},
"ContactInformation":{
"type":"structure",
"required":[
"AddressLine1",
"City",
"CountryCode",
"FullName",
"PhoneNumber",
"PostalCode"
],
"members":{
"AddressLine1":{
"shape":"AddressLine",
"documentation":"<p>The first line of the primary contact address.</p>"
},
"AddressLine2":{
"shape":"AddressLine",
"documentation":"<p>The second line of the primary contact address, if any.</p>"
},
"AddressLine3":{
"shape":"AddressLine",
"documentation":"<p>The third line of the primary contact address, if any.</p>"
},
"City":{
"shape":"City",
"documentation":"<p>The city of the primary contact address.</p>"
},
"CompanyName":{
"shape":"CompanyName",
"documentation":"<p>The name of the company associated with the primary contact information, if any.</p>"
},
"CountryCode":{
"shape":"CountryCode",
"documentation":"<p>The ISO-3166 two-letter country code for the primary contact address.</p>"
},
"DistrictOrCounty":{
"shape":"DistrictOrCounty",
"documentation":"<p>The district or county of the primary contact address, if any.</p>"
},
"FullName":{
"shape":"FullName",
"documentation":"<p>The full name of the primary contact address.</p>"
},
"PhoneNumber":{
"shape":"ContactInformationPhoneNumber",
"documentation":"<p>The phone number of the primary contact information. The number will be validated and, in some countries, checked for activation.</p>"
},
"PostalCode":{
"shape":"PostalCode",
"documentation":"<p>The postal code of the primary contact address.</p>"
},
"StateOrRegion":{
"shape":"StateOrRegion",
"documentation":"<p>The state or region of the primary contact address. This field is required in selected countries.</p>"
},
"WebsiteUrl":{
"shape":"WebsiteUrl",
"documentation":"<p>The URL of the website associated with the primary contact information, if any.</p>"
}
},
"documentation":"<p>Contains the details of the primary contact information associated with an Amazon Web Services account.</p>"
},
"ContactInformationPhoneNumber":{
"type":"string",
"max":20,
"min":1,
"pattern":"^[+][\\s0-9()-]+$",
"sensitive":true
},
"CountryCode":{
"type":"string",
"max":2,
"min":2,
"sensitive":true
},
"DeleteAlternateContactRequest":{
"type":"structure",
"required":["AlternateContactType"],
@ -132,11 +260,23 @@
}
}
},
"DistrictOrCounty":{
"type":"string",
"max":50,
"min":1,
"sensitive":true
},
"EmailAddress":{
"type":"string",
"max":64,
"min":1,
"pattern":"[\\w+=,.-]+@[\\w.-]+\\.[\\w]+",
"pattern":"^[\\s]*[\\w+=.#!&-]+@[\\w.-]+\\.[\\w]+[\\s]*$",
"sensitive":true
},
"FullName":{
"type":"string",
"max":50,
"min":1,
"sensitive":true
},
"GetAlternateContactRequest":{
@ -162,6 +302,24 @@
}
}
},
"GetContactInformationRequest":{
"type":"structure",
"members":{
"AccountId":{
"shape":"AccountId",
"documentation":"<p>Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account\">organization's management account</a> or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html\">all features enabled</a>, and the organization must have <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html\">trusted access</a> enabled for the Account Management service, and optionally a <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html\">delegated admin</a> account assigned.</p> <note> <p>The management account can't specify its own <code>AccountId</code>. It must call the operation in standalone context by not including the <code>AccountId</code> parameter.</p> </note> <p>To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.</p>"
}
}
},
"GetContactInformationResponse":{
"type":"structure",
"members":{
"ContactInformation":{
"shape":"ContactInformation",
"documentation":"<p>Contains the details of the primary contact information associated with an Amazon Web Services account.</p>"
}
}
},
"InternalServerException":{
"type":"structure",
"required":["message"],
@ -187,6 +345,12 @@
"pattern":"^[\\s0-9()+-]+$",
"sensitive":true
},
"PostalCode":{
"type":"string",
"max":20,
"min":1,
"sensitive":true
},
"PutAlternateContactRequest":{
"type":"structure",
"required":[
@ -223,6 +387,20 @@
}
}
},
"PutContactInformationRequest":{
"type":"structure",
"required":["ContactInformation"],
"members":{
"AccountId":{
"shape":"AccountId",
"documentation":"<p>Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#account\">organization's management account</a> or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html\">all features enabled</a>, and the organization must have <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-trusted-access.html\">trusted access</a> enabled for the Account Management service, and optionally a <a href=\"https://docs.aws.amazon.com/organizations/latest/userguide/using-orgs-delegated-admin.html\">delegated admin</a> account assigned.</p> <note> <p>The management account can't specify its own <code>AccountId</code>. It must call the operation in standalone context by not including the <code>AccountId</code> parameter.</p> </note> <p>To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.</p>"
},
"ContactInformation":{
"shape":"ContactInformation",
"documentation":"<p>Contains the details of the primary contact information associated with an Amazon Web Services account.</p>"
}
}
},
"ResourceNotFoundException":{
"type":"structure",
"required":["message"],
@ -236,6 +414,12 @@
},
"exception":true
},
"StateOrRegion":{
"type":"string",
"max":50,
"min":1,
"sensitive":true
},
"String":{"type":"string"},
"Title":{
"type":"string",
@ -269,6 +453,12 @@
"senderFault":true
},
"exception":true
},
"WebsiteUrl":{
"type":"string",
"max":256,
"min":1,
"sensitive":true
}
},
"documentation":"<p>Operations for Amazon Web Services Account Management</p>"

View file

@ -0,0 +1,340 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://acm-pca-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
"aws-us-gov",
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
}
]
}
],
"endpoint": {
"url": "https://acm-pca.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [],
"endpoint": {
"url": "https://acm-pca-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://acm-pca.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://acm-pca.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -1,5 +1,5 @@
{
"version":"1.0",
"examples":{
"version": "1.0",
"examples": {
}
}

View file

@ -643,6 +643,10 @@
"KeyStorageSecurityStandard":{
"shape":"KeyStorageSecurityStandard",
"documentation":"<p>Defines a cryptographic key management compliance standard used for handling CA keys. </p> <p>Default: FIPS_140_2_LEVEL_3_OR_HIGHER</p> <p>Note: Amazon Web Services Region ap-northeast-3 supports only FIPS_140_2_LEVEL_2_OR_HIGHER. You must explicitly specify this parameter and value when creating a CA in that Region. Specifying a different value (or no value) results in an <code>InvalidArgsException</code> with the message \"A certificate authority cannot be created in this region with the specified security standard.\"</p>"
},
"UsageMode":{
"shape":"CertificateAuthorityUsageMode",
"documentation":"<p>Specifies whether the CA issues general-purpose certificates that typically require a revocation mechanism, or short-lived certificates that may optionally omit revocation because they expire quickly. Short-lived certificate validity is limited to seven days.</p> <p>The default value is GENERAL_PURPOSE.</p>"
}
},
"documentation":"<p>Contains information about your private certificate authority (CA). Your private CA can issue and revoke X.509 digital certificates. Digital certificates verify that the entity named in the certificate <b>Subject</b> field owns or controls the public key contained in the <b>Subject Public Key Info</b> field. Call the <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html\">CreateCertificateAuthority</a> action to create your private CA. You must then call the <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificateAuthorityCertificate.html\">GetCertificateAuthorityCertificate</a> action to retrieve a private CA certificate signing request (CSR). Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA certificate. Call the <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html\">ImportCertificateAuthorityCertificate</a> action to import the signed certificate into Certificate Manager (ACM). </p>"
@ -693,6 +697,13 @@
"SUBORDINATE"
]
},
"CertificateAuthorityUsageMode":{
"type":"string",
"enum":[
"GENERAL_PURPOSE",
"SHORT_LIVED_CERTIFICATE"
]
},
"CertificateBody":{"type":"string"},
"CertificateBodyBlob":{
"type":"blob",
@ -793,11 +804,15 @@
},
"KeyStorageSecurityStandard":{
"shape":"KeyStorageSecurityStandard",
"documentation":"<p>Specifies a cryptographic key management compliance standard used for handling CA keys.</p> <p>Default: FIPS_140_2_LEVEL_3_OR_HIGHER</p> <p>Note: <code>FIPS_140_2_LEVEL_3_OR_HIGHER</code> is not supported in Region ap-northeast-3. When creating a CA in the ap-northeast-3, you must provide <code>FIPS_140_2_LEVEL_2_OR_HIGHER</code> as the argument for <code>KeyStorageSecurityStandard</code>. Failure to do this results in an <code>InvalidArgsException</code> with the message, \"A certificate authority cannot be created in this region with the specified security standard.\"</p>"
"documentation":"<p>Specifies a cryptographic key management compliance standard used for handling CA keys.</p> <p>Default: FIPS_140_2_LEVEL_3_OR_HIGHER</p> <p> <i>Note:</i> <code>FIPS_140_2_LEVEL_3_OR_HIGHER</code> is not supported in the following Regions:</p> <ul> <li> <p>ap-northeast-3</p> </li> <li> <p>ap-southeast-3</p> </li> </ul> <p>When creating a CA in these Regions, you must provide <code>FIPS_140_2_LEVEL_2_OR_HIGHER</code> as the argument for <code>KeyStorageSecurityStandard</code>. Failure to do this results in an <code>InvalidArgsException</code> with the message, \"A certificate authority cannot be created in this region with the specified security standard.\"</p>"
},
"Tags":{
"shape":"TagList",
"documentation":"<p>Key-value pairs that will be attached to the new private CA. You can associate up to 50 tags with a private CA. For information using tags with IAM to manage permissions, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html\">Controlling Access Using IAM Tags</a>.</p>"
},
"UsageMode":{
"shape":"CertificateAuthorityUsageMode",
"documentation":"<p>Specifies whether the CA issues general-purpose certificates that typically require a revocation mechanism, or short-lived certificates that may optionally omit revocation because they expire quickly. Short-lived certificate validity is limited to seven days.</p> <p>The default value is GENERAL_PURPOSE.</p>"
}
}
},
@ -863,7 +878,7 @@
"documentation":"<p>Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access. </p> <p>If no value is specified, the default is <code>PUBLIC_READ</code>.</p> <p> <i>Note:</i> This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as <code>BUCKET_OWNER_FULL_CONTROL</code>, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either <code>BUCKET_OWNER_FULL_CONTROL</code> or <code>PUBLIC_READ</code> as the value.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa\">Blocking public access to the S3 bucket</a>.</p>"
}
},
"documentation":"<p>Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the <b>Enabled</b> parameter to <code>true</code>. Your private CA writes CRLs to an S3 bucket that you specify in the <b>S3BucketName</b> parameter. You can hide the name of your bucket by specifying a value for the <b>CustomCname</b> parameter. Your private CA copies the CNAME or the S3 bucket name to the <b>CRL Distribution Points</b> extension of each certificate it issues. Your S3 bucket policy must give write permission to ACM Private CA. </p> <p>ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption\">Encrypting Your CRLs</a>.</p> <p>Your private CA uses the value in the <b>ExpirationInDays</b> parameter to calculate the <b>nextUpdate</b> field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report.</p> <p>A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts every 15 minutes.</p> <p>CRLs contain the following fields:</p> <ul> <li> <p> <b>Version</b>: The current version number defined in RFC 5280 is V2. The integer value is 0x1. </p> </li> <li> <p> <b>Signature Algorithm</b>: The name of the algorithm used to sign the CRL.</p> </li> <li> <p> <b>Issuer</b>: The X.500 distinguished name of your private CA that issued the CRL.</p> </li> <li> <p> <b>Last Update</b>: The issue date and time of this CRL.</p> </li> <li> <p> <b>Next Update</b>: The day and time by which the next CRL will be issued.</p> </li> <li> <p> <b>Revoked Certificates</b>: List of revoked certificates. Each list item contains the following information.</p> <ul> <li> <p> <b>Serial Number</b>: The serial number, in hexadecimal format, of the revoked certificate.</p> </li> <li> <p> <b>Revocation Date</b>: Date and time the certificate was revoked.</p> </li> <li> <p> <b>CRL Entry Extensions</b>: Optional extensions for the CRL entry.</p> <ul> <li> <p> <b>X509v3 CRL Reason Code</b>: Reason the certificate was revoked.</p> </li> </ul> </li> </ul> </li> <li> <p> <b>CRL Extensions</b>: Optional extensions for the CRL.</p> <ul> <li> <p> <b>X509v3 Authority Key Identifier</b>: Identifies the public key associated with the private key used to sign the certificate.</p> </li> <li> <p> <b>X509v3 CRL Number:</b>: Decimal sequence number for the CRL.</p> </li> </ul> </li> <li> <p> <b>Signature Algorithm</b>: Algorithm used by your private CA to sign the CRL.</p> </li> <li> <p> <b>Signature Value</b>: Signature computed over the CRL.</p> </li> </ul> <p>Certificate revocation lists created by ACM Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL.</p> <p> <code>openssl crl -inform DER -text -in <i>crl_path</i> -noout</code> </p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html\">Planning a certificate revocation list (CRL)</a> in the <i>Certificate Manager Private Certificate Authority (PCA) User Guide</i> </p>"
"documentation":"<p>Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the <b>Enabled</b> parameter to <code>true</code>. Your private CA writes CRLs to an S3 bucket that you specify in the <b>S3BucketName</b> parameter. You can hide the name of your bucket by specifying a value for the <b>CustomCname</b> parameter. Your private CA copies the CNAME or the S3 bucket name to the <b>CRL Distribution Points</b> extension of each certificate it issues. Your S3 bucket policy must give write permission to ACM Private CA. </p> <p>ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption\">Encrypting Your CRLs</a>.</p> <p>Your private CA uses the value in the <b>ExpirationInDays</b> parameter to calculate the <b>nextUpdate</b> field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report.</p> <p>A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts every 15 minutes.</p> <p>CRLs contain the following fields:</p> <ul> <li> <p> <b>Version</b>: The current version number defined in RFC 5280 is V2. The integer value is 0x1. </p> </li> <li> <p> <b>Signature Algorithm</b>: The name of the algorithm used to sign the CRL.</p> </li> <li> <p> <b>Issuer</b>: The X.500 distinguished name of your private CA that issued the CRL.</p> </li> <li> <p> <b>Last Update</b>: The issue date and time of this CRL.</p> </li> <li> <p> <b>Next Update</b>: The day and time by which the next CRL will be issued.</p> </li> <li> <p> <b>Revoked Certificates</b>: List of revoked certificates. Each list item contains the following information.</p> <ul> <li> <p> <b>Serial Number</b>: The serial number, in hexadecimal format, of the revoked certificate.</p> </li> <li> <p> <b>Revocation Date</b>: Date and time the certificate was revoked.</p> </li> <li> <p> <b>CRL Entry Extensions</b>: Optional extensions for the CRL entry.</p> <ul> <li> <p> <b>X509v3 CRL Reason Code</b>: Reason the certificate was revoked.</p> </li> </ul> </li> </ul> </li> <li> <p> <b>CRL Extensions</b>: Optional extensions for the CRL.</p> <ul> <li> <p> <b>X509v3 Authority Key Identifier</b>: Identifies the public key associated with the private key used to sign the certificate.</p> </li> <li> <p> <b>X509v3 CRL Number:</b>: Decimal sequence number for the CRL.</p> </li> </ul> </li> <li> <p> <b>Signature Algorithm</b>: Algorithm used by your private CA to sign the CRL.</p> </li> <li> <p> <b>Signature Value</b>: Signature computed over the CRL.</p> </li> </ul> <p>Certificate revocation lists created by ACM Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL.</p> <p> <code>openssl crl -inform DER -text -in <i>crl_path</i> -noout</code> </p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html\">Planning a certificate revocation list (CRL)</a> in the <i>Private Certificate Authority (PCA) User Guide</i> </p>"
},
"CsrBlob":{
"type":"blob",
@ -1113,7 +1128,7 @@
},
"CustomExtensions":{
"shape":"CustomExtensionList",
"documentation":"<p/> <p>Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the <a href=\"https://oidref.com/2.5.29\">Global OID reference database.</a> </p> <note> <p>The OID value of a <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CustomExtension.html\">CustomExtension</a> must not match the OID of a predefined extension.</p> </note>"
"documentation":"<p/> <p>Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the <a href=\"https://oidref.com/2.5.29\">Global OID reference database.</a> </p>"
}
},
"documentation":"<p>Contains X.509 extension information for a certificate.</p>"
@ -1601,7 +1616,7 @@
},
"OcspCustomCname":{
"shape":"String253",
"documentation":"<p>By default, ACM Private CA injects an Amazon Web Services domain into certificates being validated by the Online Certificate Status Protocol (OCSP). A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain.</p> <p>Note: The value of the CNAME must not include a protocol prefix such as \"http://\" or \"https://\".</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/ocsp-customize.html\">Customizing Online Certificate Status Protocol (OCSP) </a> in the <i>Certificate Manager Private Certificate Authority (PCA) User Guide</i>.</p>"
"documentation":"<p>By default, ACM Private CA injects an Amazon Web Services domain into certificates being validated by the Online Certificate Status Protocol (OCSP). A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain.</p> <p>Note: The value of the CNAME must not include a protocol prefix such as \"http://\" or \"https://\".</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/ocsp-customize.html\">Customizing Online Certificate Status Protocol (OCSP) </a> in the <i>Private Certificate Authority (PCA) User Guide</i>.</p>"
}
},
"documentation":"<p>Contains information to enable and configure Online Certificate Status Protocol (OCSP) for validating certificate revocation status.</p> <p>When you revoke a certificate, OCSP responses may take up to 60 minutes to reflect the new status.</p>"
@ -1814,7 +1829,7 @@
"documentation":"<p>Configuration of Online Certificate Status Protocol (OCSP) support, if any, maintained by your private CA. When you revoke a certificate, OCSP responses may take up to 60 minutes to reflect the new status.</p>"
}
},
"documentation":"<p>Certificate revocation information used by the <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html\">CreateCertificateAuthority</a> and <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html\">UpdateCertificateAuthority</a> actions. Your private certificate authority (CA) can configure Online Certificate Status Protocol (OCSP) support and/or maintain a certificate revocation list (CRL). OCSP returns validation information about certificates as requested by clients, and a CRL contains an updated list of certificates revoked by your CA. For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html\">RevokeCertificate</a> and <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/revocation-setup.html\">Setting up a certificate revocation method</a> in the <i>Certificate Manager Private Certificate Authority (PCA) User Guide</i>.</p>"
"documentation":"<p>Certificate revocation information used by the <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html\">CreateCertificateAuthority</a> and <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html\">UpdateCertificateAuthority</a> actions. Your private certificate authority (CA) can configure Online Certificate Status Protocol (OCSP) support and/or maintain a certificate revocation list (CRL). OCSP returns validation information about certificates as requested by clients, and a CRL contains an updated list of certificates revoked by your CA. For more information, see <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html\">RevokeCertificate</a> and <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/revocation-setup.html\">Setting up a certificate revocation method</a> in the <i>Private Certificate Authority (PCA) User Guide</i>.</p>"
},
"RevocationReason":{
"type":"string",
@ -2045,7 +2060,7 @@
"documentation":"<p>Determines how <i>ACM Private CA</i> interprets the <code>Value</code> parameter, an integer. Supported validity types include those listed below. Type definitions with values include a sample input value and the resulting output. </p> <p> <code>END_DATE</code>: The specific date and time when the certificate will expire, expressed using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format. When UTCTime is used, if the year field (YY) is greater than or equal to 50, the year is interpreted as 19YY. If the year field is less than 50, the year is interpreted as 20YY.</p> <ul> <li> <p>Sample input value: 491231235959 (UTCTime format)</p> </li> <li> <p>Output expiration date/time: 12/31/2049 23:59:59</p> </li> </ul> <p> <code>ABSOLUTE</code>: The specific date and time when the validity of a certificate will start or expire, expressed in seconds since the Unix Epoch. </p> <ul> <li> <p>Sample input value: 2524608000</p> </li> <li> <p>Output expiration date/time: 01/01/2050 00:00:00</p> </li> </ul> <p> <code>DAYS</code>, <code>MONTHS</code>, <code>YEARS</code>: The relative time from the moment of issuance until the certificate will expire, expressed in days, months, or years. </p> <p>Example if <code>DAYS</code>, issued on 10/12/2020 at 12:34:54 UTC:</p> <ul> <li> <p>Sample input value: 90</p> </li> <li> <p>Output expiration date: 01/10/2020 12:34:54 UTC</p> </li> </ul> <p>The minimum validity duration for a certificate using relative time (<code>DAYS</code>) is one day. The minimum validity for a certificate using absolute time (<code>ABSOLUTE</code> or <code>END_DATE</code>) is one second.</p>"
}
},
"documentation":"<p>Validity specifies the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the validity of a certificate starts or expires, or as a span of time after issuance, stated in days, months, or years. For more information, see <a href=\"https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.5\">Validity</a> in RFC 5280.</p> <p>ACM Private CA API consumes the <code>Validity</code> data type differently in two distinct parameters of the <code>IssueCertificate</code> action. The required parameter <code>IssueCertificate</code>:<code>Validity</code> specifies the end of a certificate's validity period. The optional parameter <code>IssueCertificate</code>:<code>ValidityNotBefore</code> specifies a customized starting time for the validity period.</p>"
"documentation":"<p>Validity specifies the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the validity of a certificate starts or expires, or as a span of time after issuance, stated in days, months, or years. For more information, see <a href=\"https://tools.ietf.org/html/rfc5280#section-4.1.2.5\">Validity</a> in RFC 5280.</p> <p>ACM Private CA API consumes the <code>Validity</code> data type differently in two distinct parameters of the <code>IssueCertificate</code> action. The required parameter <code>IssueCertificate</code>:<code>Validity</code> specifies the end of a certificate's validity period. The optional parameter <code>IssueCertificate</code>:<code>ValidityNotBefore</code> specifies a customized starting time for the validity period.</p>"
},
"ValidityPeriodType":{
"type":"string",
@ -2058,5 +2073,5 @@
]
}
},
"documentation":"<p>This is the <i>Certificate Manager Private Certificate Authority (PCA) API Reference</i>. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing a private certificate authority (CA) for your organization.</p> <p>The documentation for each action shows the API request parameters and the JSON response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you prefer. For more information, see <a href=\"https://aws.amazon.com/tools/#SDKs\">Amazon Web Services SDKs</a>.</p> <p>Each ACM Private CA API operation has a quota that determines the number of times the operation can be called per second. ACM Private CA throttles API requests at different rates depending on the operation. Throttling means that ACM Private CA rejects an otherwise valid request because the request exceeds the operation's quota for the number of requests per second. When a request is throttled, ACM Private CA returns a <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/CommonErrors.html\">ThrottlingException</a> error. ACM Private CA does not guarantee a minimum request rate for APIs. </p> <p>To see an up-to-date list of your ACM Private CA quotas, or to request a quota increase, log into your Amazon Web Services account and visit the <a href=\"https://console.aws.amazon.com/servicequotas/\">Service Quotas</a> console.</p>"
"documentation":"<p>This is the <i>Private Certificate Authority (PCA) API Reference</i>. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing a private certificate authority (CA) for your organization.</p> <p>The documentation for each action shows the API request parameters and the JSON response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you prefer. For more information, see <a href=\"https://aws.amazon.com/tools/#SDKs\">Amazon Web Services SDKs</a>.</p> <p>Each ACM Private CA API operation has a quota that determines the number of times the operation can be called per second. ACM Private CA throttles API requests at different rates depending on the operation. Throttling means that ACM Private CA rejects an otherwise valid request because the request exceeds the operation's quota for the number of requests per second. When a request is throttled, ACM Private CA returns a <a href=\"https://docs.aws.amazon.com/acm-pca/latest/APIReference/CommonErrors.html\">ThrottlingException</a> error. ACM Private CA does not guarantee a minimum request rate for APIs. </p> <p>To see an up-to-date list of your ACM Private CA quotas, or to request a quota increase, log into your Amazon Web Services account and visit the <a href=\"https://console.aws.amazon.com/servicequotas/\">Service Quotas</a> console.</p>"
}

View file

@ -0,0 +1,340 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://acm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
"aws-us-gov",
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
}
]
}
],
"endpoint": {
"url": "https://acm.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [],
"endpoint": {
"url": "https://acm-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://acm.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://acm.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -41,6 +41,9 @@
"errors":[
{"shape":"ResourceNotFoundException"},
{"shape":"ResourceInUseException"},
{"shape":"AccessDeniedException"},
{"shape":"ThrottlingException"},
{"shape":"ConflictException"},
{"shape":"InvalidArnException"}
],
"documentation":"<p>Deletes a certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list that can be displayed by calling the <a>ListCertificates</a> action or be retrieved by calling the <a>GetCertificate</a> action. The certificate will not be available for use by Amazon Web Services services integrated with ACM. </p> <note> <p>You cannot delete an ACM certificate that is being used by another Amazon Web Services service. To delete a certificate that is in use, the certificate association must first be removed.</p> </note>"
@ -57,7 +60,7 @@
{"shape":"ResourceNotFoundException"},
{"shape":"InvalidArnException"}
],
"documentation":"<p>Returns detailed metadata about the specified ACM certificate.</p>"
"documentation":"<p>Returns detailed metadata about the specified ACM certificate.</p> <p>If you have just created a certificate using the <code>RequestCertificate</code> action, there is a delay of several seconds before you can retrieve information about it.</p>"
},
"ExportCertificate":{
"name":"ExportCertificate",
@ -119,7 +122,7 @@
{"shape":"InvalidParameterException"},
{"shape":"InvalidArnException"}
],
"documentation":"<p>Imports a certificate into Amazon Web Services Certificate Manager (ACM) to use with services that are integrated with ACM. Note that <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html\">integrated services</a> allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html\">Importing Certificates</a> in the <i>Amazon Web Services Certificate Manager User Guide</i>. </p> <note> <p>ACM does not provide <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for certificates that you import.</p> </note> <p>Note the following guidelines when importing third party certificates:</p> <ul> <li> <p>You must enter the private key that matches the certificate you are importing.</p> </li> <li> <p>The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase.</p> </li> <li> <p>The private key must be no larger than 5 KB (5,120 bytes).</p> </li> <li> <p>If the certificate you are importing is not self-signed, you must enter its certificate chain.</p> </li> <li> <p>If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain.</p> </li> <li> <p>The certificate, private key, and certificate chain must be PEM-encoded.</p> </li> <li> <p>The current time must be between the <code>Not Before</code> and <code>Not After</code> certificate fields.</p> </li> <li> <p>The <code>Issuer</code> field must not be empty.</p> </li> <li> <p>The OCSP authority URL, if present, must not exceed 1000 characters.</p> </li> <li> <p>To import a new certificate, omit the <code>CertificateArn</code> argument. Include this argument only when you want to replace a previously imported certificate.</p> </li> <li> <p>When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by <code>fileb://</code>. For example, you can specify a certificate saved in the <code>C:\\temp</code> folder as <code>fileb://C:\\temp\\certificate_to_import.pem</code>. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs. </p> </li> <li> <p>When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using. </p> </li> <li> <p>The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA.</p> </li> </ul> <p>This operation returns the <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Name (ARN)</a> of the imported certificate.</p>"
"documentation":"<p>Imports a certificate into Certificate Manager (ACM) to use with services that are integrated with ACM. Note that <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html\">integrated services</a> allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html\">Importing Certificates</a> in the <i>Certificate Manager User Guide</i>. </p> <note> <p>ACM does not provide <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for certificates that you import.</p> </note> <p>Note the following guidelines when importing third party certificates:</p> <ul> <li> <p>You must enter the private key that matches the certificate you are importing.</p> </li> <li> <p>The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase.</p> </li> <li> <p>The private key must be no larger than 5 KB (5,120 bytes).</p> </li> <li> <p>If the certificate you are importing is not self-signed, you must enter its certificate chain.</p> </li> <li> <p>If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain.</p> </li> <li> <p>The certificate, private key, and certificate chain must be PEM-encoded.</p> </li> <li> <p>The current time must be between the <code>Not Before</code> and <code>Not After</code> certificate fields.</p> </li> <li> <p>The <code>Issuer</code> field must not be empty.</p> </li> <li> <p>The OCSP authority URL, if present, must not exceed 1000 characters.</p> </li> <li> <p>To import a new certificate, omit the <code>CertificateArn</code> argument. Include this argument only when you want to replace a previously imported certificate.</p> </li> <li> <p>When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by <code>fileb://</code>. For example, you can specify a certificate saved in the <code>C:\\temp</code> folder as <code>fileb://C:\\temp\\certificate_to_import.pem</code>. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs. </p> </li> <li> <p>When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using. </p> </li> <li> <p>The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA.</p> </li> </ul> <p>This operation returns the <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Name (ARN)</a> of the imported certificate.</p>"
},
"ListCertificates":{
"name":"ListCertificates",
@ -130,7 +133,8 @@
"input":{"shape":"ListCertificatesRequest"},
"output":{"shape":"ListCertificatesResponse"},
"errors":[
{"shape":"InvalidArgsException"}
{"shape":"InvalidArgsException"},
{"shape":"ValidationException"}
],
"documentation":"<p>Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate. Default filtering returns only <code>RSA_2048</code> certificates. For more information, see <a>Filters</a>.</p>"
},
@ -191,7 +195,7 @@
{"shape":"ResourceNotFoundException"},
{"shape":"InvalidArnException"}
],
"documentation":"<p>Renews an eligible ACM certificate. At this time, only exported private certificates can be renewed with this operation. In order to renew your ACM PCA certificates with ACM, you must first <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaPermissions.html\">grant the ACM service principal permission to do so</a>. For more information, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/manual-renewal.html\">Testing Managed Renewal</a> in the ACM User Guide.</p>"
"documentation":"<p>Renews an eligible ACM certificate. At this time, only exported private certificates can be renewed with this operation. In order to renew your Amazon Web Services Private CA certificates with ACM, you must first <a href=\"https://docs.aws.amazon.com/privateca/latest/userguide/PcaPermissions.html\">grant the ACM service principal permission to do so</a>. For more information, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/manual-renewal.html\">Testing Managed Renewal</a> in the ACM User Guide.</p>"
},
"RequestCertificate":{
"name":"RequestCertificate",
@ -210,7 +214,7 @@
{"shape":"TagPolicyException"},
{"shape":"InvalidParameterException"}
],
"documentation":"<p>Requests an ACM certificate for use with other Amazon Web Services services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the <code>DomainName</code> parameter. You can also specify additional FQDNs in the <code>SubjectAlternativeNames</code> parameter. </p> <p>If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html\">DNS validation</a> or <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html\">email validation</a>. We recommend that you use DNS validation. ACM issues public certificates after receiving approval from the domain owner. </p> <note> <p>ACM behavior differs from the <a href=\"https://tools.ietf.org/html/rfc6125#appendix-B.2\">https://tools.ietf.org/html/rfc6125#appendix-B.2</a>RFC 6125 specification of the certificate validation process. first checks for a subject alternative name, and, if it finds one, ignores the common name (CN)</p> </note>"
"documentation":"<p>Requests an ACM certificate for use with other Amazon Web Services services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the <code>DomainName</code> parameter. You can also specify additional FQDNs in the <code>SubjectAlternativeNames</code> parameter. </p> <p>If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html\">DNS validation</a> or <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html\">email validation</a>. We recommend that you use DNS validation. ACM issues public certificates after receiving approval from the domain owner. </p> <note> <p>ACM behavior differs from the <a href=\"https://datatracker.ietf.org/doc/html/rfc6125#appendix-B.2\">RFC 6125</a> specification of the certificate validation process. ACM first checks for a Subject Alternative Name, and, if it finds one, ignores the common name (CN).</p> </note> <p>After successful completion of the <code>RequestCertificate</code> action, there is a delay of several seconds before you can retrieve information about the new certificate.</p>"
},
"ResendValidationEmail":{
"name":"ResendValidationEmail",
@ -274,7 +278,7 @@
"type":"string",
"max":2048,
"min":20,
"pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*"
"pattern":"arn:[\\w+=/,.@-]+:acm:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*"
},
"AvailabilityErrorMessage":{"type":"string"},
"CertificateBody":{
@ -340,11 +344,11 @@
},
"ImportedAt":{
"shape":"TStamp",
"documentation":"<p>The date and time at which the certificate was imported. This value exists only when the certificate type is <code>IMPORTED</code>. </p>"
"documentation":"<p>The date and time when the certificate was imported. This value exists only when the certificate type is <code>IMPORTED</code>. </p>"
},
"Status":{
"shape":"CertificateStatus",
"documentation":"<p>The status of the certificate.</p>"
"documentation":"<p>The status of the certificate.</p> <p>A certificate enters status PENDING_VALIDATION upon being requested, unless it fails for any of the reasons given in the troubleshooting topic <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html\">Certificate request fails</a>. ACM makes repeated attempts to validate a certificate for 72 hours and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT, delete the request, correct the issue with <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html\">DNS validation</a> or <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html\">Email validation</a>, and try again. If validation succeeds, the certificate enters status ISSUED. </p>"
},
"RevokedAt":{
"shape":"TStamp",
@ -376,11 +380,11 @@
},
"FailureReason":{
"shape":"FailureReason",
"documentation":"<p>The reason the certificate request failed. This value exists only when the certificate status is <code>FAILED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html#troubleshooting-failed\">Certificate Request Failed</a> in the <i>Amazon Web Services Certificate Manager User Guide</i>. </p>"
"documentation":"<p>The reason the certificate request failed. This value exists only when the certificate status is <code>FAILED</code>. For more information, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html#troubleshooting-failed\">Certificate Request Failed</a> in the <i>Certificate Manager User Guide</i>. </p>"
},
"Type":{
"shape":"CertificateType",
"documentation":"<p>The source of the certificate. For certificates provided by ACM, this value is <code>AMAZON_ISSUED</code>. For certificates that you imported with <a>ImportCertificate</a>, this value is <code>IMPORTED</code>. ACM does not provide <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html\">Importing Certificates</a> in the <i>Amazon Web Services Certificate Manager User Guide</i>. </p>"
"documentation":"<p>The source of the certificate. For certificates provided by ACM, this value is <code>AMAZON_ISSUED</code>. For certificates that you imported with <a>ImportCertificate</a>, this value is <code>IMPORTED</code>. ACM does not provide <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html\">Importing Certificates</a> in the <i>Certificate Manager User Guide</i>. </p>"
},
"RenewalSummary":{
"shape":"RenewalSummary",
@ -396,7 +400,7 @@
},
"CertificateAuthorityArn":{
"shape":"Arn",
"documentation":"<p>The Amazon Resource Name (ARN) of the ACM PCA private certificate authority (CA) that issued the certificate. This has the following format: </p> <p> <code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code> </p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the private certificate authority (CA) that issued the certificate. This has the following format: </p> <p> <code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code> </p>"
},
"RenewalEligibility":{
"shape":"RenewalEligibility",
@ -445,6 +449,73 @@
"DomainName":{
"shape":"DomainNameString",
"documentation":"<p>Fully qualified domain name (FQDN), such as www.example.com or example.com, for the certificate.</p>"
},
"SubjectAlternativeNameSummaries":{
"shape":"DomainList",
"documentation":"<p>One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website. </p> <p>When called by <a href=\"https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html\">ListCertificates</a>, this parameter will only return the first 100 subject alternative names included in the certificate. To display the full list of subject alternative names, use <a href=\"https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html\">DescribeCertificate</a>.</p>"
},
"HasAdditionalSubjectAlternativeNames":{
"shape":"NullableBoolean",
"documentation":"<p>When called by <a href=\"https://docs.aws.amazon.com/acm/latestAPIReference/API_ListCertificates.html\">ListCertificates</a>, indicates whether the full list of subject alternative names has been included in the response. If false, the response includes all of the subject alternative names included in the certificate. If true, the response only includes the first 100 subject alternative names included in the certificate. To display the full list of subject alternative names, use <a href=\"https://docs.aws.amazon.com/acm/latestAPIReference/API_DescribeCertificate.html\">DescribeCertificate</a>.</p>",
"box":true
},
"Status":{
"shape":"CertificateStatus",
"documentation":"<p>The status of the certificate.</p> <p>A certificate enters status PENDING_VALIDATION upon being requested, unless it fails for any of the reasons given in the troubleshooting topic <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-failed.html\">Certificate request fails</a>. ACM makes repeated attempts to validate a certificate for 72 hours and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT, delete the request, correct the issue with <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html\">DNS validation</a> or <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html\">Email validation</a>, and try again. If validation succeeds, the certificate enters status ISSUED. </p>"
},
"Type":{
"shape":"CertificateType",
"documentation":"<p>The source of the certificate. For certificates provided by ACM, this value is <code>AMAZON_ISSUED</code>. For certificates that you imported with <a>ImportCertificate</a>, this value is <code>IMPORTED</code>. ACM does not provide <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html\">managed renewal</a> for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html\">Importing Certificates</a> in the <i>Certificate Manager User Guide</i>. </p>"
},
"KeyAlgorithm":{
"shape":"KeyAlgorithm",
"documentation":"<p>The algorithm that was used to generate the public-private key pair.</p>"
},
"KeyUsages":{
"shape":"KeyUsageNames",
"documentation":"<p>A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.</p>"
},
"ExtendedKeyUsages":{
"shape":"ExtendedKeyUsageNames",
"documentation":"<p>Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID). </p>"
},
"InUse":{
"shape":"NullableBoolean",
"documentation":"<p>Indicates whether the certificate is currently in use by any Amazon Web Services resources.</p>",
"box":true
},
"Exported":{
"shape":"NullableBoolean",
"documentation":"<p>Indicates whether the certificate has been exported. This value exists only when the certificate type is <code>PRIVATE</code>.</p>",
"box":true
},
"RenewalEligibility":{
"shape":"RenewalEligibility",
"documentation":"<p>Specifies whether the certificate is eligible for renewal. At this time, only exported private certificates can be renewed with the <a>RenewCertificate</a> command.</p>"
},
"NotBefore":{
"shape":"TStamp",
"documentation":"<p>The time before which the certificate is not valid.</p>"
},
"NotAfter":{
"shape":"TStamp",
"documentation":"<p>The time after which the certificate is not valid.</p>"
},
"CreatedAt":{
"shape":"TStamp",
"documentation":"<p>The time at which the certificate was requested.</p>"
},
"IssuedAt":{
"shape":"TStamp",
"documentation":"<p>The time at which the certificate was issued. This value exists only when the certificate type is <code>AMAZON_ISSUED</code>. </p>"
},
"ImportedAt":{
"shape":"TStamp",
"documentation":"<p>The date and time when the certificate was imported. This value exists only when the certificate type is <code>IMPORTED</code>. </p>"
},
"RevokedAt":{
"shape":"TStamp",
"documentation":"<p>The time at which the certificate was revoked. This value exists only when the certificate status is <code>REVOKED</code>. </p>"
}
},
"documentation":"<p>This structure is returned in the response object of <a>ListCertificates</a> action. </p>"
@ -609,7 +680,7 @@
},
"Passphrase":{
"shape":"PassphraseBlob",
"documentation":"<p>Passphrase to associate with the encrypted exported private key. If you want to later decrypt the private key, you must have the passphrase. You can use the following OpenSSL command to decrypt a private key: </p> <p> <code>openssl rsa -in encrypted_key.pem -out decrypted_key.pem</code> </p>"
"documentation":"<p>Passphrase to associate with the encrypted exported private key. </p> <note> <p>When creating your passphrase, you can use any ASCII character except #, $, or %.</p> </note> <p>If you want to later decrypt the private key, you must have the passphrase. You can use the following OpenSSL command to decrypt a private key. After entering the command, you are prompted for the passphrase.</p> <p> <code>openssl rsa -in encrypted_key.pem -out decrypted_key.pem</code> </p>"
}
}
},
@ -669,6 +740,10 @@
"CUSTOM"
]
},
"ExtendedKeyUsageNames":{
"type":"list",
"member":{"shape":"ExtendedKeyUsageName"}
},
"FailureReason":{
"type":"string",
"enum":[
@ -704,7 +779,7 @@
},
"keyTypes":{
"shape":"KeyAlgorithmList",
"documentation":"<p>Specify one or more algorithms that can be used to generate key pairs.</p> <p>Default filtering returns only <code>RSA_1024</code> and <code>RSA_2048</code> certificates that have at least one domain. To return other certificate types, provide the desired type signatures in a comma-separated list. For example, <code>\"keyTypes\": [\"RSA_2048,RSA_4096\"]</code> returns both <code>RSA_2048</code> and <code>RSA_4096</code> certificates.</p>"
"documentation":"<p>Specify one or more algorithms that can be used to generate key pairs.</p> <p>Default filtering returns only <code>RSA_1024</code> and <code>RSA_2048</code> certificates that have at least one domain. To return other certificate types, provide the desired type signatures in a comma-separated list. For example, <code>\"keyTypes\": [\"RSA_2048\",\"RSA_4096\"]</code> returns both <code>RSA_2048</code> and <code>RSA_4096</code> certificates.</p>"
}
},
"documentation":"<p>This structure can be used in the <a>ListCertificates</a> action to filter the output of the certificate list. </p>"
@ -887,6 +962,10 @@
"CUSTOM"
]
},
"KeyUsageNames":{
"type":"list",
"member":{"shape":"KeyUsageName"}
},
"LimitExceededException":{
"type":"structure",
"members":{
@ -913,6 +992,14 @@
"MaxItems":{
"shape":"MaxItems",
"documentation":"<p>Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the <code>NextToken</code> element is sent in the response. Use this <code>NextToken</code> value in a subsequent request to retrieve additional items.</p>"
},
"SortBy":{
"shape":"SortBy",
"documentation":"<p>Specifies the field to sort results by. If you specify <code>SortBy</code>, you must also specify <code>SortOrder</code>.</p>"
},
"SortOrder":{
"shape":"SortOrder",
"documentation":"<p>Specifies the order of sorted results. If you specify <code>SortOrder</code>, you must also specify <code>SortBy</code>.</p>"
}
}
},
@ -959,12 +1046,19 @@
"min":1,
"pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*"
},
"NullableBoolean":{"type":"boolean"},
"PassphraseBlob":{
"type":"blob",
"max":128,
"min":4,
"sensitive":true
},
"PcaArn":{
"type":"string",
"max":2048,
"min":20,
"pattern":"arn:[\\w+=/,.@-]+:acm-pca:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*"
},
"PositiveInteger":{
"type":"integer",
"min":1
@ -1076,7 +1170,7 @@
"members":{
"DomainName":{
"shape":"DomainNameString",
"documentation":"<p> Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com. </p> <p> The first domain name you enter cannot exceed 64 octets, including periods. Each subsequent Subject Alternative Name (SAN), however, can be up to 253 octets in length. </p>"
"documentation":"<p>Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com. </p> <p>In compliance with <a href=\"https://datatracker.ietf.org/doc/html/rfc5280\">RFC 5280</a>, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length. </p>"
},
"ValidationMethod":{
"shape":"ValidationMethod",
@ -1099,12 +1193,16 @@
"documentation":"<p>Currently, you can use this parameter to specify whether to add the certificate to a certificate transparency log. Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency\">Opting Out of Certificate Transparency Logging</a>.</p>"
},
"CertificateAuthorityArn":{
"shape":"Arn",
"documentation":"<p>The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the <a href=\"https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html\">Amazon Web Services Certificate Manager Private Certificate Authority (PCA)</a> user guide. The ARN must have the following form: </p> <p> <code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code> </p>"
"shape":"PcaArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the <a href=\"https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html\">Amazon Web Services Private Certificate Authority</a> user guide. The ARN must have the following form: </p> <p> <code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code> </p>"
},
"Tags":{
"shape":"TagList",
"documentation":"<p>One or more resource tags to associate with the certificate.</p>"
},
"KeyAlgorithm":{
"shape":"KeyAlgorithm",
"documentation":"<p>Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable to RSA keys but with greater computing efficiency. However, ECDSA is not supported by all network clients. Some AWS services may require RSA keys, or only support ECDSA keys of a particular size, while others allow the use of either RSA and ECDSA keys to ensure that compatibility is not broken. Check the requirements for the AWS service where you plan to deploy your certificate.</p> <p>Default: RSA_2048</p>"
}
}
},
@ -1202,6 +1300,17 @@
]
},
"ServiceErrorMessage":{"type":"string"},
"SortBy":{
"type":"string",
"enum":["CREATED_AT"]
},
"SortOrder":{
"type":"string",
"enum":[
"ASCENDING",
"DESCENDING"
]
},
"String":{"type":"string"},
"TStamp":{"type":"timestamp"},
"Tag":{
@ -1301,5 +1410,5 @@
]
}
},
"documentation":"<fullname>Amazon Web Services Certificate Manager</fullname> <p>You can use Amazon Web Services Certificate Manager (ACM) to manage SSL/TLS certificates for your Amazon Web Services-based websites and applications. For more information about using ACM, see the <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/\">Amazon Web Services Certificate Manager User Guide</a>.</p>"
"documentation":"<fullname>Certificate Manager</fullname> <p>You can use Certificate Manager (ACM) to manage SSL/TLS certificates for your Amazon Web Services-based websites and applications. For more information about using ACM, see the <a href=\"https://docs.aws.amazon.com/acm/latest/userguide/\">Certificate Manager User Guide</a>.</p>"
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://a4b-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://a4b-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://a4b.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://a4b.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://aps-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://aps-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://aps.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://aps.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -33,6 +33,24 @@
"documentation":"<p>Create an alert manager definition.</p>",
"idempotent":true
},
"CreateLoggingConfiguration":{
"name":"CreateLoggingConfiguration",
"http":{
"method":"POST",
"requestUri":"/workspaces/{workspaceId}/logging",
"responseCode":202
},
"input":{"shape":"CreateLoggingConfigurationRequest"},
"output":{"shape":"CreateLoggingConfigurationResponse"},
"errors":[
{"shape":"ValidationException"},
{"shape":"ResourceNotFoundException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Create logging configuration.</p>",
"idempotent":true
},
"CreateRuleGroupsNamespace":{
"name":"CreateRuleGroupsNamespace",
"http":{
@ -93,6 +111,24 @@
"documentation":"<p>Deletes an alert manager definition.</p>",
"idempotent":true
},
"DeleteLoggingConfiguration":{
"name":"DeleteLoggingConfiguration",
"http":{
"method":"DELETE",
"requestUri":"/workspaces/{workspaceId}/logging",
"responseCode":202
},
"input":{"shape":"DeleteLoggingConfigurationRequest"},
"errors":[
{"shape":"ConflictException"},
{"shape":"ValidationException"},
{"shape":"ResourceNotFoundException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Delete logging configuration.</p>",
"idempotent":true
},
"DeleteRuleGroupsNamespace":{
"name":"DeleteRuleGroupsNamespace",
"http":{
@ -149,6 +185,23 @@
],
"documentation":"<p>Describes an alert manager definition.</p>"
},
"DescribeLoggingConfiguration":{
"name":"DescribeLoggingConfiguration",
"http":{
"method":"GET",
"requestUri":"/workspaces/{workspaceId}/logging",
"responseCode":200
},
"input":{"shape":"DescribeLoggingConfigurationRequest"},
"output":{"shape":"DescribeLoggingConfigurationResponse"},
"errors":[
{"shape":"ValidationException"},
{"shape":"ResourceNotFoundException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Describes logging configuration.</p>"
},
"DescribeRuleGroupsNamespace":{
"name":"DescribeRuleGroupsNamespace",
"http":{
@ -317,6 +370,25 @@
"documentation":"<p>Deletes tags from the specified resource.</p>",
"idempotent":true
},
"UpdateLoggingConfiguration":{
"name":"UpdateLoggingConfiguration",
"http":{
"method":"PUT",
"requestUri":"/workspaces/{workspaceId}/logging",
"responseCode":202
},
"input":{"shape":"UpdateLoggingConfigurationRequest"},
"output":{"shape":"UpdateLoggingConfigurationResponse"},
"errors":[
{"shape":"ConflictException"},
{"shape":"ValidationException"},
{"shape":"ResourceNotFoundException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Update logging configuration.</p>",
"idempotent":true
},
"UpdateWorkspaceAlias":{
"name":"UpdateWorkspaceAlias",
"http":{
@ -478,6 +550,42 @@
},
"documentation":"<p>Represents the output of a CreateAlertManagerDefinition operation.</p>"
},
"CreateLoggingConfigurationRequest":{
"type":"structure",
"required":[
"logGroupArn",
"workspaceId"
],
"members":{
"clientToken":{
"shape":"IdempotencyToken",
"documentation":"<p>Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.</p>",
"idempotencyToken":true
},
"logGroupArn":{
"shape":"LogGroupArn",
"documentation":"<p>The ARN of the CW log group to which the vended log data will be published.</p>"
},
"workspaceId":{
"shape":"WorkspaceId",
"documentation":"<p>The ID of the workspace to vend logs to.</p>",
"location":"uri",
"locationName":"workspaceId"
}
},
"documentation":"<p>Represents the input of a CreateLoggingConfiguration operation.</p>"
},
"CreateLoggingConfigurationResponse":{
"type":"structure",
"required":["status"],
"members":{
"status":{
"shape":"LoggingConfigurationStatus",
"documentation":"<p>The status of the logging configuration.</p>"
}
},
"documentation":"<p>Represents the output of a CreateLoggingConfiguration operation.</p>"
},
"CreateRuleGroupsNamespaceRequest":{
"type":"structure",
"required":[
@ -605,6 +713,26 @@
},
"documentation":"<p>Represents the input of a DeleteAlertManagerDefinition operation.</p>"
},
"DeleteLoggingConfigurationRequest":{
"type":"structure",
"required":["workspaceId"],
"members":{
"clientToken":{
"shape":"IdempotencyToken",
"documentation":"<p>Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.</p>",
"idempotencyToken":true,
"location":"querystring",
"locationName":"clientToken"
},
"workspaceId":{
"shape":"WorkspaceId",
"documentation":"<p>The ID of the workspace to vend logs to.</p>",
"location":"uri",
"locationName":"workspaceId"
}
},
"documentation":"<p>Represents the input of a DeleteLoggingConfiguration operation.</p>"
},
"DeleteRuleGroupsNamespaceRequest":{
"type":"structure",
"required":[
@ -678,6 +806,30 @@
},
"documentation":"<p>Represents the output of a DescribeAlertManagerDefinition operation.</p>"
},
"DescribeLoggingConfigurationRequest":{
"type":"structure",
"required":["workspaceId"],
"members":{
"workspaceId":{
"shape":"WorkspaceId",
"documentation":"<p>The ID of the workspace to vend logs to.</p>",
"location":"uri",
"locationName":"workspaceId"
}
},
"documentation":"<p>Represents the input of a DescribeLoggingConfiguration operation.</p>"
},
"DescribeLoggingConfigurationResponse":{
"type":"structure",
"required":["loggingConfiguration"],
"members":{
"loggingConfiguration":{
"shape":"LoggingConfigurationMetadata",
"documentation":"<p>Metadata object containing information about the logging configuration of a workspace.</p>"
}
},
"documentation":"<p>Represents the output of a DescribeLoggingConfiguration operation.</p>"
},
"DescribeRuleGroupsNamespaceRequest":{
"type":"structure",
"required":[
@ -882,6 +1034,70 @@
},
"documentation":"<p>Represents the output of a ListWorkspaces operation.</p>"
},
"LogGroupArn":{
"type":"string",
"pattern":"^arn:aws[a-z0-9-]*:logs:[a-z0-9-]+:\\d{12}:log-group:[A-Za-z0-9\\.\\-\\_\\#/]{1,512}\\:\\*$"
},
"LoggingConfigurationMetadata":{
"type":"structure",
"required":[
"createdAt",
"logGroupArn",
"modifiedAt",
"status",
"workspace"
],
"members":{
"createdAt":{
"shape":"Timestamp",
"documentation":"<p>The time when the logging configuration was created.</p>"
},
"logGroupArn":{
"shape":"LogGroupArn",
"documentation":"<p>The ARN of the CW log group to which the vended log data will be published.</p>"
},
"modifiedAt":{
"shape":"Timestamp",
"documentation":"<p>The time when the logging configuration was modified.</p>"
},
"status":{
"shape":"LoggingConfigurationStatus",
"documentation":"<p>The status of the logging configuration.</p>"
},
"workspace":{
"shape":"WorkspaceId",
"documentation":"<p>The workspace where the logging configuration exists.</p>"
}
},
"documentation":"<p>Represents the properties of a logging configuration metadata.</p>"
},
"LoggingConfigurationStatus":{
"type":"structure",
"required":["statusCode"],
"members":{
"statusCode":{
"shape":"LoggingConfigurationStatusCode",
"documentation":"<p>Status code of the logging configuration.</p>"
},
"statusReason":{
"shape":"String",
"documentation":"<p>The reason for failure if any.</p>"
}
},
"documentation":"<p>Represents the status of a logging configuration.</p>"
},
"LoggingConfigurationStatusCode":{
"type":"string",
"documentation":"<p>State of a logging configuration.</p>",
"enum":[
"CREATING",
"ACTIVE",
"UPDATING",
"DELETING",
"CREATION_FAILED",
"UPDATE_FAILED"
]
},
"PaginationToken":{
"type":"string",
"documentation":"<p>A token used to access the next page in a paginated result set.</p>"
@ -1283,6 +1499,42 @@
"members":{
}
},
"UpdateLoggingConfigurationRequest":{
"type":"structure",
"required":[
"logGroupArn",
"workspaceId"
],
"members":{
"clientToken":{
"shape":"IdempotencyToken",
"documentation":"<p>Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.</p>",
"idempotencyToken":true
},
"logGroupArn":{
"shape":"LogGroupArn",
"documentation":"<p>The ARN of the CW log group to which the vended log data will be published.</p>"
},
"workspaceId":{
"shape":"WorkspaceId",
"documentation":"<p>The ID of the workspace to vend logs to.</p>",
"location":"uri",
"locationName":"workspaceId"
}
},
"documentation":"<p>Represents the input of an UpdateLoggingConfiguration operation.</p>"
},
"UpdateLoggingConfigurationResponse":{
"type":"structure",
"required":["status"],
"members":{
"status":{
"shape":"LoggingConfigurationStatus",
"documentation":"<p>The status of the logging configuration.</p>"
}
},
"documentation":"<p>Represents the output of an UpdateLoggingConfiguration operation.</p>"
},
"UpdateWorkspaceAliasRequest":{
"type":"structure",
"required":["workspaceId"],

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplify-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplify-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplify.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://amplify.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -677,7 +677,7 @@
},
"platform":{
"shape":"Platform",
"documentation":"<p> The platform for the Amplify app. </p>"
"documentation":"<p> The platform for the Amplify app. For a static app, set the platform type to <code>WEB</code>. For a dynamic server-side rendered (SSR) app, set the platform type to <code>WEB_COMPUTE</code>. For an app requiring Amplify Hosting's original SSR support only, set the platform type to <code>WEB_DYNAMIC</code>.</p>"
},
"createTime":{
"shape":"CreateTime",
@ -1142,7 +1142,7 @@
},
"platform":{
"shape":"Platform",
"documentation":"<p> The platform or framework for an Amplify app. </p>"
"documentation":"<p> The platform for the Amplify app. For a static app, set the platform type to <code>WEB</code>. For a dynamic server-side rendered (SSR) app, set the platform type to <code>WEB_COMPUTE</code>. For an app requiring Amplify Hosting's original SSR support only, set the platform type to <code>WEB_DYNAMIC</code>.</p>"
},
"iamServiceRoleArn":{
"shape":"ServiceRoleArn",
@ -2618,7 +2618,8 @@
"type":"string",
"enum":[
"WEB",
"WEB_DYNAMIC"
"WEB_DYNAMIC",
"WEB_COMPUTE"
]
},
"ProductionBranch":{
@ -2977,12 +2978,12 @@
"SubDomainSettings":{
"type":"list",
"member":{"shape":"SubDomainSetting"},
"max":255
"max":500
},
"SubDomains":{
"type":"list",
"member":{"shape":"SubDomain"},
"max":255
"max":500
},
"TTL":{
"type":"string",
@ -3125,7 +3126,7 @@
},
"platform":{
"shape":"Platform",
"documentation":"<p> The platform for an Amplify app. </p>"
"documentation":"<p> The platform for the Amplify app. For a static app, set the platform type to <code>WEB</code>. For a dynamic server-side rendered (SSR) app, set the platform type to <code>WEB_COMPUTE</code>. For an app requiring Amplify Hosting's original SSR support only, set the platform type to <code>WEB_DYNAMIC</code>.</p>"
},
"iamServiceRoleArn":{
"shape":"ServiceRoleArn",

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplifybackend-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplifybackend-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplifybackend.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://amplifybackend.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://amplifyuibuilder.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://amplifyuibuilder.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -21,6 +21,17 @@
"input_token": "nextToken",
"output_token": "nextToken",
"result_key": "entities"
},
"ExportForms": {
"input_token": "nextToken",
"output_token": "nextToken",
"result_key": "entities"
},
"ListForms": {
"input_token": "nextToken",
"output_token": "nextToken",
"limit_key": "maxResults",
"result_key": "entities"
}
}
}

View file

@ -30,6 +30,24 @@
"documentation":"<p>Creates a new component for an Amplify app.</p>",
"idempotent":true
},
"CreateForm":{
"name":"CreateForm",
"http":{
"method":"POST",
"requestUri":"/app/{appId}/environment/{environmentName}/forms",
"responseCode":200
},
"input":{"shape":"CreateFormRequest"},
"output":{"shape":"CreateFormResponse"},
"errors":[
{"shape":"ServiceQuotaExceededException"},
{"shape":"ResourceConflictException"},
{"shape":"InternalServerException"},
{"shape":"InvalidParameterException"}
],
"documentation":"<p>Creates a new form for an Amplify app.</p>",
"idempotent":true
},
"CreateTheme":{
"name":"CreateTheme",
"http":{
@ -64,6 +82,22 @@
"documentation":"<p>Deletes a component from an Amplify app.</p>",
"idempotent":true
},
"DeleteForm":{
"name":"DeleteForm",
"http":{
"method":"DELETE",
"requestUri":"/app/{appId}/environment/{environmentName}/forms/{id}",
"responseCode":200
},
"input":{"shape":"DeleteFormRequest"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidParameterException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Deletes a form from an Amplify app.</p>",
"idempotent":true
},
"DeleteTheme":{
"name":"DeleteTheme",
"http":{
@ -109,6 +143,21 @@
],
"documentation":"<p>Exports component configurations to code that is ready to integrate into an Amplify app.</p>"
},
"ExportForms":{
"name":"ExportForms",
"http":{
"method":"GET",
"requestUri":"/export/app/{appId}/environment/{environmentName}/forms",
"responseCode":200
},
"input":{"shape":"ExportFormsRequest"},
"output":{"shape":"ExportFormsResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidParameterException"}
],
"documentation":"<p>Exports form configurations to code that is ready to integrate into an Amplify app.</p>"
},
"ExportThemes":{
"name":"ExportThemes",
"http":{
@ -140,6 +189,37 @@
],
"documentation":"<p>Returns an existing component for an Amplify app.</p>"
},
"GetForm":{
"name":"GetForm",
"http":{
"method":"GET",
"requestUri":"/app/{appId}/environment/{environmentName}/forms/{id}",
"responseCode":200
},
"input":{"shape":"GetFormRequest"},
"output":{"shape":"GetFormResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidParameterException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Returns an existing form for an Amplify app.</p>"
},
"GetMetadata":{
"name":"GetMetadata",
"http":{
"method":"GET",
"requestUri":"/app/{appId}/environment/{environmentName}/metadata",
"responseCode":200
},
"input":{"shape":"GetMetadataRequest"},
"output":{"shape":"GetMetadataResponse"},
"errors":[
{"shape":"UnauthorizedException"},
{"shape":"InvalidParameterException"}
],
"documentation":"<p>Returns existing metadata for an Amplify app.</p>"
},
"GetTheme":{
"name":"GetTheme",
"http":{
@ -171,6 +251,21 @@
],
"documentation":"<p>Retrieves a list of components for a specified Amplify app and backend environment.</p>"
},
"ListForms":{
"name":"ListForms",
"http":{
"method":"GET",
"requestUri":"/app/{appId}/environment/{environmentName}/forms",
"responseCode":200
},
"input":{"shape":"ListFormsRequest"},
"output":{"shape":"ListFormsResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidParameterException"}
],
"documentation":"<p>Retrieves a list of forms for a specified Amplify app and backend environment.</p>"
},
"ListThemes":{
"name":"ListThemes",
"http":{
@ -186,6 +281,20 @@
],
"documentation":"<p>Retrieves a list of themes for a specified Amplify app and backend environment.</p>"
},
"PutMetadataFlag":{
"name":"PutMetadataFlag",
"http":{
"method":"PUT",
"requestUri":"/app/{appId}/environment/{environmentName}/metadata/features/{featureName}",
"responseCode":200
},
"input":{"shape":"PutMetadataFlagRequest"},
"errors":[
{"shape":"UnauthorizedException"},
{"shape":"InvalidParameterException"}
],
"documentation":"<p>Stores the metadata information about a feature on a form or view.</p>"
},
"RefreshToken":{
"name":"RefreshToken",
"http":{
@ -217,6 +326,23 @@
"documentation":"<p>Updates an existing component.</p>",
"idempotent":true
},
"UpdateForm":{
"name":"UpdateForm",
"http":{
"method":"PATCH",
"requestUri":"/app/{appId}/environment/{environmentName}/forms/{id}",
"responseCode":200
},
"input":{"shape":"UpdateFormRequest"},
"output":{"shape":"UpdateFormResponse"},
"errors":[
{"shape":"ResourceConflictException"},
{"shape":"InternalServerException"},
{"shape":"InvalidParameterException"}
],
"documentation":"<p>Updates an existing form.</p>",
"idempotent":true
},
"UpdateTheme":{
"name":"UpdateTheme",
"http":{
@ -418,6 +544,10 @@
"shape":"PredicateList",
"documentation":"<p>A list of predicates for binding a component's properties to data.</p>"
},
"slotName":{
"shape":"String",
"documentation":"<p>The name of a component slot.</p>"
},
"userAttribute":{
"shape":"String",
"documentation":"<p>An authenticated user attribute.</p>"
@ -829,6 +959,101 @@
},
"payload":"entity"
},
"CreateFormData":{
"type":"structure",
"required":[
"dataType",
"fields",
"formActionType",
"name",
"schemaVersion",
"sectionalElements",
"style"
],
"members":{
"cta":{
"shape":"FormCTA",
"documentation":"<p>The <code>FormCTA</code> object that stores the call to action configuration for the form.</p>"
},
"dataType":{
"shape":"FormDataTypeConfig",
"documentation":"<p>The type of data source to use to create the form.</p>"
},
"fields":{
"shape":"FieldsMap",
"documentation":"<p>The configuration information for the form's fields.</p>"
},
"formActionType":{
"shape":"FormActionType",
"documentation":"<p>Specifies whether to perform a create or update action on the form.</p>"
},
"name":{
"shape":"FormName",
"documentation":"<p>The name of the form.</p>"
},
"schemaVersion":{
"shape":"String",
"documentation":"<p>The schema version of the form.</p>"
},
"sectionalElements":{
"shape":"SectionalElementMap",
"documentation":"<p>The configuration information for the visual helper elements for the form. These elements are not associated with any data.</p>"
},
"style":{
"shape":"FormStyle",
"documentation":"<p>The configuration for the form's style.</p>"
},
"tags":{
"shape":"Tags",
"documentation":"<p>One or more key-value pairs to use when tagging the form data.</p>"
}
},
"documentation":"<p>Represents all of the information that is required to create a form.</p>"
},
"CreateFormRequest":{
"type":"structure",
"required":[
"appId",
"environmentName",
"formToCreate"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID of the Amplify app to associate with the form.</p>",
"location":"uri",
"locationName":"appId"
},
"clientToken":{
"shape":"String",
"documentation":"<p>The unique client token.</p>",
"idempotencyToken":true,
"location":"querystring",
"locationName":"clientToken"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is a part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
},
"formToCreate":{
"shape":"CreateFormData",
"documentation":"<p>Represents the configuration of the form to create.</p>"
}
},
"payload":"formToCreate"
},
"CreateFormResponse":{
"type":"structure",
"members":{
"entity":{
"shape":"Form",
"documentation":"<p>Describes the configuration of the new form.</p>"
}
},
"payload":"entity"
},
"CreateThemeData":{
"type":"structure",
"required":[
@ -927,6 +1152,34 @@
}
}
},
"DeleteFormRequest":{
"type":"structure",
"required":[
"appId",
"environmentName",
"id"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID of the Amplify app associated with the form to delete.</p>",
"location":"uri",
"locationName":"appId"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is a part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
},
"id":{
"shape":"Uuid",
"documentation":"<p>The unique ID of the form to delete.</p>",
"location":"uri",
"locationName":"id"
}
}
},
"DeleteThemeRequest":{
"type":"structure",
"required":[
@ -1056,6 +1309,47 @@
}
}
},
"ExportFormsRequest":{
"type":"structure",
"required":[
"appId",
"environmentName"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID of the Amplify app to export forms to.</p>",
"location":"uri",
"locationName":"appId"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is a part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
},
"nextToken":{
"shape":"String",
"documentation":"<p>The token to request the next page of results.</p>",
"location":"querystring",
"locationName":"nextToken"
}
}
},
"ExportFormsResponse":{
"type":"structure",
"required":["entities"],
"members":{
"entities":{
"shape":"FormList",
"documentation":"<p>Represents the configuration of the exported forms.</p>"
},
"nextToken":{
"shape":"String",
"documentation":"<p>The pagination token that's included if more results are available.</p>"
}
}
},
"ExportThemesRequest":{
"type":"structure",
"required":[
@ -1097,6 +1391,232 @@
}
}
},
"FeaturesMap":{
"type":"map",
"key":{"shape":"String"},
"value":{"shape":"String"}
},
"FieldConfig":{
"type":"structure",
"members":{
"excluded":{
"shape":"Boolean",
"documentation":"<p>Specifies whether to hide a field.</p>"
},
"inputType":{
"shape":"FieldInputConfig",
"documentation":"<p>Describes the configuration for the default input value to display for a field.</p>"
},
"label":{
"shape":"String",
"documentation":"<p>The label for the field.</p>"
},
"position":{
"shape":"FieldPosition",
"documentation":"<p>Specifies the field position.</p>"
},
"validations":{
"shape":"ValidationsList",
"documentation":"<p>The validations to perform on the value in the field.</p>"
}
},
"documentation":"<p>Describes the configuration information for a field in a table.</p>"
},
"FieldInputConfig":{
"type":"structure",
"required":["type"],
"members":{
"defaultChecked":{
"shape":"Boolean",
"documentation":"<p>Specifies whether a field has a default value.</p>"
},
"defaultCountryCode":{
"shape":"String",
"documentation":"<p>The default country code for a phone number.</p>"
},
"defaultValue":{
"shape":"String",
"documentation":"<p>The default value for the field.</p>"
},
"descriptiveText":{
"shape":"String",
"documentation":"<p>The text to display to describe the field.</p>"
},
"isArray":{
"shape":"Boolean",
"documentation":"<p>Specifies whether to render the field as an array. This property is ignored if the <code>dataSourceType</code> for the form is a Data Store.</p>"
},
"maxValue":{
"shape":"Float",
"documentation":"<p>The maximum value to display for the field.</p>"
},
"minValue":{
"shape":"Float",
"documentation":"<p>The minimum value to display for the field.</p>"
},
"name":{
"shape":"String",
"documentation":"<p>The name of the field.</p>"
},
"placeholder":{
"shape":"String",
"documentation":"<p>The text to display as a placeholder for the field.</p>"
},
"readOnly":{
"shape":"Boolean",
"documentation":"<p>Specifies a read only field.</p>"
},
"required":{
"shape":"Boolean",
"documentation":"<p>Specifies a field that requires input.</p>"
},
"step":{
"shape":"Float",
"documentation":"<p>The stepping increment for a numeric value in a field.</p>"
},
"type":{
"shape":"String",
"documentation":"<p>The input type for the field. </p>"
},
"value":{
"shape":"String",
"documentation":"<p>The value for the field.</p>"
},
"valueMappings":{
"shape":"ValueMappings",
"documentation":"<p>The information to use to customize the input fields with data at runtime.</p>"
}
},
"documentation":"<p>Describes the configuration for the default input values to display for a field.</p>"
},
"FieldPosition":{
"type":"structure",
"members":{
"below":{
"shape":"String",
"documentation":"<p>The field position is below the field specified by the string.</p>"
},
"fixed":{
"shape":"FixedPosition",
"documentation":"<p>The field position is fixed and doesn't change in relation to other fields.</p>"
},
"rightOf":{
"shape":"String",
"documentation":"<p>The field position is to the right of the field specified by the string.</p>"
}
},
"documentation":"<p>Describes the field position.</p>",
"union":true
},
"FieldValidationConfiguration":{
"type":"structure",
"required":["type"],
"members":{
"numValues":{
"shape":"NumValues",
"documentation":"<p>The validation to perform on a number value.</p>"
},
"strValues":{
"shape":"StrValues",
"documentation":"<p>The validation to perform on a string value.</p>"
},
"type":{
"shape":"String",
"documentation":"<p>The validation to perform on an object type.<code/> </p>"
},
"validationMessage":{
"shape":"String",
"documentation":"<p>The validation message to display.</p>"
}
},
"documentation":"<p>Describes the validation configuration for a field.</p>"
},
"FieldsMap":{
"type":"map",
"key":{"shape":"String"},
"value":{"shape":"FieldConfig"}
},
"FixedPosition":{
"type":"string",
"enum":["first"]
},
"Float":{
"type":"float",
"box":true
},
"Form":{
"type":"structure",
"required":[
"appId",
"dataType",
"environmentName",
"fields",
"formActionType",
"id",
"name",
"schemaVersion",
"sectionalElements",
"style"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID of the Amplify app associated with the form.</p>"
},
"cta":{
"shape":"FormCTA",
"documentation":"<p>Stores the call to action configuration for the form.</p>"
},
"dataType":{
"shape":"FormDataTypeConfig",
"documentation":"<p>The type of data source to use to create the form.</p>"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is a part of the Amplify app.</p>"
},
"fields":{
"shape":"FieldsMap",
"documentation":"<p>Stores the information about the form's fields.</p>"
},
"formActionType":{
"shape":"FormActionType",
"documentation":"<p>The operation to perform on the specified form.</p>"
},
"id":{
"shape":"Uuid",
"documentation":"<p>The unique ID of the form.</p>"
},
"name":{
"shape":"FormName",
"documentation":"<p>The name of the form.</p>"
},
"schemaVersion":{
"shape":"String",
"documentation":"<p>The schema version of the form when it was imported.</p>"
},
"sectionalElements":{
"shape":"SectionalElementMap",
"documentation":"<p>Stores the visual helper elements for the form that are not associated with any data.</p>"
},
"style":{
"shape":"FormStyle",
"documentation":"<p>Stores the configuration for the form's style.</p>"
},
"tags":{
"shape":"Tags",
"documentation":"<p>One or more key-value pairs to use when tagging the form.</p>"
}
},
"documentation":"<p>Contains the configuration settings for a <code>Form</code> user interface (UI) element for an Amplify app. A form is a component you can add to your project by specifying a data source as the default configuration for the form.</p>"
},
"FormActionType":{
"type":"string",
"enum":[
"create",
"update"
]
},
"FormBindingElement":{
"type":"structure",
"required":[
@ -1120,6 +1640,173 @@
"key":{"shape":"String"},
"value":{"shape":"FormBindingElement"}
},
"FormButton":{
"type":"structure",
"members":{
"children":{
"shape":"String",
"documentation":"<p>Describes the button's properties.</p>"
},
"excluded":{
"shape":"Boolean",
"documentation":"<p>Specifies whether the button is visible on the form.</p>"
},
"position":{
"shape":"FieldPosition",
"documentation":"<p>The position of the button.</p>"
}
},
"documentation":"<p>Describes the configuration for a button UI element that is a part of a form.</p>"
},
"FormButtonsPosition":{
"type":"string",
"enum":[
"top",
"bottom",
"top_and_bottom"
]
},
"FormCTA":{
"type":"structure",
"members":{
"cancel":{
"shape":"FormButton",
"documentation":"<p>Displays a cancel button.</p>"
},
"clear":{
"shape":"FormButton",
"documentation":"<p>Displays a clear button.</p>"
},
"position":{
"shape":"FormButtonsPosition",
"documentation":"<p>The position of the button.</p>"
},
"submit":{
"shape":"FormButton",
"documentation":"<p>Displays a submit button.</p>"
}
},
"documentation":"<p>Describes the call to action button configuration for the form.</p>"
},
"FormDataSourceType":{
"type":"string",
"enum":[
"DataStore",
"Custom"
]
},
"FormDataTypeConfig":{
"type":"structure",
"required":[
"dataSourceType",
"dataTypeName"
],
"members":{
"dataSourceType":{
"shape":"FormDataSourceType",
"documentation":"<p>The data source type, either an Amplify DataStore model or a custom data type.</p>"
},
"dataTypeName":{
"shape":"String",
"documentation":"<p>The unique name of the data type you are using as the data source for the form.</p>"
}
},
"documentation":"<p>Describes the data type configuration for the data source associated with a form.</p>"
},
"FormInputValueProperty":{
"type":"structure",
"members":{
"value":{
"shape":"String",
"documentation":"<p>The value to assign to the input field.</p>"
}
},
"documentation":"<p>Describes the configuration for an input field on a form. Use <code>FormInputValueProperty</code> to specify the values to render or bind by default.</p>"
},
"FormList":{
"type":"list",
"member":{"shape":"Form"}
},
"FormName":{
"type":"string",
"max":255,
"min":1
},
"FormStyle":{
"type":"structure",
"members":{
"horizontalGap":{
"shape":"FormStyleConfig",
"documentation":"<p>The spacing for the horizontal gap.</p>"
},
"outerPadding":{
"shape":"FormStyleConfig",
"documentation":"<p>The size of the outer padding for the form.</p>"
},
"verticalGap":{
"shape":"FormStyleConfig",
"documentation":"<p>The spacing for the vertical gap.</p>"
}
},
"documentation":"<p>Describes the configuration for the form's style.</p>"
},
"FormStyleConfig":{
"type":"structure",
"members":{
"tokenReference":{
"shape":"String",
"documentation":"<p>A reference to a design token to use to bind the form's style properties to an existing theme.</p>"
},
"value":{
"shape":"String",
"documentation":"<p>The value of the style setting.</p>"
}
},
"documentation":"<p>Describes the configuration settings for the form's style properties.</p>",
"union":true
},
"FormSummary":{
"type":"structure",
"required":[
"appId",
"dataType",
"environmentName",
"formActionType",
"id",
"name"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID for the app associated with the form summary.</p>"
},
"dataType":{
"shape":"FormDataTypeConfig",
"documentation":"<p>The form's data source type.</p>"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is part of the Amplify app.</p>"
},
"formActionType":{
"shape":"FormActionType",
"documentation":"<p>The type of operation to perform on the form.</p>"
},
"id":{
"shape":"Uuid",
"documentation":"<p>The ID of the form.</p>"
},
"name":{
"shape":"FormName",
"documentation":"<p>The name of the form.</p>"
}
},
"documentation":"<p>Describes the basic information about a form.</p>"
},
"FormSummaryList":{
"type":"list",
"member":{"shape":"FormSummary"}
},
"GetComponentRequest":{
"type":"structure",
"required":[
@ -1158,6 +1845,75 @@
},
"payload":"component"
},
"GetFormRequest":{
"type":"structure",
"required":[
"appId",
"environmentName",
"id"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID of the Amplify app.</p>",
"location":"uri",
"locationName":"appId"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
},
"id":{
"shape":"Uuid",
"documentation":"<p>The unique ID of the form.</p>",
"location":"uri",
"locationName":"id"
}
}
},
"GetFormResponse":{
"type":"structure",
"members":{
"form":{
"shape":"Form",
"documentation":"<p>Represents the configuration settings for the form.</p>"
}
},
"payload":"form"
},
"GetMetadataRequest":{
"type":"structure",
"required":[
"appId",
"environmentName"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID of the Amplify app.</p>",
"location":"uri",
"locationName":"appId"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
}
}
},
"GetMetadataResponse":{
"type":"structure",
"required":["features"],
"members":{
"features":{
"shape":"FeaturesMap",
"documentation":"<p>Represents the configuration settings for the features metadata.</p>"
}
}
},
"GetThemeRequest":{
"type":"structure",
"required":[
@ -1278,6 +2034,58 @@
}
}
},
"ListFormsLimit":{
"type":"integer",
"max":100,
"min":1
},
"ListFormsRequest":{
"type":"structure",
"required":[
"appId",
"environmentName"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID for the Amplify app.</p>",
"location":"uri",
"locationName":"appId"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is a part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
},
"maxResults":{
"shape":"ListFormsLimit",
"documentation":"<p>The maximum number of forms to retrieve.</p>",
"location":"querystring",
"locationName":"maxResults"
},
"nextToken":{
"shape":"String",
"documentation":"<p>The token to request the next page of results.</p>",
"location":"querystring",
"locationName":"nextToken"
}
}
},
"ListFormsResponse":{
"type":"structure",
"required":["entities"],
"members":{
"entities":{
"shape":"FormSummaryList",
"documentation":"<p>The list of forms for the Amplify app.</p>"
},
"nextToken":{
"shape":"String",
"documentation":"<p>The pagination token that's included if more results are available.</p>"
}
}
},
"ListThemesLimit":{
"type":"integer",
"max":100,
@ -1353,6 +2161,10 @@
},
"documentation":"<p>Represents the state configuration when an action modifies a property of another element within the same component.</p>"
},
"NumValues":{
"type":"list",
"member":{"shape":"Integer"}
},
"Predicate":{
"type":"structure",
"members":{
@ -1383,6 +2195,51 @@
"type":"list",
"member":{"shape":"Predicate"}
},
"PutMetadataFlagBody":{
"type":"structure",
"required":["newValue"],
"members":{
"newValue":{
"shape":"String",
"documentation":"<p>The new information to store.</p>"
}
},
"documentation":"<p>Stores the metadata information about a feature on a form or view.</p>"
},
"PutMetadataFlagRequest":{
"type":"structure",
"required":[
"appId",
"body",
"environmentName",
"featureName"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID for the Amplify app.</p>",
"location":"uri",
"locationName":"appId"
},
"body":{
"shape":"PutMetadataFlagBody",
"documentation":"<p>The metadata information to store.</p>"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
},
"featureName":{
"shape":"String",
"documentation":"<p>The name of the feature associated with the metadata.</p>",
"location":"uri",
"locationName":"featureName"
}
},
"payload":"body"
},
"RefreshTokenRequest":{
"type":"structure",
"required":[
@ -1455,6 +2312,38 @@
},
"exception":true
},
"SectionalElement":{
"type":"structure",
"required":["type"],
"members":{
"level":{
"shape":"Integer",
"documentation":"<p>Specifies the size of the font for a <code>Heading</code> sectional element. Valid values are <code>1 | 2 | 3 | 4 | 5 | 6</code>.</p>"
},
"orientation":{
"shape":"String",
"documentation":"<p>Specifies the orientation for a <code>Divider</code> sectional element. Valid values are <code>horizontal</code> or <code>vertical</code>.</p>"
},
"position":{
"shape":"FieldPosition",
"documentation":"<p>Specifies the position of the text in a field for a <code>Text</code> sectional element.</p>"
},
"text":{
"shape":"String",
"documentation":"<p>The text for a <code>Text</code> sectional element.</p>"
},
"type":{
"shape":"String",
"documentation":"<p>The type of sectional element. Valid values are <code>Heading</code>, <code>Text</code>, and <code>Divider</code>.</p>"
}
},
"documentation":"<p>Stores the configuration information for a visual helper element for a form. A sectional element can be a header, a text block, or a divider. These elements are static and not associated with any data.</p>"
},
"SectionalElementMap":{
"type":"map",
"key":{"shape":"String"},
"value":{"shape":"SectionalElement"}
},
"SensitiveString":{
"type":"string",
"sensitive":true
@ -1500,6 +2389,10 @@
"type":"list",
"member":{"shape":"SortProperty"}
},
"StrValues":{
"type":"list",
"member":{"shape":"String"}
},
"String":{"type":"string"},
"SyntheticTimestamp_date_time":{
"type":"timestamp",
@ -1648,6 +2541,18 @@
"type":"string",
"enum":["figma"]
},
"UnauthorizedException":{
"type":"structure",
"members":{
"message":{"shape":"String"}
},
"documentation":"<p>You don't have permission to perform this operation.</p>",
"error":{
"httpStatusCode":401,
"senderFault":true
},
"exception":true
},
"UpdateComponentData":{
"type":"structure",
"members":{
@ -1753,6 +2658,95 @@
},
"payload":"entity"
},
"UpdateFormData":{
"type":"structure",
"members":{
"cta":{
"shape":"FormCTA",
"documentation":"<p>The <code>FormCTA</code> object that stores the call to action configuration for the form.</p>"
},
"dataType":{
"shape":"FormDataTypeConfig",
"documentation":"<p>The type of data source to use to create the form.</p>"
},
"fields":{
"shape":"FieldsMap",
"documentation":"<p>The configuration information for the form's fields.</p>"
},
"formActionType":{
"shape":"FormActionType",
"documentation":"<p>Specifies whether to perform a create or update action on the form.</p>"
},
"name":{
"shape":"FormName",
"documentation":"<p>The name of the form.</p>"
},
"schemaVersion":{
"shape":"String",
"documentation":"<p>The schema version of the form.</p>"
},
"sectionalElements":{
"shape":"SectionalElementMap",
"documentation":"<p>The configuration information for the visual helper elements for the form. These elements are not associated with any data.</p>"
},
"style":{
"shape":"FormStyle",
"documentation":"<p>The configuration for the form's style.</p>"
}
},
"documentation":"<p>Updates and saves all of the information about a form, based on form ID.</p>"
},
"UpdateFormRequest":{
"type":"structure",
"required":[
"appId",
"environmentName",
"id",
"updatedForm"
],
"members":{
"appId":{
"shape":"String",
"documentation":"<p>The unique ID for the Amplify app.</p>",
"location":"uri",
"locationName":"appId"
},
"clientToken":{
"shape":"String",
"documentation":"<p>The unique client token.</p>",
"idempotencyToken":true,
"location":"querystring",
"locationName":"clientToken"
},
"environmentName":{
"shape":"String",
"documentation":"<p>The name of the backend environment that is part of the Amplify app.</p>",
"location":"uri",
"locationName":"environmentName"
},
"id":{
"shape":"Uuid",
"documentation":"<p>The unique ID for the form.</p>",
"location":"uri",
"locationName":"id"
},
"updatedForm":{
"shape":"UpdateFormData",
"documentation":"<p>The request accepts the following data in JSON format.</p>"
}
},
"payload":"updatedForm"
},
"UpdateFormResponse":{
"type":"structure",
"members":{
"entity":{
"shape":"Form",
"documentation":"<p>Describes the configuration of the updated form.</p>"
}
},
"payload":"entity"
},
"UpdateThemeData":{
"type":"structure",
"required":["values"],
@ -1827,7 +2821,41 @@
},
"payload":"entity"
},
"Uuid":{"type":"string"}
"Uuid":{"type":"string"},
"ValidationsList":{
"type":"list",
"member":{"shape":"FieldValidationConfiguration"}
},
"ValueMapping":{
"type":"structure",
"required":["value"],
"members":{
"displayValue":{
"shape":"FormInputValueProperty",
"documentation":"<p>The value to display for the complex object.</p>"
},
"value":{
"shape":"FormInputValueProperty",
"documentation":"<p>The complex object.</p>"
}
},
"documentation":"<p>Associates a complex object with a display value. Use <code>ValueMapping</code> to store how to represent complex objects when they are displayed.</p>"
},
"ValueMappingList":{
"type":"list",
"member":{"shape":"ValueMapping"}
},
"ValueMappings":{
"type":"structure",
"required":["values"],
"members":{
"values":{
"shape":"ValueMappingList",
"documentation":"<p>The value and display value pairs.</p>"
}
},
"documentation":"<p>Represents the data binding configuration for a value map.</p>"
}
},
"documentation":"<p>The Amplify UI Builder API provides a programmatic interface for creating and configuring user interface (UI) component libraries and themes for use in your Amplify applications. You can then connect these UI components to an application's backend Amazon Web Services resources.</p> <p>You can also use the Amplify Studio visual designer to create UI components and model data for an app. For more information, see <a href=\"https://docs.amplify.aws/console/adminui/intro\">Introduction</a> in the <i>Amplify Docs</i>.</p> <p>The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and documentation for client app development. For more information, see the <a href=\"https://docs.amplify.aws/\">Amplify Framework</a>. For more information about deploying an Amplify application to Amazon Web Services, see the <a href=\"https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html\">Amplify User Guide</a>.</p>"
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apigateway-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apigateway-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apigateway.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://apigateway.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -6536,7 +6536,7 @@
"members":{
"insecureSkipVerification":{
"shape":"Boolean",
"documentation":"<p>Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a supported certificate authority. This isnt recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.</p>"
"documentation":"<p>Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a supported certificate authority. This isnt recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for <code>HTTP</code> and <code>HTTP_PROXY</code> integrations.</p> <important> <p>Enabling <code>insecureSkipVerification</code> isn't recommended, especially for integrations with public HTTPS endpoints. If you enable <code>insecureSkipVerification</code>, you increase the risk of man-in-the-middle attacks.</p> </important>"
}
},
"documentation":"<p>Specifies the TLS configuration for an integration.</p>"

View file

@ -0,0 +1,309 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://execute-api-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://execute-api-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://execute-api.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://execute-api.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apigateway-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apigateway-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apigateway.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://apigateway.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,353 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appconfig-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"ref": "Region"
},
"us-gov-west-1"
]
}
],
"endpoint": {
"url": "https://appconfig.us-gov-west-1.amazonaws.com",
"properties": {},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"ref": "Region"
},
"us-gov-east-1"
]
}
],
"endpoint": {
"url": "https://appconfig.us-gov-east-1.amazonaws.com",
"properties": {},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [],
"endpoint": {
"url": "https://appconfig-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appconfig.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://appconfig.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,720 @@
{
"version": "1.0",
"examples": {
"CreateApplication": [
{
"input": {
"Description": "An application used for creating an example.",
"Name": "example-application"
},
"output": {
"Description": "An application used for creating an example.",
"Id": "339ohji",
"Name": "example-application"
},
"comments": {
},
"description": "The following create-application example creates an application in AWS AppConfig.",
"id": "to-create-an-application-1632264511615",
"title": "To create an application"
}
],
"CreateConfigurationProfile": [
{
"input": {
"ApplicationId": "339ohji",
"LocationUri": "ssm-parameter://Example-Parameter",
"Name": "Example-Configuration-Profile",
"RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
},
"output": {
"ApplicationId": "339ohji",
"Id": "ur8hx2f",
"LocationUri": "ssm-parameter://Example-Parameter",
"Name": "Example-Configuration-Profile",
"RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
},
"comments": {
},
"description": "The following create-configuration-profile example creates a configuration profile using a configuration stored in Parameter Store, a capability of Systems Manager.",
"id": "to-create-a-configuration-profile-1632264580336",
"title": "To create a configuration profile"
}
],
"CreateDeploymentStrategy": [
{
"input": {
"DeploymentDurationInMinutes": 15,
"GrowthFactor": 25,
"Name": "Example-Deployment",
"ReplicateTo": "SSM_DOCUMENT"
},
"output": {
"DeploymentDurationInMinutes": 15,
"FinalBakeTimeInMinutes": 0,
"GrowthFactor": 25,
"GrowthType": "LINEAR",
"Id": "1225qzk",
"Name": "Example-Deployment",
"ReplicateTo": "SSM_DOCUMENT"
},
"comments": {
},
"description": "The following create-deployment-strategy example creates a deployment strategy called Example-Deployment that takes 15 minutes and deploys the configuration to 25% of the application at a time. The strategy is also copied to an SSM Document.",
"id": "to-create-a-deployment-strategy-1632264783812",
"title": "To create a deployment strategy"
}
],
"CreateEnvironment": [
{
"input": {
"ApplicationId": "339ohji",
"Name": "Example-Environment"
},
"output": {
"ApplicationId": "339ohji",
"Id": "54j1r29",
"Name": "Example-Environment",
"State": "READY_FOR_DEPLOYMENT"
},
"comments": {
},
"description": "The following create-environment example creates an AWS AppConfig environment named Example-Environment using the application you created using create-application",
"id": "to-create-an-environment-1632265124975",
"title": "To create an environment"
}
],
"CreateHostedConfigurationVersion": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"Content": "eyAiTmFtZSI6ICJFeGFtcGxlQXBwbGljYXRpb24iLCAiSWQiOiBFeGFtcGxlSUQsICJSYW5rIjogNyB9",
"ContentType": "text",
"LatestVersionNumber": 1
},
"output": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"ContentType": "text",
"VersionNumber": 1
},
"comments": {
},
"description": "The following create-hosted-configuration-version example creates a new configuration in the AWS AppConfig configuration store.",
"id": "to-create-a-hosted-configuration-version-1632265196980",
"title": "To create a hosted configuration version"
}
],
"DeleteApplication": [
{
"input": {
"ApplicationId": "339ohji"
},
"comments": {
},
"description": "The following delete-application example deletes the specified application. \n",
"id": "to-delete-an-application-1632265343951",
"title": "To delete an application"
}
],
"DeleteConfigurationProfile": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f"
},
"comments": {
},
"description": "The following delete-configuration-profile example deletes the specified configuration profile.",
"id": "to-delete-a-configuration-profile-1632265401308",
"title": "To delete a configuration profile"
}
],
"DeleteDeploymentStrategy": [
{
"input": {
"DeploymentStrategyId": "1225qzk"
},
"comments": {
},
"description": "The following delete-deployment-strategy example deletes the specified deployment strategy.",
"id": "to-delete-a-deployment-strategy-1632265473708",
"title": "To delete a deployment strategy"
}
],
"DeleteEnvironment": [
{
"input": {
"ApplicationId": "339ohji",
"EnvironmentId": "54j1r29"
},
"comments": {
},
"description": "The following delete-environment example deletes the specified application environment.",
"id": "to-delete-an-environment-1632265641044",
"title": "To delete an environment"
}
],
"DeleteHostedConfigurationVersion": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"VersionNumber": 1
},
"comments": {
},
"description": "The following delete-hosted-configuration-version example deletes a configuration version hosted in the AWS AppConfig configuration store.",
"id": "to-delete-a-hosted-configuration-version-1632265720740",
"title": "To delete a hosted configuration version"
}
],
"GetApplication": [
{
"input": {
"ApplicationId": "339ohji"
},
"output": {
"Id": "339ohji",
"Name": "example-application"
},
"comments": {
},
"description": "The following get-application example lists the details of the specified application.",
"id": "to-list-details-of-an-application-1632265864702",
"title": "To list details of an application"
}
],
"GetConfiguration": [
{
"input": {
"Application": "example-application",
"ClientId": "example-id",
"Configuration": "Example-Configuration-Profile",
"Environment": "Example-Environment"
},
"output": {
"ConfigurationVersion": "1",
"ContentType": "application/octet-stream"
},
"comments": {
},
"description": "The following get-configuration example returns the configuration details of the example application. On subsequent calls to get-configuration, use the client-configuration-version parameter to only update the configuration of your application if the version has changed. Only updating the configuration when the version has changed avoids excess charges incurred by calling get-configuration.",
"id": "to-retrieve-configuration-details-1632265954314",
"title": "To retrieve configuration details"
}
],
"GetConfigurationProfile": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f"
},
"output": {
"ApplicationId": "339ohji",
"Id": "ur8hx2f",
"LocationUri": "ssm-parameter://Example-Parameter",
"Name": "Example-Configuration-Profile",
"RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
},
"comments": {
},
"description": "The following get-configuration-profile example returns the details of the specified configuration profile.",
"id": "to-retrieve-configuration-profile-details-1632266081013",
"title": "To retrieve configuration profile details"
}
],
"GetDeployment": [
{
"input": {
"ApplicationId": "339ohji",
"DeploymentNumber": 1,
"EnvironmentId": "54j1r29"
},
"output": {
"ApplicationId": "339ohji",
"CompletedAt": "2021-09-17T21:59:03.888000+00:00",
"ConfigurationLocationUri": "ssm-parameter://Example-Parameter",
"ConfigurationName": "Example-Configuration-Profile",
"ConfigurationProfileId": "ur8hx2f",
"ConfigurationVersion": "1",
"DeploymentDurationInMinutes": 15,
"DeploymentNumber": 1,
"DeploymentStrategyId": "1225qzk",
"EnvironmentId": "54j1r29",
"EventLog": [
{
"Description": "Deployment completed",
"EventType": "DEPLOYMENT_COMPLETED",
"OccurredAt": "2021-09-17T21:59:03.888000+00:00",
"TriggeredBy": "APPCONFIG"
},
{
"Description": "Deployment bake time started",
"EventType": "BAKE_TIME_STARTED",
"OccurredAt": "2021-09-17T21:58:57.722000+00:00",
"TriggeredBy": "APPCONFIG"
},
{
"Description": "Configuration available to 100.00% of clients",
"EventType": "PERCENTAGE_UPDATED",
"OccurredAt": "2021-09-17T21:55:56.816000+00:00",
"TriggeredBy": "APPCONFIG"
},
{
"Description": "Configuration available to 75.00% of clients",
"EventType": "PERCENTAGE_UPDATED",
"OccurredAt": "2021-09-17T21:52:56.567000+00:00",
"TriggeredBy": "APPCONFIG"
},
{
"Description": "Configuration available to 50.00% of clients",
"EventType": "PERCENTAGE_UPDATED",
"OccurredAt": "2021-09-17T21:49:55.737000+00:00",
"TriggeredBy": "APPCONFIG"
},
{
"Description": "Configuration available to 25.00% of clients",
"EventType": "PERCENTAGE_UPDATED",
"OccurredAt": "2021-09-17T21:46:55.187000+00:00",
"TriggeredBy": "APPCONFIG"
},
{
"Description": "Deployment started",
"EventType": "DEPLOYMENT_STARTED",
"OccurredAt": "2021-09-17T21:43:54.205000+00:00",
"TriggeredBy": "USER"
}
],
"FinalBakeTimeInMinutes": 0,
"GrowthFactor": 25,
"GrowthType": "LINEAR",
"PercentageComplete": 100,
"StartedAt": "2021-09-17T21:43:54.205000+00:00",
"State": "COMPLETE"
},
"comments": {
},
"description": "The following get-deployment example lists details of the deployment to the application in the specified environment and deployment.",
"id": "to-retrieve-deployment-details-1633976766883",
"title": "To retrieve deployment details"
}
],
"GetDeploymentStrategy": [
{
"input": {
"DeploymentStrategyId": "1225qzk"
},
"output": {
"DeploymentDurationInMinutes": 15,
"FinalBakeTimeInMinutes": 0,
"GrowthFactor": 25,
"GrowthType": "LINEAR",
"Id": "1225qzk",
"Name": "Example-Deployment",
"ReplicateTo": "SSM_DOCUMENT"
},
"comments": {
},
"description": "The following get-deployment-strategy example lists the details of the specified deployment strategy.",
"id": "to-retrieve-details-of-a-deployment-strategy-1632266385805",
"title": "To retrieve details of a deployment strategy"
}
],
"GetEnvironment": [
{
"input": {
"ApplicationId": "339ohji",
"EnvironmentId": "54j1r29"
},
"output": {
"ApplicationId": "339ohji",
"Id": "54j1r29",
"Name": "Example-Environment",
"State": "READY_FOR_DEPLOYMENT"
},
"comments": {
},
"description": "The following get-environment example returns the details and state of the specified environment.",
"id": "to-retrieve-environment-details-1632266924806",
"title": "To retrieve environment details"
}
],
"GetHostedConfigurationVersion": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"VersionNumber": 1
},
"output": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"ContentType": "application/json",
"VersionNumber": 1
},
"comments": {
},
"description": "The following get-hosted-configuration-version example retrieves the configuration details of the AWS AppConfig hosted configuration.",
"id": "to-retrieve-hosted-configuration-details-1632267003527",
"title": "To retrieve hosted configuration details"
}
],
"ListApplications": [
{
"input": {
},
"output": {
"Items": [
{
"Description": "An application used for creating an example.",
"Id": "339ohji",
"Name": "test-application"
},
{
"Id": "rwalwu7",
"Name": "Test-Application"
}
]
},
"comments": {
},
"description": "The following list-applications example lists the available applications in your AWS account.",
"id": "to-list-the-available-applications-1632267111131",
"title": "To list the available applications"
}
],
"ListConfigurationProfiles": [
{
"input": {
"ApplicationId": "339ohji"
},
"output": {
"Items": [
{
"ApplicationId": "339ohji",
"Id": "ur8hx2f",
"LocationUri": "ssm-parameter://Example-Parameter",
"Name": "Example-Configuration-Profile"
}
]
},
"comments": {
},
"description": "The following list-configuration-profiles example lists the available configuration profiles for the specified application.",
"id": "to-list-the-available-configuration-profiles-1632267193265",
"title": "To list the available configuration profiles"
}
],
"ListDeploymentStrategies": [
{
"input": {
},
"output": {
"Items": [
{
"DeploymentDurationInMinutes": 15,
"FinalBakeTimeInMinutes": 0,
"GrowthFactor": 25,
"GrowthType": "LINEAR",
"Id": "1225qzk",
"Name": "Example-Deployment",
"ReplicateTo": "SSM_DOCUMENT"
}
]
},
"comments": {
},
"description": "The following list-deployment-strategies example lists the available deployment strategies in your AWS account.",
"id": "to-list-the-available-deployment-strategies-1632267364180",
"title": "To list the available deployment strategies"
}
],
"ListDeployments": [
{
"input": {
"ApplicationId": "339ohji",
"EnvironmentId": "54j1r29"
},
"output": {
"Items": [
{
"CompletedAt": "2021-09-17T21:59:03.888000+00:00",
"ConfigurationName": "Example-Configuration-Profile",
"ConfigurationVersion": "1",
"DeploymentDurationInMinutes": 15,
"DeploymentNumber": 1,
"FinalBakeTimeInMinutes": 0,
"GrowthFactor": 25,
"GrowthType": "LINEAR",
"PercentageComplete": 100,
"StartedAt": "2021-09-17T21:43:54.205000+00:00",
"State": "COMPLETE"
}
]
},
"comments": {
},
"description": "The following list-deployments example lists the available deployments in your AWS account for the specified application and environment.",
"id": "to-list-the-available-deployments-1632267282025",
"title": "To list the available deployments"
}
],
"ListEnvironments": [
{
"input": {
"ApplicationId": "339ohji"
},
"output": {
"Items": [
{
"ApplicationId": "339ohji",
"Id": "54j1r29",
"Name": "Example-Environment",
"State": "READY_FOR_DEPLOYMENT"
}
]
},
"comments": {
},
"description": "The following list-environments example lists the available environments in your AWS account for the specified application.",
"id": "to-list-the-available-environments-1632267474389",
"title": "To list the available environments"
}
],
"ListHostedConfigurationVersions": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f"
},
"output": {
"Items": [
{
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"ContentType": "application/json",
"VersionNumber": 1
}
]
},
"comments": {
},
"description": "The following list-hosted-configuration-versions example lists the configurations versions hosted in the AWS AppConfig hosted configuration store for the specified application and configuration profile.",
"id": "to-list-the-available-hosted-configuration-versions-1632267647667",
"title": "To list the available hosted configuration versions"
}
],
"ListTagsForResource": [
{
"input": {
"ResourceArn": "arn:aws:appconfig:us-east-1:111122223333:application/339ohji"
},
"output": {
"Tags": {
"group1": "1"
}
},
"comments": {
},
"description": "The following list-tags-for-resource example lists the tags of a specified application.",
"id": "to-list-the-tags-of-an-application-1632328796560",
"title": "To list the tags of an application"
}
],
"StartDeployment": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"ConfigurationVersion": "1",
"DeploymentStrategyId": "1225qzk",
"Description": "",
"EnvironmentId": "54j1r29",
"Tags": {
}
},
"output": {
"ApplicationId": "339ohji",
"ConfigurationLocationUri": "ssm-parameter://Example-Parameter",
"ConfigurationName": "Example-Configuration-Profile",
"ConfigurationProfileId": "ur8hx2f",
"ConfigurationVersion": "1",
"DeploymentDurationInMinutes": 15,
"DeploymentNumber": 1,
"DeploymentStrategyId": "1225qzk",
"EnvironmentId": "54j1r29",
"EventLog": [
{
"Description": "Deployment started",
"EventType": "DEPLOYMENT_STARTED",
"OccurredAt": "2021-09-17T21:43:54.205000+00:00",
"TriggeredBy": "USER"
}
],
"FinalBakeTimeInMinutes": 0,
"GrowthFactor": 25,
"GrowthType": "LINEAR",
"PercentageComplete": 1.0,
"StartedAt": "2021-09-17T21:43:54.205000+00:00",
"State": "DEPLOYING"
},
"comments": {
},
"description": "The following start-deployment example starts a deployment to the application using the specified environment, deployment strategy, and configuration profile.",
"id": "to-start-a-configuration-deployment-1632328956790",
"title": "To start a configuration deployment"
}
],
"StopDeployment": [
{
"input": {
"ApplicationId": "339ohji",
"DeploymentNumber": 2,
"EnvironmentId": "54j1r29"
},
"output": {
"DeploymentDurationInMinutes": 15,
"DeploymentNumber": 2,
"FinalBakeTimeInMinutes": 0,
"GrowthFactor": 25.0,
"PercentageComplete": 1.0
},
"comments": {
},
"description": "The following stop-deployment example stops the deployment of an application configuration to the specified environment.",
"id": "to-stop-configuration-deployment-1632329139126",
"title": "To stop configuration deployment"
}
],
"TagResource": [
{
"input": {
"ResourceArn": "arn:aws:appconfig:us-east-1:111122223333:application/339ohji",
"Tags": {
"group1": "1"
}
},
"comments": {
},
"description": "The following tag-resource example tags an application resource.",
"id": "to-tag-an-application-1632330350645",
"title": "To tag an application"
}
],
"UntagResource": [
{
"input": {
"ResourceArn": "arn:aws:appconfig:us-east-1:111122223333:application/339ohji",
"TagKeys": [
"group1"
]
},
"comments": {
},
"description": "The following untag-resource example removes the group1 tag from the specified application.",
"id": "to-remove-a-tag-from-an-application-1632330429881",
"title": "To remove a tag from an application"
}
],
"UpdateApplication": [
{
"input": {
"ApplicationId": "339ohji",
"Description": "",
"Name": "Example-Application"
},
"output": {
"Description": "An application used for creating an example.",
"Id": "339ohji",
"Name": "Example-Application"
},
"comments": {
},
"description": "The following update-application example updates the name of the specified application.",
"id": "to-update-an-application-1632330585893",
"title": "To update an application"
}
],
"UpdateConfigurationProfile": [
{
"input": {
"ApplicationId": "339ohji",
"ConfigurationProfileId": "ur8hx2f",
"Description": "Configuration profile used for examples."
},
"output": {
"ApplicationId": "339ohji",
"Description": "Configuration profile used for examples.",
"Id": "ur8hx2f",
"LocationUri": "ssm-parameter://Example-Parameter",
"Name": "Example-Configuration-Profile",
"RetrievalRoleArn": "arn:aws:iam::111122223333:role/Example-App-Config-Role"
},
"comments": {
},
"description": "The following update-configuration-profile example updates the description of the specified configuration profile.",
"id": "to-update-a-configuration-profile-1632330721974",
"title": "To update a configuration profile"
}
],
"UpdateDeploymentStrategy": [
{
"input": {
"DeploymentStrategyId": "1225qzk",
"FinalBakeTimeInMinutes": 20
},
"output": {
"DeploymentDurationInMinutes": 15,
"FinalBakeTimeInMinutes": 20,
"GrowthFactor": 25,
"GrowthType": "LINEAR",
"Id": "1225qzk",
"Name": "Example-Deployment",
"ReplicateTo": "SSM_DOCUMENT"
},
"comments": {
},
"description": "The following update-deployment-strategy example updates final bake time to 20 minutes in the specified deployment strategy. ::\n",
"id": "to-update-a-deployment-strategy-1632330896602",
"title": "To update a deployment strategy"
}
],
"UpdateEnvironment": [
{
"input": {
"ApplicationId": "339ohji",
"Description": "An environment for examples.",
"EnvironmentId": "54j1r29"
},
"output": {
"ApplicationId": "339ohji",
"Description": "An environment for examples.",
"Id": "54j1r29",
"Name": "Example-Environment",
"State": "ROLLED_BACK"
},
"comments": {
},
"description": "The following update-environment example updates an environment's description.",
"id": "to-update-an-environment-1632331382428",
"title": "To update an environment"
}
],
"ValidateConfiguration": [
{
"input": {
"ApplicationId": "abc1234",
"ConfigurationProfileId": "ur8hx2f",
"ConfigurationVersion": "1"
},
"comments": {
},
"description": "The following validate-configuration example uses the validators in a configuration profile to validate a configuration.",
"id": "to-validate-a-configuration-1632331491365",
"title": "To validate a configuration"
}
]
}
}

View file

@ -26,7 +26,7 @@
{"shape":"BadRequestException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Creates an application. An application in AppConfig is a logical unit of code that provides capabilities for your customers. For example, an application can be a microservice that runs on Amazon EC2 instances, a mobile application installed by your users, a serverless application using Amazon API Gateway and Lambda, or any system you run on behalf of others.</p>"
"documentation":"<p>Creates an application. In AppConfig, an application is simply an organizational construct like a folder. This organizational construct has a relationship with some unit of executable code. For example, you could create an application called MyMobileApp to organize and manage configuration data for a mobile application installed by your users.</p>"
},
"CreateConfigurationProfile":{
"name":"CreateConfigurationProfile",
@ -73,7 +73,41 @@
{"shape":"ResourceNotFoundException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Creates an environment. For each application, you define one or more environments. An environment is a logical deployment group of AppConfig targets, such as applications in a <code>Beta</code> or <code>Production</code> environment. You can also define environments for application subcomponents such as the <code>Web</code>, <code>Mobile</code> and <code>Back-end</code> components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.</p>"
"documentation":"<p>Creates an environment. For each application, you define one or more environments. An environment is a deployment group of AppConfig targets, such as applications in a <code>Beta</code> or <code>Production</code> environment. You can also define environments for application subcomponents such as the <code>Web</code>, <code>Mobile</code> and <code>Back-end</code> components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.</p>"
},
"CreateExtension":{
"name":"CreateExtension",
"http":{
"method":"POST",
"requestUri":"/extensions",
"responseCode":201
},
"input":{"shape":"CreateExtensionRequest"},
"output":{"shape":"Extension"},
"errors":[
{"shape":"BadRequestException"},
{"shape":"ConflictException"},
{"shape":"ServiceQuotaExceededException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Creates an AppConfig extension. An extension augments your ability to inject logic or behavior at different points during the AppConfig workflow of creating or deploying a configuration.</p> <p>You can create your own extensions or use the Amazon Web Services-authored extensions provided by AppConfig. For most use-cases, to create your own extension, you must create an Lambda function to perform any computation and processing defined in the extension. For more information about extensions, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"CreateExtensionAssociation":{
"name":"CreateExtensionAssociation",
"http":{
"method":"POST",
"requestUri":"/extensionassociations",
"responseCode":201
},
"input":{"shape":"CreateExtensionAssociationRequest"},
"output":{"shape":"ExtensionAssociation"},
"errors":[
{"shape":"BadRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"InternalServerException"},
{"shape":"ServiceQuotaExceededException"}
],
"documentation":"<p>When you create an extension or configure an Amazon Web Services-authored extension, you associate the extension with an AppConfig application, environment, or configuration profile. For example, you can choose to run the <code>AppConfig deployment events to Amazon SNS</code> Amazon Web Services-authored extension and receive notifications on an Amazon SNS topic anytime a configuration deployment is started for a specific application. Defining which extension to associate with an AppConfig resource is called an <i>extension association</i>. An extension association is a specified relationship between an extension and an AppConfig resource, such as an application or a configuration profile. For more information about extensions and associations, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"CreateHostedConfigurationVersion":{
"name":"CreateHostedConfigurationVersion",
@ -156,6 +190,36 @@
],
"documentation":"<p>Deletes an environment. Deleting an environment does not delete a configuration from a host.</p>"
},
"DeleteExtension":{
"name":"DeleteExtension",
"http":{
"method":"DELETE",
"requestUri":"/extensions/{ExtensionIdentifier}",
"responseCode":204
},
"input":{"shape":"DeleteExtensionRequest"},
"errors":[
{"shape":"ResourceNotFoundException"},
{"shape":"InternalServerException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Deletes an AppConfig extension. You must delete all associations to an extension before you delete the extension.</p>"
},
"DeleteExtensionAssociation":{
"name":"DeleteExtensionAssociation",
"http":{
"method":"DELETE",
"requestUri":"/extensionassociations/{ExtensionAssociationId}",
"responseCode":204
},
"input":{"shape":"DeleteExtensionAssociationRequest"},
"errors":[
{"shape":"BadRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Deletes an extension association. This action doesn't delete extensions defined in the association.</p>"
},
"DeleteHostedConfigurationVersion":{
"name":"DeleteHostedConfigurationVersion",
"http":{
@ -267,7 +331,39 @@
{"shape":"InternalServerException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Retrieves information about an environment. An environment is a logical deployment group of AppConfig applications, such as applications in a <code>Production</code> environment or in an <code>EU_Region</code> environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration.</p>"
"documentation":"<p>Retrieves information about an environment. An environment is a deployment group of AppConfig applications, such as applications in a <code>Production</code> environment or in an <code>EU_Region</code> environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration.</p>"
},
"GetExtension":{
"name":"GetExtension",
"http":{
"method":"GET",
"requestUri":"/extensions/{ExtensionIdentifier}",
"responseCode":200
},
"input":{"shape":"GetExtensionRequest"},
"output":{"shape":"Extension"},
"errors":[
{"shape":"ResourceNotFoundException"},
{"shape":"InternalServerException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Returns information about an AppConfig extension.</p>"
},
"GetExtensionAssociation":{
"name":"GetExtensionAssociation",
"http":{
"method":"GET",
"requestUri":"/extensionassociations/{ExtensionAssociationId}",
"responseCode":200
},
"input":{"shape":"GetExtensionAssociationRequest"},
"output":{"shape":"ExtensionAssociation"},
"errors":[
{"shape":"BadRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Returns information about an AppConfig extension association. For more information about extensions and associations, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"GetHostedConfigurationVersion":{
"name":"GetHostedConfigurationVersion",
@ -363,6 +459,36 @@
],
"documentation":"<p>Lists the environments for an application.</p>"
},
"ListExtensionAssociations":{
"name":"ListExtensionAssociations",
"http":{
"method":"GET",
"requestUri":"/extensionassociations",
"responseCode":200
},
"input":{"shape":"ListExtensionAssociationsRequest"},
"output":{"shape":"ExtensionAssociations"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Lists all AppConfig extension associations in the account. For more information about extensions and associations, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"ListExtensions":{
"name":"ListExtensions",
"http":{
"method":"GET",
"requestUri":"/extensions",
"responseCode":200
},
"input":{"shape":"ListExtensionsRequest"},
"output":{"shape":"Extensions"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Lists all custom and Amazon Web Services-authored AppConfig extensions in the account. For more information about extensions, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"ListHostedConfigurationVersions":{
"name":"ListHostedConfigurationVersions",
"http":{
@ -522,6 +648,39 @@
],
"documentation":"<p>Updates an environment.</p>"
},
"UpdateExtension":{
"name":"UpdateExtension",
"http":{
"method":"PATCH",
"requestUri":"/extensions/{ExtensionIdentifier}",
"responseCode":200
},
"input":{"shape":"UpdateExtensionRequest"},
"output":{"shape":"Extension"},
"errors":[
{"shape":"BadRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ConflictException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Updates an AppConfig extension. For more information about extensions, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"UpdateExtensionAssociation":{
"name":"UpdateExtensionAssociation",
"http":{
"method":"PATCH",
"requestUri":"/extensionassociations/{ExtensionAssociationId}",
"responseCode":200
},
"input":{"shape":"UpdateExtensionAssociationRequest"},
"output":{"shape":"ExtensionAssociation"},
"errors":[
{"shape":"BadRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Updates an association. For more information about extensions and associations, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"ValidateConfiguration":{
"name":"ValidateConfiguration",
"http":{
@ -539,6 +698,91 @@
}
},
"shapes":{
"Action":{
"type":"structure",
"members":{
"Name":{
"shape":"Name",
"documentation":"<p>The action name.</p>"
},
"Description":{
"shape":"Description",
"documentation":"<p>Information about the action.</p>"
},
"Uri":{
"shape":"Uri",
"documentation":"<p>The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.</p>"
},
"RoleArn":{
"shape":"Arn",
"documentation":"<p>An Amazon Resource Name (ARN) for an Identity and Access Management assume role.</p>"
}
},
"documentation":"<p>An action defines the tasks the extension performs during the AppConfig workflow. Each action includes an action point such as <code>ON_CREATE_HOSTED_CONFIGURATION</code>, <code>PRE_DEPLOYMENT</code>, or <code>ON_DEPLOYMENT</code>. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each <i>action point</i> defined in the extension. You can specify the following actions for an extension:</p> <ul> <li> <p> <code>PRE_CREATE_HOSTED_CONFIGURATION_VERSION</code> </p> </li> <li> <p> <code>PRE_START_DEPLOYMENT</code> </p> </li> <li> <p> <code>ON_DEPLOYMENT_START</code> </p> </li> <li> <p> <code>ON_DEPLOYMENT_STEP</code> </p> </li> <li> <p> <code>ON_DEPLOYMENT_BAKING</code> </p> </li> <li> <p> <code>ON_DEPLOYMENT_COMPLETE</code> </p> </li> <li> <p> <code>ON_DEPLOYMENT_ROLLED_BACK</code> </p> </li> </ul>"
},
"ActionInvocation":{
"type":"structure",
"members":{
"ExtensionIdentifier":{
"shape":"Identifier",
"documentation":"<p>The name, the ID, or the Amazon Resource Name (ARN) of the extension.</p>"
},
"ActionName":{
"shape":"Name",
"documentation":"<p>The name of the action.</p>"
},
"Uri":{
"shape":"Uri",
"documentation":"<p>The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.</p>"
},
"RoleArn":{
"shape":"Arn",
"documentation":"<p>An Amazon Resource Name (ARN) for an Identity and Access Management assume role.</p>"
},
"ErrorMessage":{
"shape":"String",
"documentation":"<p>The error message when an extension invocation fails.</p>"
},
"ErrorCode":{
"shape":"String",
"documentation":"<p>The error code when an extension invocation fails.</p>"
},
"InvocationId":{
"shape":"Id",
"documentation":"<p>A system-generated ID for this invocation.</p>"
}
},
"documentation":"<p>An extension that was invoked as part of a deployment event.</p>"
},
"ActionInvocations":{
"type":"list",
"member":{"shape":"ActionInvocation"}
},
"ActionList":{
"type":"list",
"member":{"shape":"Action"},
"max":1,
"min":1
},
"ActionPoint":{
"type":"string",
"enum":[
"PRE_CREATE_HOSTED_CONFIGURATION_VERSION",
"PRE_START_DEPLOYMENT",
"ON_DEPLOYMENT_START",
"ON_DEPLOYMENT_STEP",
"ON_DEPLOYMENT_BAKING",
"ON_DEPLOYMENT_COMPLETE",
"ON_DEPLOYMENT_ROLLED_BACK"
]
},
"ActionsMap":{
"type":"map",
"key":{"shape":"ActionPoint"},
"value":{"shape":"ActionList"},
"max":5,
"min":1
},
"Application":{
"type":"structure",
"members":{
@ -573,6 +817,32 @@
}
}
},
"AppliedExtension":{
"type":"structure",
"members":{
"ExtensionId":{
"shape":"Id",
"documentation":"<p>The system-generated ID of the extension.</p>"
},
"ExtensionAssociationId":{
"shape":"Id",
"documentation":"<p>The system-generated ID for the association.</p>"
},
"VersionNumber":{
"shape":"Integer",
"documentation":"<p>The extension version number.</p>"
},
"Parameters":{
"shape":"ParameterValueMap",
"documentation":"<p>One or more parameters for the actions called by the extension.</p>"
}
},
"documentation":"<p>An extension that was invoked during a deployment.</p>"
},
"AppliedExtensions":{
"type":"list",
"member":{"shape":"AppliedExtension"}
},
"Arn":{
"type":"string",
"max":2048,
@ -609,6 +879,7 @@
"type":"blob",
"sensitive":true
},
"Boolean":{"type":"boolean"},
"BytesMeasure":{
"type":"string",
"enum":["KILOBYTES"]
@ -647,7 +918,7 @@
"documentation":"<p>The configuration profile ID.</p>"
},
"Name":{
"shape":"Name",
"shape":"LongName",
"documentation":"<p>The name of the configuration profile.</p>"
},
"Description":{
@ -684,7 +955,7 @@
"documentation":"<p>The ID of the configuration profile.</p>"
},
"Name":{
"shape":"Name",
"shape":"LongName",
"documentation":"<p>The name of the configuration profile.</p>"
},
"LocationUri":{
@ -765,7 +1036,7 @@
"locationName":"ApplicationId"
},
"Name":{
"shape":"Name",
"shape":"LongName",
"documentation":"<p>A name for the configuration profile.</p>"
},
"Description":{
@ -799,8 +1070,7 @@
"required":[
"Name",
"DeploymentDurationInMinutes",
"GrowthFactor",
"ReplicateTo"
"GrowthFactor"
],
"members":{
"Name":{
@ -818,7 +1088,7 @@
},
"FinalBakeTimeInMinutes":{
"shape":"MinutesBetween0And24Hours",
"documentation":"<p>The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.</p>"
"documentation":"<p>Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has been deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is triggered during this time, AppConfig rolls back the deployment. You must configure permissions for AppConfig to roll back based on CloudWatch alarms. For more information, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/getting-started-with-appconfig-cloudwatch-alarms-permissions.html\">Configuring permissions for rollback based on Amazon CloudWatch alarms</a> in the <i>AppConfig User Guide</i>.</p>"
},
"GrowthFactor":{
"shape":"GrowthFactor",
@ -870,6 +1140,72 @@
}
}
},
"CreateExtensionAssociationRequest":{
"type":"structure",
"required":[
"ExtensionIdentifier",
"ResourceIdentifier"
],
"members":{
"ExtensionIdentifier":{
"shape":"Identifier",
"documentation":"<p>The name, the ID, or the Amazon Resource Name (ARN) of the extension.</p>"
},
"ExtensionVersionNumber":{
"shape":"Integer",
"documentation":"<p>The version number of the extension. If not specified, AppConfig uses the maximum version of the extension.</p>",
"box":true
},
"ResourceIdentifier":{
"shape":"Identifier",
"documentation":"<p>The ARN of an application, configuration profile, or environment.</p>"
},
"Parameters":{
"shape":"ParameterValueMap",
"documentation":"<p>The parameter names and values defined in the extensions. Extension parameters marked <code>Required</code> must be entered for this field.</p>"
},
"Tags":{
"shape":"TagMap",
"documentation":"<p>Adds one or more tags for the specified extension association. Tags are metadata that help you categorize resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. </p>"
}
}
},
"CreateExtensionRequest":{
"type":"structure",
"required":[
"Name",
"Actions"
],
"members":{
"Name":{
"shape":"Name",
"documentation":"<p>A name for the extension. Each extension name in your account must be unique. Extension versions use the same name.</p>"
},
"Description":{
"shape":"Description",
"documentation":"<p>Information about the extension.</p>"
},
"Actions":{
"shape":"ActionsMap",
"documentation":"<p>The actions defined in the extension.</p>"
},
"Parameters":{
"shape":"ParameterMap",
"documentation":"<p>The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the <code>CreateExtensionAssociation</code> API action. For Lambda extension actions, these parameters are included in the Lambda request object.</p>"
},
"Tags":{
"shape":"TagMap",
"documentation":"<p>Adds one or more tags for the specified extension. Tags are metadata that help you categorize resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. </p>"
},
"LatestVersionNumber":{
"shape":"Integer",
"documentation":"<p>You can omit this field when you create an extension. When you create a new version, specify the most recent current version number. For example, you create version 3, enter 2 for this field.</p>",
"box":true,
"location":"header",
"locationName":"Latest-Version-Number"
}
}
},
"CreateHostedConfigurationVersionRequest":{
"type":"structure",
"required":[
@ -983,6 +1319,37 @@
}
}
},
"DeleteExtensionAssociationRequest":{
"type":"structure",
"required":["ExtensionAssociationId"],
"members":{
"ExtensionAssociationId":{
"shape":"Id",
"documentation":"<p>The ID of the extension association to delete.</p>",
"location":"uri",
"locationName":"ExtensionAssociationId"
}
}
},
"DeleteExtensionRequest":{
"type":"structure",
"required":["ExtensionIdentifier"],
"members":{
"ExtensionIdentifier":{
"shape":"Identifier",
"documentation":"<p>The name, ID, or Amazon Resource Name (ARN) of the extension you want to delete.</p>",
"location":"uri",
"locationName":"ExtensionIdentifier"
},
"VersionNumber":{
"shape":"Integer",
"documentation":"<p>A specific version of an extension to delete. If omitted, the highest version is deleted.</p>",
"box":true,
"location":"querystring",
"locationName":"version"
}
}
},
"DeleteHostedConfigurationVersionRequest":{
"type":"structure",
"required":[
@ -1085,6 +1452,10 @@
"CompletedAt":{
"shape":"Iso8601DateTime",
"documentation":"<p>The time the deployment completed. </p>"
},
"AppliedExtensions":{
"shape":"AppliedExtensions",
"documentation":"<p>A list of extensions that were processed as part of the deployment. The extensions that were previously associated to the configuration profile, environment, or the application when <code>StartDeployment</code> was called.</p>"
}
}
},
@ -1103,6 +1474,10 @@
"shape":"Description",
"documentation":"<p>A description of the deployment event. Descriptions include, but are not limited to, the user account or the Amazon CloudWatch alarm ARN that initiated a rollback, the percentage of hosts that received the deployment, or in the case of an internal error, a recommendation to attempt a new deployment.</p>"
},
"ActionInvocations":{
"shape":"ActionInvocations",
"documentation":"<p>The list of extensions that were invoked as part of the deployment.</p>"
},
"OccurredAt":{
"shape":"Iso8601DateTime",
"documentation":"<p>The date and time the event occurred.</p>"
@ -1321,6 +1696,146 @@
}
}
},
"Extension":{
"type":"structure",
"members":{
"Id":{
"shape":"Id",
"documentation":"<p>The system-generated ID of the extension.</p>"
},
"Name":{
"shape":"Name",
"documentation":"<p>The extension name.</p>"
},
"VersionNumber":{
"shape":"Integer",
"documentation":"<p>The extension version number.</p>"
},
"Arn":{
"shape":"Arn",
"documentation":"<p>The system-generated Amazon Resource Name (ARN) for the extension.</p>"
},
"Description":{
"shape":"Description",
"documentation":"<p>Information about the extension.</p>"
},
"Actions":{
"shape":"ActionsMap",
"documentation":"<p>The actions defined in the extension.</p>"
},
"Parameters":{
"shape":"ParameterMap",
"documentation":"<p>The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the <code>CreateExtensionAssociation</code> API action. For Lambda extension actions, these parameters are included in the Lambda request object.</p>"
}
}
},
"ExtensionAssociation":{
"type":"structure",
"members":{
"Id":{
"shape":"Identifier",
"documentation":"<p>The system-generated ID for the association.</p>"
},
"ExtensionArn":{
"shape":"Arn",
"documentation":"<p>The ARN of the extension defined in the association.</p>"
},
"ResourceArn":{
"shape":"Arn",
"documentation":"<p>The ARNs of applications, configuration profiles, or environments defined in the association.</p>"
},
"Arn":{
"shape":"Arn",
"documentation":"<p>The system-generated Amazon Resource Name (ARN) for the extension.</p>"
},
"Parameters":{
"shape":"ParameterValueMap",
"documentation":"<p>The parameter names and values defined in the association.</p>"
},
"ExtensionVersionNumber":{
"shape":"Integer",
"documentation":"<p>The version number for the extension defined in the association.</p>"
}
}
},
"ExtensionAssociationSummaries":{
"type":"list",
"member":{"shape":"ExtensionAssociationSummary"}
},
"ExtensionAssociationSummary":{
"type":"structure",
"members":{
"Id":{
"shape":"Identifier",
"documentation":"<p>The extension association ID. This ID is used to call other <code>ExtensionAssociation</code> API actions such as <code>GetExtensionAssociation</code> or <code>DeleteExtensionAssociation</code>.</p>"
},
"ExtensionArn":{
"shape":"Arn",
"documentation":"<p>The system-generated Amazon Resource Name (ARN) for the extension.</p>"
},
"ResourceArn":{
"shape":"Arn",
"documentation":"<p>The ARNs of applications, configuration profiles, or environments defined in the association.</p>"
}
},
"documentation":"<p>Information about an association between an extension and an AppConfig resource such as an application, environment, or configuration profile. Call <code>GetExtensionAssociation</code> to get more information about an association.</p>"
},
"ExtensionAssociations":{
"type":"structure",
"members":{
"Items":{
"shape":"ExtensionAssociationSummaries",
"documentation":"<p>The list of extension associations. Each item represents an extension association to an application, environment, or configuration profile. </p>"
},
"NextToken":{
"shape":"NextToken",
"documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
}
}
},
"ExtensionSummaries":{
"type":"list",
"member":{"shape":"ExtensionSummary"}
},
"ExtensionSummary":{
"type":"structure",
"members":{
"Id":{
"shape":"Id",
"documentation":"<p>The system-generated ID of the extension.</p>"
},
"Name":{
"shape":"Name",
"documentation":"<p>The extension name.</p>"
},
"VersionNumber":{
"shape":"Integer",
"documentation":"<p>The extension version number.</p>"
},
"Arn":{
"shape":"Arn",
"documentation":"<p>The system-generated Amazon Resource Name (ARN) for the extension.</p>"
},
"Description":{
"shape":"Description",
"documentation":"<p>Information about the extension.</p>"
}
},
"documentation":"<p>Information about an extension. Call <code>GetExtension</code> to get more information about an extension.</p>"
},
"Extensions":{
"type":"structure",
"members":{
"Items":{
"shape":"ExtensionSummaries",
"documentation":"<p>The list of available extensions. The list includes Amazon Web Services-authored and user-created extensions.</p>"
},
"NextToken":{
"shape":"NextToken",
"documentation":"<p>The token for the next set of items to return. Use this token to get the next set of results.</p>"
}
}
},
"Float":{"type":"float"},
"GetApplicationRequest":{
"type":"structure",
@ -1458,6 +1973,37 @@
}
}
},
"GetExtensionAssociationRequest":{
"type":"structure",
"required":["ExtensionAssociationId"],
"members":{
"ExtensionAssociationId":{
"shape":"Id",
"documentation":"<p>The extension association ID to get.</p>",
"location":"uri",
"locationName":"ExtensionAssociationId"
}
}
},
"GetExtensionRequest":{
"type":"structure",
"required":["ExtensionIdentifier"],
"members":{
"ExtensionIdentifier":{
"shape":"Identifier",
"documentation":"<p>The name, the ID, or the Amazon Resource Name (ARN) of the extension.</p>",
"location":"uri",
"locationName":"ExtensionIdentifier"
},
"VersionNumber":{
"shape":"Integer",
"documentation":"<p>The extension version number. If no version number was defined, AppConfig uses the highest version.</p>",
"box":true,
"location":"querystring",
"locationName":"version_number"
}
}
},
"GetHostedConfigurationVersionRequest":{
"type":"structure",
"required":[
@ -1585,6 +2131,11 @@
"type":"string",
"pattern":"[a-z0-9]{4,7}"
},
"Identifier":{
"type":"string",
"max":2048,
"min":1
},
"Integer":{"type":"integer"},
"InternalServerException":{
"type":"structure",
@ -1614,6 +2165,10 @@
"Type":{
"shape":"String",
"documentation":"<p>The type of error for an invalid configuration.</p>"
},
"Value":{
"shape":"String",
"documentation":"<p>Details about an error with Lambda when a synchronous extension experiences an error during an invocation.</p>"
}
},
"documentation":"<p>Detailed information about the bad request exception error when creating a hosted configuration version.</p>"
@ -1752,6 +2307,67 @@
}
}
},
"ListExtensionAssociationsRequest":{
"type":"structure",
"members":{
"ResourceIdentifier":{
"shape":"Arn",
"documentation":"<p>The ARN of an application, configuration profile, or environment.</p>",
"location":"querystring",
"locationName":"resource_identifier"
},
"ExtensionIdentifier":{
"shape":"Identifier",
"documentation":"<p>The name, the ID, or the Amazon Resource Name (ARN) of the extension.</p>",
"location":"querystring",
"locationName":"extension_identifier"
},
"ExtensionVersionNumber":{
"shape":"Integer",
"documentation":"<p>The version number for the extension defined in the association.</p>",
"box":true,
"location":"querystring",
"locationName":"extension_version_number"
},
"MaxResults":{
"shape":"MaxResults",
"documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
"box":true,
"location":"querystring",
"locationName":"max_results"
},
"NextToken":{
"shape":"NextToken",
"documentation":"<p>A token to start the list. Use this token to get the next set of results or pass null to get the first set of results. </p>",
"location":"querystring",
"locationName":"next_token"
}
}
},
"ListExtensionsRequest":{
"type":"structure",
"members":{
"MaxResults":{
"shape":"MaxResults",
"documentation":"<p>The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.</p>",
"box":true,
"location":"querystring",
"locationName":"max_results"
},
"NextToken":{
"shape":"NextToken",
"documentation":"<p>A token to start the list. Use this token to get the next set of results. </p>",
"location":"querystring",
"locationName":"next_token"
},
"Name":{
"shape":"QueryName",
"documentation":"<p>The extension name.</p>",
"location":"querystring",
"locationName":"name"
}
}
},
"ListHostedConfigurationVersionsRequest":{
"type":"structure",
"required":[
@ -1798,6 +2414,11 @@
}
}
},
"LongName":{
"type":"string",
"max":128,
"min":1
},
"MaxResults":{
"type":"integer",
"max":50,
@ -1839,6 +2460,34 @@
"max":2048,
"min":1
},
"Parameter":{
"type":"structure",
"members":{
"Description":{
"shape":"Description",
"documentation":"<p>Information about the parameter.</p>"
},
"Required":{
"shape":"Boolean",
"documentation":"<p>A parameter value must be specified in the extension association.</p>"
}
},
"documentation":"<p>A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked. Parameter values are specified in an extension association. For more information about extensions, see <a href=\"https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html\">Working with AppConfig extensions</a> in the <i>AppConfig User Guide</i>.</p>"
},
"ParameterMap":{
"type":"map",
"key":{"shape":"Name"},
"value":{"shape":"Parameter"},
"max":5,
"min":1
},
"ParameterValueMap":{
"type":"map",
"key":{"shape":"Name"},
"value":{"shape":"StringWithLengthBetween1And2048"},
"max":5,
"min":0
},
"PayloadTooLargeException":{
"type":"structure",
"members":{
@ -1856,6 +2505,11 @@
"max":100.0,
"min":1.0
},
"QueryName":{
"type":"string",
"max":64,
"min":1
},
"ReplicateTo":{
"type":"string",
"enum":[
@ -2188,6 +2842,51 @@
}
}
},
"UpdateExtensionAssociationRequest":{
"type":"structure",
"required":["ExtensionAssociationId"],
"members":{
"ExtensionAssociationId":{
"shape":"Id",
"documentation":"<p>The system-generated ID for the association.</p>",
"location":"uri",
"locationName":"ExtensionAssociationId"
},
"Parameters":{
"shape":"ParameterValueMap",
"documentation":"<p>The parameter names and values defined in the extension.</p>"
}
}
},
"UpdateExtensionRequest":{
"type":"structure",
"required":["ExtensionIdentifier"],
"members":{
"ExtensionIdentifier":{
"shape":"Identifier",
"documentation":"<p>The name, the ID, or the Amazon Resource Name (ARN) of the extension.</p>",
"location":"uri",
"locationName":"ExtensionIdentifier"
},
"Description":{
"shape":"Description",
"documentation":"<p>Information about the extension.</p>"
},
"Actions":{
"shape":"ActionsMap",
"documentation":"<p>The actions defined in the extension.</p>"
},
"Parameters":{
"shape":"ParameterMap",
"documentation":"<p>One or more parameters for the actions called by the extension.</p>"
},
"VersionNumber":{
"shape":"Integer",
"documentation":"<p>The extension version number.</p>",
"box":true
}
}
},
"Uri":{
"type":"string",
"max":2048,

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appconfigdata-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appconfigdata-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appconfigdata.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://appconfigdata.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": true,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appflow-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appflow.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://appflow.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -27,7 +27,7 @@
{"shape":"ConnectorAuthenticationException"},
{"shape":"InternalServerException"}
],
"documentation":"<p> Creates a new connector profile associated with your Amazon Web Services account. There is a soft quota of 100 connector profiles per Amazon Web Services account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel. </p>"
"documentation":"<p> Creates a new connector profile associated with your Amazon Web Services account. There is a soft quota of 100 connector profiles per Amazon Web Services account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel. In each connector profile that you create, you can provide the credentials and properties for only one connector.</p>"
},
"CreateFlow":{
"name":"CreateFlow",
@ -108,7 +108,7 @@
{"shape":"ConnectorServerException"},
{"shape":"InternalServerException"}
],
"documentation":"<p> Provides details regarding the entity used with the connector, with a description of the data model for each entity. </p>"
"documentation":"<p> Provides details regarding the entity used with the connector, with a description of the data model for each field in that entity. </p>"
},
"DescribeConnectorProfiles":{
"name":"DescribeConnectorProfiles",
@ -246,7 +246,7 @@
{"shape":"ConnectorServerException"},
{"shape":"ConnectorAuthenticationException"}
],
"documentation":"<p>Registers a new connector with your Amazon Web Services account. Before you can register the connector, you must deploy lambda in your account.</p>"
"documentation":"<p>Registers a new custom connector with your Amazon Web Services account. Before you can register the connector, you must deploy the associated AWS lambda function in your account.</p>"
},
"StartFlow":{
"name":"StartFlow",
@ -308,7 +308,7 @@
{"shape":"ConflictException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>Unregisters the custom connector registered in your account that matches the connectorLabel provided in the request.</p>"
"documentation":"<p>Unregisters the custom connector registered in your account that matches the connector label provided in the request.</p>"
},
"UntagResource":{
"name":"UntagResource",
@ -342,6 +342,27 @@
],
"documentation":"<p> Updates a given connector profile associated with your account. </p>"
},
"UpdateConnectorRegistration":{
"name":"UpdateConnectorRegistration",
"http":{
"method":"POST",
"requestUri":"/update-connector-registration"
},
"input":{"shape":"UpdateConnectorRegistrationRequest"},
"output":{"shape":"UpdateConnectorRegistrationResponse"},
"errors":[
{"shape":"ValidationException"},
{"shape":"ConflictException"},
{"shape":"AccessDeniedException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ServiceQuotaExceededException"},
{"shape":"ThrottlingException"},
{"shape":"InternalServerException"},
{"shape":"ConnectorServerException"},
{"shape":"ConnectorAuthenticationException"}
],
"documentation":"<p>Updates a custom connector that you've previously registered. This operation updates the connector with one of the following:</p> <ul> <li> <p>The latest version of the AWS Lambda function that's assigned to the connector</p> </li> <li> <p>A new AWS Lambda function that you specify</p> </li> </ul>"
},
"UpdateFlow":{
"name":"UpdateFlow",
"http":{
@ -385,7 +406,7 @@
},
"AccessToken":{
"type":"string",
"max":2048,
"max":4096,
"pattern":"\\S+",
"sensitive":true
},
@ -400,6 +421,10 @@
"aggregationType":{
"shape":"AggregationType",
"documentation":"<p> Specifies whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated. </p>"
},
"targetFileSize":{
"shape":"Long",
"documentation":"<p>The desired file size, in MB, for each output file that Amazon AppFlow writes to the flow destination. For each file, Amazon AppFlow attempts to achieve the size that you specify. The actual file sizes might differ from this target based on the number and size of the records that each file contains.</p>"
}
},
"documentation":"<p> The aggregation settings that you can use to customize the output format of your flow data. </p>"
@ -630,6 +655,10 @@
"max":512,
"pattern":".*"
},
"CatalogType":{
"type":"string",
"enum":["GLUE"]
},
"ClientCredentialsArn":{
"type":"string",
"max":2048,
@ -654,6 +683,11 @@
"pattern":"\\S+",
"sensitive":true
},
"ClusterIdentifier":{
"type":"string",
"max":512,
"pattern":"\\S+"
},
"ConflictException":{
"type":"structure",
"members":{
@ -1184,10 +1218,7 @@
},
"ConnectorProfileConfig":{
"type":"structure",
"required":[
"connectorProfileProperties",
"connectorProfileCredentials"
],
"required":["connectorProfileProperties"],
"members":{
"connectorProfileProperties":{
"shape":"ConnectorProfileProperties",
@ -1571,6 +1602,10 @@
"tags":{
"shape":"TagMap",
"documentation":"<p> The tags used to organize, track, or control access for your flow. </p>"
},
"metadataCatalogConfig":{
"shape":"MetadataCatalogConfig",
"documentation":"<p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>"
}
}
},
@ -1769,6 +1804,11 @@
},
"documentation":"<p> The connector metadata specific to Amazon Connect Customer Profiles. </p>"
},
"DataApiRoleArn":{
"type":"string",
"max":512,
"pattern":"arn:aws:iam:.*:[0-9]+:.*"
},
"DataPullMode":{
"type":"string",
"enum":[
@ -1776,6 +1816,11 @@
"Complete"
]
},
"DatabaseName":{
"type":"string",
"max":512,
"pattern":"\\S+"
},
"DatabaseUrl":{
"type":"string",
"max":512,
@ -2125,6 +2170,18 @@
"tags":{
"shape":"TagMap",
"documentation":"<p> The tags used to organize, track, or control access for your flow. </p>"
},
"metadataCatalogConfig":{
"shape":"MetadataCatalogConfig",
"documentation":"<p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>"
},
"lastRunMetadataCatalogDetails":{
"shape":"MetadataCatalogDetails",
"documentation":"<p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>"
},
"schemaVersion":{
"shape":"Long",
"documentation":"<p>The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:</p> <ul> <li> <p>Source-to-destination field mappings</p> </li> <li> <p>Field data types</p> </li> <li> <p>Partition keys</p> </li> </ul>"
}
}
},
@ -2449,6 +2506,10 @@
"dataPullEndTime":{
"shape":"Date",
"documentation":"<p> The timestamp that indicates the last new or updated record to be transferred in the flow run. </p>"
},
"metadataCatalogDetails":{
"shape":"MetadataCatalogDetails",
"documentation":"<p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>"
}
},
"documentation":"<p> Specifies information about the past flow run instances for a given flow. </p>"
@ -2610,6 +2671,11 @@
"max":2048,
"pattern":"[\\w!@#\\-.?,\\s]*"
},
"FlowErrorDeactivationThreshold":{
"type":"integer",
"max":100,
"min":1
},
"FlowExecutionList":{
"type":"list",
"member":{"shape":"ExecutionRecord"}
@ -2639,6 +2705,44 @@
"max":2048,
"pattern":"[\\s\\w/!@#+=.-]*"
},
"GlueDataCatalogConfig":{
"type":"structure",
"required":[
"roleArn",
"databaseName",
"tablePrefix"
],
"members":{
"roleArn":{
"shape":"GlueDataCatalogIAMRole",
"documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that grants Amazon AppFlow the permissions it needs to create Data Catalog tables, databases, and partitions.</p> <p>For an example IAM policy that has the required permissions, see <a href=\"https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_id-based-policy-examples.html\">Identity-based policy examples for Amazon AppFlow</a>.</p>"
},
"databaseName":{
"shape":"GlueDataCatalogDatabaseName",
"documentation":"<p>The name of the Data Catalog database that stores the metadata tables that Amazon AppFlow creates in your Amazon Web Services account. These tables contain metadata for the data that's transferred by the flow that you configure with this parameter.</p> <note> <p>When you configure a new flow with this parameter, you must specify an existing database.</p> </note>"
},
"tablePrefix":{
"shape":"GlueDataCatalogTablePrefix",
"documentation":"<p>A naming prefix for each Data Catalog table that Amazon AppFlow creates for the flow that you configure with this setting. Amazon AppFlow adds the prefix to the beginning of the each table name.</p>"
}
},
"documentation":"<p>Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the Glue Data Catalog. When Amazon AppFlow catalogs your data, it stores metadata in Data Catalog tables. This metadata represents the data that's transferred by the flow that you configure with these settings.</p> <note> <p>You can configure a flow with these settings only when the flow destination is Amazon S3.</p> </note>"
},
"GlueDataCatalogDatabaseName":{
"type":"string",
"max":255,
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*"
},
"GlueDataCatalogIAMRole":{
"type":"string",
"max":512,
"pattern":"arn:aws:iam:.*:[0-9]+:.*"
},
"GlueDataCatalogTablePrefix":{
"type":"string",
"max":128,
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*"
},
"GoogleAnalyticsConnectorOperator":{
"type":"string",
"enum":[
@ -2862,6 +2966,7 @@
"error":{"httpStatusCode":500},
"exception":true
},
"JavaBoolean":{"type":"boolean"},
"KMSArn":{
"type":"string",
"max":2048,
@ -3102,6 +3207,42 @@
"max":100,
"min":1
},
"MetadataCatalogConfig":{
"type":"structure",
"members":{
"glueDataCatalog":{
"shape":"GlueDataCatalogConfig",
"documentation":"<p>Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the Glue Data Catalog.</p>"
}
},
"documentation":"<p>Specifies the configuration that Amazon AppFlow uses when it catalogs your data. When Amazon AppFlow catalogs your data, it stores metadata in a data catalog.</p>"
},
"MetadataCatalogDetail":{
"type":"structure",
"members":{
"catalogType":{
"shape":"CatalogType",
"documentation":"<p>The type of metadata catalog that Amazon AppFlow used for the associated flow run. This parameter returns the following value:</p> <dl> <dt>GLUE</dt> <dd> <p>The metadata catalog is provided by the Glue Data Catalog. Glue includes the Glue Data Catalog as a component.</p> </dd> </dl>"
},
"tableName":{
"shape":"String",
"documentation":"<p>The name of the table that stores the metadata for the associated flow run. The table stores metadata that represents the data that the flow transferred. Amazon AppFlow stores the table in the metadata catalog.</p>"
},
"tableRegistrationOutput":{
"shape":"RegistrationOutput",
"documentation":"<p>Describes the status of the attempt from Amazon AppFlow to register the metadata table with the metadata catalog. Amazon AppFlow creates or updates this table for the associated flow run.</p>"
},
"partitionRegistrationOutput":{
"shape":"RegistrationOutput",
"documentation":"<p>Describes the status of the attempt from Amazon AppFlow to register the data partitions with the metadata catalog. The data partitions organize the flow output into a hierarchical path, such as a folder path in an S3 bucket. Amazon AppFlow creates the partitions (if they don't already exist) based on your flow configuration.</p>"
}
},
"documentation":"<p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>"
},
"MetadataCatalogDetails":{
"type":"list",
"member":{"shape":"MetadataCatalogDetail"}
},
"MostRecentExecutionMessage":{
"type":"string",
"max":2048,
@ -3359,7 +3500,9 @@
"MATH_OPERATION_FIELDS_ORDER",
"CONCAT_FORMAT",
"SUBFIELD_CATEGORY_MAP",
"EXCLUDE_SOURCE_FIELDS_LIST"
"EXCLUDE_SOURCE_FIELDS_LIST",
"INCLUDE_NEW_FIELDS",
"ORDERED_PARTITION_KEYS_LIST"
]
},
"Operators":{
@ -3394,6 +3537,17 @@
"pattern":".*",
"sensitive":true
},
"PathPrefix":{
"type":"string",
"enum":[
"EXECUTION_ID",
"SCHEMA_VERSION"
]
},
"PathPrefixHierarchy":{
"type":"list",
"member":{"shape":"PathPrefix"}
},
"PortNumber":{
"type":"integer",
"max":65535,
@ -3404,14 +3558,18 @@
"members":{
"prefixType":{
"shape":"PrefixType",
"documentation":"<p> Determines the format of the prefix, and whether it applies to the file name, file path, or both. </p>"
"documentation":"<p>Determines the format of the prefix, and whether it applies to the file name, file path, or both. </p>"
},
"prefixFormat":{
"shape":"PrefixFormat",
"documentation":"<p> Determines the level of granularity that's included in the prefix. </p>"
"documentation":"<p>Determines the level of granularity for the date and time that's included in the prefix. </p>"
},
"pathPrefixHierarchy":{
"shape":"PathPrefixHierarchy",
"documentation":"<p>Specifies whether the destination file path includes either or both of the following elements:</p> <dl> <dt>EXECUTION_ID</dt> <dd> <p>The ID that Amazon AppFlow assigns to the flow run.</p> </dd> <dt>SCHEMA_VERSION</dt> <dd> <p>The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:</p> <ul> <li> <p>Source-to-destination field mappings</p> </li> <li> <p>Field data types</p> </li> <li> <p>Partition keys</p> </li> </ul> </dd> </dl>"
}
},
"documentation":"<p> Determines the prefix that Amazon AppFlow applies to the destination folder name. You can name your destination folders according to the flow frequency and date. </p>"
"documentation":"<p>Specifies elements that Amazon AppFlow includes in the file and folder names in the flow destination.</p>"
},
"PrefixFormat":{
"type":"string",
@ -3521,13 +3679,9 @@
},
"RedshiftConnectorProfileCredentials":{
"type":"structure",
"required":[
"username",
"password"
],
"members":{
"username":{
"shape":"Username",
"shape":"String",
"documentation":"<p> The name of the user. </p>"
},
"password":{
@ -3540,7 +3694,6 @@
"RedshiftConnectorProfileProperties":{
"type":"structure",
"required":[
"databaseUrl",
"bucketName",
"roleArn"
],
@ -3559,7 +3712,27 @@
},
"roleArn":{
"shape":"RoleArn",
"documentation":"<p> The Amazon Resource Name (ARN) of the IAM role. </p>"
"documentation":"<p> The Amazon Resource Name (ARN) of IAM role that grants Amazon Redshift read-only access to Amazon S3. For more information, and for the polices that you attach to this role, see <a href=\"https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_service-role-policies.html#redshift-access-s3\">Allow Amazon Redshift to access your Amazon AppFlow data in Amazon S3</a>.</p>"
},
"dataApiRoleArn":{
"shape":"DataApiRoleArn",
"documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that permits Amazon AppFlow to access your Amazon Redshift database through the Data API. For more information, and for the polices that you attach to this role, see <a href=\"https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_service-role-policies.html#access-redshift\">Allow Amazon AppFlow to access Amazon Redshift databases with the Data API</a>.</p>"
},
"isRedshiftServerless":{
"shape":"Boolean",
"documentation":"<p>Indicates whether the connector profile defines a connection to an Amazon Redshift Serverless data warehouse.</p>"
},
"clusterIdentifier":{
"shape":"ClusterIdentifier",
"documentation":"<p>The unique ID that's assigned to an Amazon Redshift cluster.</p>"
},
"workgroupName":{
"shape":"WorkgroupName",
"documentation":"<p>The name of an Amazon Redshift workgroup.</p>"
},
"databaseName":{
"shape":"DatabaseName",
"documentation":"<p>The name of an Amazon Redshift database.</p>"
}
},
"documentation":"<p> The connector-specific profile properties when using Amazon Redshift. </p>"
@ -3598,7 +3771,7 @@
},
"RefreshToken":{
"type":"string",
"max":1024,
"max":2048,
"pattern":"\\S+"
},
"Region":{
@ -3645,6 +3818,24 @@
"max":512,
"pattern":"\\S+"
},
"RegistrationOutput":{
"type":"structure",
"members":{
"message":{
"shape":"String",
"documentation":"<p>Explains the status of the registration attempt from Amazon AppFlow. If the attempt fails, the message explains why.</p>"
},
"result":{
"shape":"String",
"documentation":"<p>Indicates the number of resources that Amazon AppFlow created or updated. Possible resources include metadata tables and data partitions.</p>"
},
"status":{
"shape":"ExecutionStatus",
"documentation":"<p>Indicates the status of the registration attempt from Amazon AppFlow.</p>"
}
},
"documentation":"<p>Describes the status of an attempt from Amazon AppFlow to register a resource.</p> <p>When you run a flow that you've configured to use a metadata catalog, Amazon AppFlow registers a metadata table and data partitions with that catalog. This operation provides the status of that registration attempt. The operation also indicates how many related resources Amazon AppFlow created or updated.</p>"
},
"ResourceNotFoundException":{
"type":"structure",
"members":{
@ -3734,7 +3925,11 @@
"shape":"PrefixConfig",
"documentation":"<p> Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket. You can name folders according to the flow frequency and date. </p>"
},
"aggregationConfig":{"shape":"AggregationConfig"}
"aggregationConfig":{"shape":"AggregationConfig"},
"preserveSourceDataTyping":{
"shape":"JavaBoolean",
"documentation":"<p>If your file output format is Parquet, use this parameter to set whether Amazon AppFlow preserves the data types in your source data when it writes the output to Amazon S3. </p> <ul> <li> <p> <code>true</code>: Amazon AppFlow preserves the data types when it writes to Amazon S3. For example, an integer or <code>1</code> in your source data is still an integer in your output.</p> </li> <li> <p> <code>false</code>: Amazon AppFlow converts all of the source data into strings when it writes to Amazon S3. For example, an integer of <code>1</code> in your source data becomes the string <code>\"1\"</code> in the output.</p> </li> </ul>"
}
},
"documentation":"<p> The configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination. </p>"
},
@ -3931,6 +4126,18 @@
},
"documentation":"<p> The connector-specific profile properties required when using Salesforce. </p>"
},
"SalesforceDataTransferApi":{
"type":"string",
"enum":[
"AUTOMATIC",
"BULKV2",
"REST_SYNC"
]
},
"SalesforceDataTransferApiList":{
"type":"list",
"member":{"shape":"SalesforceDataTransferApi"}
},
"SalesforceDestinationProperties":{
"type":"structure",
"required":["object"],
@ -3950,6 +4157,10 @@
"writeOperationType":{
"shape":"WriteOperationType",
"documentation":"<p> This specifies the type of write operation to be performed in Salesforce. When the value is <code>UPSERT</code>, then <code>idFieldNames</code> is required. </p>"
},
"dataTransferApi":{
"shape":"SalesforceDataTransferApi",
"documentation":"<p>Specifies which Salesforce API is used by Amazon AppFlow when your flow transfers data to Salesforce.</p> <dl> <dt>AUTOMATIC</dt> <dd> <p>The default. Amazon AppFlow selects which API to use based on the number of records that your flow transfers to Salesforce. If your flow transfers fewer than 1,000 records, Amazon AppFlow uses Salesforce REST API. If your flow transfers 1,000 records or more, Amazon AppFlow uses Salesforce Bulk API 2.0.</p> <p>Each of these Salesforce APIs structures data differently. If Amazon AppFlow selects the API automatically, be aware that, for recurring flows, the data output might vary from one flow run to the next. For example, if a flow runs daily, it might use REST API on one day to transfer 900 records, and it might use Bulk API 2.0 on the next day to transfer 1,100 records. For each of these flow runs, the respective Salesforce API formats the data differently. Some of the differences include how dates are formatted and null values are represented. Also, Bulk API 2.0 doesn't transfer Salesforce compound fields.</p> <p>By choosing this option, you optimize flow performance for both small and large data transfers, but the tradeoff is inconsistent formatting in the output.</p> </dd> <dt>BULKV2</dt> <dd> <p>Amazon AppFlow uses only Salesforce Bulk API 2.0. This API runs asynchronous data transfers, and it's optimal for large sets of data. By choosing this option, you ensure that your flow writes consistent output, but you optimize performance only for large data transfers.</p> <p>Note that Bulk API 2.0 does not transfer Salesforce compound fields.</p> </dd> <dt>REST_SYNC</dt> <dd> <p>Amazon AppFlow uses only Salesforce REST API. By choosing this option, you ensure that your flow writes consistent output, but you decrease performance for large data transfers that are better suited for Bulk API 2.0. In some cases, if your flow attempts to transfer a vary large set of data, it might fail with a timed out error.</p> </dd> </dl>"
}
},
"documentation":"<p> The properties that are applied when Salesforce is being used as a destination. </p>"
@ -3960,6 +4171,10 @@
"oAuthScopes":{
"shape":"OAuthScopeList",
"documentation":"<p> The desired authorization scope for the Salesforce account. </p>"
},
"dataTransferApis":{
"shape":"SalesforceDataTransferApiList",
"documentation":"<p>The Salesforce APIs that you can have Amazon AppFlow use when your flows transfers data to or from Salesforce.</p>"
}
},
"documentation":"<p> The connector metadata specific to Salesforce. </p>"
@ -3979,6 +4194,10 @@
"includeDeletedRecords":{
"shape":"Boolean",
"documentation":"<p> Indicates whether Amazon AppFlow includes deleted files in the flow run. </p>"
},
"dataTransferApi":{
"shape":"SalesforceDataTransferApi",
"documentation":"<p>Specifies which Salesforce API is used by Amazon AppFlow when your flow transfers data from Salesforce.</p> <dl> <dt>AUTOMATIC</dt> <dd> <p>The default. Amazon AppFlow selects which API to use based on the number of records that your flow transfers from Salesforce. If your flow transfers fewer than 1,000,000 records, Amazon AppFlow uses Salesforce REST API. If your flow transfers 1,000,000 records or more, Amazon AppFlow uses Salesforce Bulk API 2.0.</p> <p>Each of these Salesforce APIs structures data differently. If Amazon AppFlow selects the API automatically, be aware that, for recurring flows, the data output might vary from one flow run to the next. For example, if a flow runs daily, it might use REST API on one day to transfer 900,000 records, and it might use Bulk API 2.0 on the next day to transfer 1,100,000 records. For each of these flow runs, the respective Salesforce API formats the data differently. Some of the differences include how dates are formatted and null values are represented. Also, Bulk API 2.0 doesn't transfer Salesforce compound fields.</p> <p>By choosing this option, you optimize flow performance for both small and large data transfers, but the tradeoff is inconsistent formatting in the output.</p> </dd> <dt>BULKV2</dt> <dd> <p>Amazon AppFlow uses only Salesforce Bulk API 2.0. This API runs asynchronous data transfers, and it's optimal for large sets of data. By choosing this option, you ensure that your flow writes consistent output, but you optimize performance only for large data transfers.</p> <p>Note that Bulk API 2.0 does not transfer Salesforce compound fields.</p> </dd> <dt>REST_SYNC</dt> <dd> <p>Amazon AppFlow uses only Salesforce REST API. By choosing this option, you ensure that your flow writes consistent output, but you decrease performance for large data transfers that are better suited for Bulk API 2.0. In some cases, if your flow attempts to transfer a vary large set of data, it might fail wituh a timed out error.</p> </dd> </dl>"
}
},
"documentation":"<p> The properties that are applied when Salesforce is being used as a source. </p>"
@ -4018,15 +4237,15 @@
},
"scheduleStartTime":{
"shape":"Date",
"documentation":"<p> Specifies the scheduled start time for a schedule-triggered flow. </p>"
"documentation":"<p>The time at which the scheduled flow starts. The time is formatted as a timestamp that follows the ISO 8601 standard, such as <code>2022-04-26T13:00:00-07:00</code>.</p>"
},
"scheduleEndTime":{
"shape":"Date",
"documentation":"<p> Specifies the scheduled end time for a schedule-triggered flow. </p>"
"documentation":"<p>The time at which the scheduled flow ends. The time is formatted as a timestamp that follows the ISO 8601 standard, such as <code>2022-04-27T13:00:00-07:00</code>.</p>"
},
"timezone":{
"shape":"Timezone",
"documentation":"<p> Specifies the time zone used when referring to the date and time of a scheduled-triggered flow, such as <code>America/New_York</code>. </p>"
"documentation":"<p>Specifies the time zone used when referring to the dates and times of a scheduled flow, such as <code>America/New_York</code>. This time zone is only a descriptive label. It doesn't affect how Amazon AppFlow interprets the timestamps that you specify to schedule the flow.</p> <p>If you want to schedule a flow by using times in a particular time zone, indicate the time zone as a UTC offset in your timestamps. For example, the UTC offsets for the <code>America/New_York</code> timezone are <code>-04:00</code> EDT and <code>-05:00 EST</code>.</p>"
},
"scheduleOffset":{
"shape":"ScheduleOffset",
@ -4036,6 +4255,11 @@
"firstExecutionFrom":{
"shape":"Date",
"documentation":"<p> Specifies the date range for the records to import from the connector in the first flow run. </p>"
},
"flowErrorDeactivationThreshold":{
"shape":"FlowErrorDeactivationThreshold",
"documentation":"<p>Defines how many times a scheduled flow fails consecutively before Amazon AppFlow deactivates it.</p>",
"box":true
}
},
"documentation":"<p> Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the <code>Scheduled</code> trigger type. </p>"
@ -4675,7 +4899,8 @@
"Merge",
"Passthrough",
"Truncate",
"Validate"
"Validate",
"Partition"
]
},
"Tasks":{
@ -4887,6 +5112,30 @@
}
}
},
"UpdateConnectorRegistrationRequest":{
"type":"structure",
"required":["connectorLabel"],
"members":{
"connectorLabel":{
"shape":"ConnectorLabel",
"documentation":"<p>The name of the connector. The name is unique for each connector registration in your AWS account.</p>"
},
"description":{
"shape":"Description",
"documentation":"<p>A description about the update that you're applying to the connector.</p>"
},
"connectorProvisioningConfig":{"shape":"ConnectorProvisioningConfig"}
}
},
"UpdateConnectorRegistrationResponse":{
"type":"structure",
"members":{
"connectorArn":{
"shape":"ARN",
"documentation":"<p>The ARN of the connector being updated.</p>"
}
}
},
"UpdateFlowRequest":{
"type":"structure",
"required":[
@ -4917,6 +5166,10 @@
"tasks":{
"shape":"Tasks",
"documentation":"<p> A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. </p>"
},
"metadataCatalogConfig":{
"shape":"MetadataCatalogConfig",
"documentation":"<p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>"
}
}
},
@ -5093,6 +5346,11 @@
"max":512,
"pattern":"[\\s\\w/!@#+=.-]*"
},
"WorkgroupName":{
"type":"string",
"max":512,
"pattern":"\\S+"
},
"WriteOperationType":{
"type":"string",
"documentation":"<p> The possible write operations in the destination connector. When this value is not provided, this defaults to the <code>INSERT</code> operation. </p>",

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://app-integrations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://app-integrations-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://app-integrations.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://app-integrations.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://application-autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://application-autoscaling.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -50,13 +50,18 @@
"output": {
"ScalableTargets": [
{
"CreationTime": "2016-05-06T11:21:46.199Z",
"CreationTime": "2019-05-06T11:21:46.199Z",
"MaxCapacity": 10,
"MinCapacity": 1,
"ResourceId": "service/default/web-app",
"RoleARN": "arn:aws:iam::012345678910:role/ApplicationAutoscalingECSRole",
"RoleARN": "arn:aws:iam::012345678910:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService",
"ScalableDimension": "ecs:service:DesiredCount",
"ServiceNamespace": "ecs"
"ServiceNamespace": "ecs",
"SuspendedState": {
"DynamicScalingInSuspended": false,
"DynamicScalingOutSuspended": false,
"ScheduledScalingSuspended": false
}
}
]
},
@ -66,7 +71,7 @@
"output": {
}
},
"description": "This example describes the scalable targets for the ecs service namespace.",
"description": "This example describes the scalable targets for the ECS service namespace.",
"id": "to-describe-scalable-targets-1470864286961",
"title": "To describe scalable targets"
}
@ -84,11 +89,11 @@
"ActivityId": "e6c5f7d1-dbbb-4a3f-89b2-51f33e766399",
"Cause": "monitor alarm web-app-cpu-lt-25 in state ALARM triggered policy web-app-cpu-lt-25",
"Description": "Setting desired count to 1.",
"EndTime": "2016-05-06T16:04:32.111Z",
"EndTime": "2019-05-06T16:04:32.111Z",
"ResourceId": "service/default/web-app",
"ScalableDimension": "ecs:service:DesiredCount",
"ServiceNamespace": "ecs",
"StartTime": "2016-05-06T16:03:58.171Z",
"StartTime": "2019-05-06T16:03:58.171Z",
"StatusCode": "Successful",
"StatusMessage": "Successfully set desired count to 1. Change successfully fulfilled by ecs."
}
@ -120,7 +125,7 @@
"AlarmName": "web-app-cpu-gt-75"
}
],
"CreationTime": "2016-05-06T12:11:39.230Z",
"CreationTime": "2019-05-06T12:11:39.230Z",
"PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/web-app-cpu-gt-75",
"PolicyName": "web-app-cpu-gt-75",
"PolicyType": "StepScaling",
@ -146,7 +151,7 @@
"output": {
}
},
"description": "This example describes the scaling policies for the ecs service namespace.",
"description": "This example describes the scaling policies for the ECS service namespace.",
"id": "to-describe-scaling-policies-1470864609734",
"title": "To describe scaling policies"
}
@ -154,24 +159,32 @@
"PutScalingPolicy": [
{
"input": {
"PolicyName": "web-app-cpu-gt-75",
"PolicyType": "StepScaling",
"PolicyName": "cpu75-target-tracking-scaling-policy",
"PolicyType": "TargetTrackingScaling",
"ResourceId": "service/default/web-app",
"ScalableDimension": "ecs:service:DesiredCount",
"ServiceNamespace": "ecs",
"StepScalingPolicyConfiguration": {
"AdjustmentType": "PercentChangeInCapacity",
"Cooldown": 60,
"StepAdjustments": [
{
"MetricIntervalLowerBound": 0,
"ScalingAdjustment": 200
}
]
"TargetTrackingScalingPolicyConfiguration": {
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ECSServiceAverageCPUUtilization"
},
"ScaleInCooldown": 60,
"ScaleOutCooldown": 60,
"TargetValue": 75
}
},
"output": {
"PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/web-app-cpu-gt-75"
"Alarms": [
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca",
"AlarmName": "TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca"
},
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d",
"AlarmName": "TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d"
}
],
"PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/cpu75-target-tracking-scaling-policy"
},
"comments": {
"input": {
@ -179,40 +192,9 @@
"output": {
}
},
"description": "This example applies a scaling policy to an Amazon ECS service called web-app in the default cluster. The policy increases the desired count of the service by 200%, with a cool down period of 60 seconds.",
"id": "to-apply-a-scaling-policy-to-an-amazon-ecs-service-1470864779862",
"title": "To apply a scaling policy to an Amazon ECS service"
},
{
"input": {
"PolicyName": "fleet-cpu-gt-75",
"PolicyType": "StepScaling",
"ResourceId": "spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3",
"ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
"ServiceNamespace": "ec2",
"StepScalingPolicyConfiguration": {
"AdjustmentType": "PercentChangeInCapacity",
"Cooldown": 180,
"StepAdjustments": [
{
"MetricIntervalLowerBound": 0,
"ScalingAdjustment": 200
}
]
}
},
"output": {
"PolicyARN": "arn:aws:autoscaling:us-east-1:012345678910:scalingPolicy:89406401-0cb7-4130-b770-d97cca0e446b:resource/ec2/spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3:policyName/fleet-cpu-gt-75"
},
"comments": {
"input": {
},
"output": {
}
},
"description": "This example applies a scaling policy to an Amazon EC2 Spot fleet. The policy increases the target capacity of the spot fleet by 200%, with a cool down period of 180 seconds.\",\n ",
"id": "to-apply-a-scaling-policy-to-an-amazon-ec2-spot-fleet-1472073278469",
"title": "To apply a scaling policy to an Amazon EC2 Spot fleet"
"description": "The following example applies a target tracking scaling policy with a predefined metric specification to an Amazon ECS service called web-app in the default cluster. The policy keeps the average CPU utilization of the service at 75 percent, with scale-out and scale-in cooldown periods of 60 seconds.",
"id": "to-apply-a-target-tracking-scaling-policy-with-a-predefined-metric-specification-1569364247984",
"title": "To apply a target tracking scaling policy with a predefined metric specification"
}
],
"RegisterScalableTarget": [
@ -221,7 +203,6 @@
"MaxCapacity": 10,
"MinCapacity": 1,
"ResourceId": "service/default/web-app",
"RoleARN": "arn:aws:iam::012345678910:role/ApplicationAutoscalingECSRole",
"ScalableDimension": "ecs:service:DesiredCount",
"ServiceNamespace": "ecs"
},
@ -234,23 +215,6 @@
"description": "This example registers a scalable target from an Amazon ECS service called web-app that is running on the default cluster, with a minimum desired count of 1 task and a maximum desired count of 10 tasks.",
"id": "to-register-a-new-scalable-target-1470864910380",
"title": "To register an ECS service as a scalable target"
},
{
"input": {
"MaxCapacity": 10,
"MinCapacity": 1,
"ResourceId": "spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3",
"RoleARN": "arn:aws:iam::012345678910:role/ApplicationAutoscalingSpotRole",
"ScalableDimension": "ec2:spot-fleet-request:TargetCapacity",
"ServiceNamespace": "ec2"
},
"output": {
},
"comments": {
},
"description": "This example registers a scalable target from an Amazon EC2 Spot fleet with a minimum target capacity of 1 and a maximum of 10.",
"id": "to-register-an-ec2-spot-fleet-as-a-scalable-target-1472072899649",
"title": "To register an EC2 Spot fleet as a scalable target"
}
]
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://applicationinsights-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://applicationinsights-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://applicationinsights.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://applicationinsights.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -507,8 +507,14 @@
"shape":"Remarks",
"documentation":"<p>The issues on the user side that block Application Insights from successfully monitoring an application. Example remarks include:</p> <ul> <li> <p>“Configuring application, detected 1 Errors, 3 Warnings”</p> </li> <li> <p>“Configuring application, detected 1 Unconfigured Components”</p> </li> </ul>"
},
"AutoConfigEnabled":{"shape":"AutoConfigEnabled"},
"DiscoveryType":{"shape":"DiscoveryType"}
"AutoConfigEnabled":{
"shape":"AutoConfigEnabled",
"documentation":"<p> Indicates whether auto-configuration is turned on for this application. </p>"
},
"DiscoveryType":{
"shape":"DiscoveryType",
"documentation":"<p> The method used by Application Insights to onboard your resources. </p>"
}
},
"documentation":"<p>Describes the status of the application.</p>"
},
@ -633,8 +639,18 @@
"shape":"TagList",
"documentation":"<p>List of tags to add to the application. tag key (<code>Key</code>) and an associated tag value (<code>Value</code>). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.</p>"
},
"AutoConfigEnabled":{"shape":"AutoConfigEnabled"},
"AutoCreate":{"shape":"AutoCreate"}
"AutoConfigEnabled":{
"shape":"AutoConfigEnabled",
"documentation":"<p> Indicates whether Application Insights automatically configures unmonitored resources in the resource group. </p>"
},
"AutoCreate":{
"shape":"AutoCreate",
"documentation":"<p> Configures all of the resources in the resource group by applying the recommended configurations. </p>"
},
"GroupingType":{
"shape":"GroupingType",
"documentation":"<p>Application Insights can create applications based on a resource group or on an account. To create an account-based application using all of the resources in the account, set this parameter to <code>ACCOUNT_BASED</code>. </p>"
}
}
},
"CreateApplicationResponse":{
@ -825,7 +841,7 @@
},
"Tier":{
"shape":"Tier",
"documentation":"<p>The tier of the application component. Supported tiers include <code>DOT_NET_CORE</code>, <code>DOT_NET_WORKER</code>, <code>DOT_NET_WEB</code>, <code>SQL_SERVER</code>, and <code>DEFAULT</code>.</p>"
"documentation":"<p>The tier of the application component.</p>"
}
}
},
@ -1029,6 +1045,10 @@
"NOT_USEFUL"
]
},
"GroupingType":{
"type":"string",
"enum":["ACCOUNT_BASED"]
},
"HealthEventArn":{"type":"string"},
"HealthEventDescription":{"type":"string"},
"HealthEventTypeCategory":{"type":"string"},
@ -1242,7 +1262,10 @@
"shape":"PaginationToken",
"documentation":"<p>The token to request the next page of results.</p>"
},
"ComponentName":{"shape":"ComponentName"}
"ComponentName":{
"shape":"ComponentName",
"documentation":"<p> The name of the component. </p>"
}
}
},
"ListProblemsResponse":{
@ -1256,7 +1279,10 @@
"shape":"PaginationToken",
"documentation":"<p>The token used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return. </p>"
},
"ResourceGroupName":{"shape":"ResourceGroupName"}
"ResourceGroupName":{
"shape":"ResourceGroupName",
"documentation":"<p> The name of the resource group. </p>"
}
}
},
"ListTagsForResourceRequest":{
@ -1606,8 +1632,14 @@
"shape":"Feedback",
"documentation":"<p>Feedback provided by the user about the problem.</p>"
},
"RecurringCount":{"shape":"RecurringCount"},
"LastRecurrenceTime":{"shape":"LastRecurrenceTime"}
"RecurringCount":{
"shape":"RecurringCount",
"documentation":"<p> The number of times that the same problem reoccurred after the first time it was resolved. </p>"
},
"LastRecurrenceTime":{
"shape":"LastRecurrenceTime",
"documentation":"<p> The last time that the problem reoccurred after its last resolution. </p>"
}
},
"documentation":"<p>Describes a problem that is detected by correlating observations.</p>"
},
@ -1678,6 +1710,7 @@
"SeverityLevel":{
"type":"string",
"enum":[
"Informative",
"Low",
"Medium",
"High"
@ -1856,7 +1889,10 @@
"shape":"RemoveSNSTopic",
"documentation":"<p> Disassociates the SNS topic from the opsItem created for detected problems.</p>"
},
"AutoConfigEnabled":{"shape":"AutoConfigEnabled"}
"AutoConfigEnabled":{
"shape":"AutoConfigEnabled",
"documentation":"<p> Turns auto-configuration on or off. </p>"
}
}
},
"UpdateApplicationResponse":{
@ -1889,13 +1925,16 @@
},
"Tier":{
"shape":"Tier",
"documentation":"<p>The tier of the application component. Supported tiers include <code>DOT_NET_WORKER</code>, <code>DOT_NET_WEB</code>, <code>DOT_NET_CORE</code>, <code>SQL_SERVER</code>, and <code>DEFAULT</code>.</p>"
"documentation":"<p>The tier of the application component.</p>"
},
"ComponentConfiguration":{
"shape":"ComponentConfiguration",
"documentation":"<p>The configuration settings of the component. The value is the escaped JSON of the configuration. For more information about the JSON format, see <a href=\"https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/working-with-json.html\">Working with JSON</a>. You can send a request to <code>DescribeComponentConfigurationRecommendation</code> to see the recommended configuration for a component. For the complete format of the component configuration file, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/component-config.html\">Component Configuration</a>.</p>"
},
"AutoConfigEnabled":{"shape":"AutoConfigEnabled"}
"AutoConfigEnabled":{
"shape":"AutoConfigEnabled",
"documentation":"<p> Automatically configures the component by applying the recommended configurations. </p>"
}
}
},
"UpdateComponentConfigurationResponse":{

View file

@ -0,0 +1,309 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://application-cost-profiler-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://application-cost-profiler-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://application-cost-profiler.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://application-cost-profiler.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appmesh-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appmesh-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appmesh.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://appmesh.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": "1.0",
"examples": { }
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appmesh-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appmesh-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appmesh.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://appmesh.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -863,7 +863,7 @@
},
"ipPreference":{
"shape":"IpPreference",
"documentation":"<p>The IP version to use to control traffic within the mesh.</p>"
"documentation":"<p>The preferred IP version that this virtual node uses. Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node.</p>"
},
"namespaceName":{
"shape":"AwsCloudMapName",
@ -1922,7 +1922,7 @@
},
"ipPreference":{
"shape":"IpPreference",
"documentation":"<p>The IP version to use to control traffic within the mesh.</p>"
"documentation":"<p>The preferred IP version that this virtual node uses. Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node.</p>"
},
"responseType":{
"shape":"DnsResponseType",
@ -1984,6 +1984,10 @@
"type":"structure",
"required":["path"],
"members":{
"format":{
"shape":"LoggingFormat",
"documentation":"<p>The specified format for the logs. The format is either <code>json_format</code> or <code>text_format</code>.</p>"
},
"path":{
"shape":"FilePath",
"documentation":"<p>The file path to write access logs to. You can use <code>/dev/stdout</code> to send access logs to standard out and configure your Envoy container to use a log driver, such as <code>awslogs</code>, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk.</p> <pre><code> &lt;note&gt; &lt;p&gt;The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly.&lt;/p&gt; &lt;/note&gt; </code></pre>"
@ -2175,6 +2179,10 @@
"type":"structure",
"required":["virtualService"],
"members":{
"port":{
"shape":"ListenerPort",
"documentation":"<p>The port number of the gateway route target.</p>"
},
"virtualService":{
"shape":"GatewayRouteVirtualService",
"documentation":"<p>An object that represents a virtual service gateway route target.</p>"
@ -2237,6 +2245,10 @@
"shape":"GrpcGatewayRouteMetadataList",
"documentation":"<p>The gateway route metadata to be matched on.</p>"
},
"port":{
"shape":"ListenerPort",
"documentation":"<p>The port number to match from the request.</p>"
},
"serviceName":{
"shape":"ServiceName",
"documentation":"<p>The fully qualified domain name for the service to match from the request.</p>"
@ -2397,6 +2409,10 @@
"shape":"MethodName",
"documentation":"<p>The method name to match from the request. If you specify a name, you must also specify a <code>serviceName</code>.</p>"
},
"port":{
"shape":"ListenerPort",
"documentation":"<p>The port number to match on.</p>"
},
"serviceName":{
"shape":"ServiceName",
"documentation":"<p>The fully qualified domain name for the service to match from the request.</p>"
@ -2643,6 +2659,10 @@
"shape":"HttpPathMatch",
"documentation":"<p>The path to match on.</p>"
},
"port":{
"shape":"ListenerPort",
"documentation":"<p>The port number to match on.</p>"
},
"prefix":{
"shape":"String",
"documentation":"<p>Specifies the path to match requests with. This parameter must always start with <code>/</code>, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is <code>my-service.local</code> and you want the route to match requests to <code>my-service.local/metrics</code>, your prefix should be <code>/metrics</code>.</p>"
@ -2874,6 +2894,10 @@
"shape":"HttpPathMatch",
"documentation":"<p>The client request path to match on.</p>"
},
"port":{
"shape":"ListenerPort",
"documentation":"<p>The port number to match on.</p>"
},
"prefix":{
"shape":"String",
"documentation":"<p>Specifies the path to match requests with. This parameter must always start with <code>/</code>, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is <code>my-service.local</code> and you want the route to match requests to <code>my-service.local/metrics</code>, your prefix should be <code>/metrics</code>.</p>"
@ -2930,6 +2954,38 @@
"IPv6_ONLY"
]
},
"JsonFormat":{
"type":"list",
"member":{"shape":"JsonFormatRef"}
},
"JsonFormatRef":{
"type":"structure",
"required":[
"key",
"value"
],
"members":{
"key":{
"shape":"JsonKey",
"documentation":"<p>The specified key for the JSON.</p>"
},
"value":{
"shape":"JsonValue",
"documentation":"<p>The specified value for the JSON.</p>"
}
},
"documentation":"<p>An object that represents the key value pairs for the JSON.</p>"
},
"JsonKey":{
"type":"string",
"max":100,
"min":1
},
"JsonValue":{
"type":"string",
"max":100,
"min":1
},
"LimitExceededException":{
"type":"structure",
"members":{
@ -3378,6 +3434,12 @@
},
"documentation":"<p>An object that represents a listener for a virtual node.</p>"
},
"ListenerPort":{
"type":"integer",
"box":true,
"max":65535,
"min":1
},
"ListenerTimeout":{
"type":"structure",
"members":{
@ -3534,6 +3596,21 @@
},
"documentation":"<p>An object that represents the logging information for a virtual node.</p>"
},
"LoggingFormat":{
"type":"structure",
"members":{
"json":{
"shape":"JsonFormat",
"documentation":"<p/>"
},
"text":{
"shape":"TextFormat",
"documentation":"<p/>"
}
},
"documentation":"<p>An object that represents the format for the logs.</p>",
"union":true
},
"Long":{
"type":"long",
"box":true
@ -4156,6 +4233,10 @@
"shape":"TcpRouteAction",
"documentation":"<p>The action to take if a match is determined.</p>"
},
"match":{
"shape":"TcpRouteMatch",
"documentation":"<p>An object that represents the criteria for determining a request match.</p>"
},
"timeout":{
"shape":"TcpTimeout",
"documentation":"<p>An object that represents types of timeouts. </p>"
@ -4174,6 +4255,16 @@
},
"documentation":"<p>An object that represents the action to take if a match is determined.</p>"
},
"TcpRouteMatch":{
"type":"structure",
"members":{
"port":{
"shape":"ListenerPort",
"documentation":"<p>The port number to match on.</p>"
}
},
"documentation":"<p>An object representing the TCP route to match.</p>"
},
"TcpTimeout":{
"type":"structure",
"members":{
@ -4184,6 +4275,11 @@
},
"documentation":"<p>An object that represents types of timeouts. </p>"
},
"TextFormat":{
"type":"string",
"max":1000,
"min":1
},
"Timestamp":{"type":"timestamp"},
"TlsValidationContext":{
"type":"structure",
@ -4191,7 +4287,7 @@
"members":{
"subjectAlternativeNames":{
"shape":"SubjectAlternativeNames",
"documentation":"<p>A reference to an object that represents the SANs for a Transport Layer Security (TLS) validation context.</p>"
"documentation":"<p>A reference to an object that represents the SANs for a Transport Layer Security (TLS) validation context. If you don't specify SANs on the <i>terminating</i> mesh endpoint, the Envoy proxy for that node doesn't verify the SAN on a peer client certificate. If you don't specify SANs on the <i>originating</i> mesh endpoint, the SAN on the certificate provided by the terminating endpoint must match the mesh endpoint service discovery configuration. Since SPIRE vended certificates have a SPIFFE ID as a name, you must set the SAN since the name doesn't match the service discovery name.</p>"
},
"trust":{
"shape":"TlsValidationContextTrust",
@ -4773,6 +4869,10 @@
"type":"structure",
"required":["path"],
"members":{
"format":{
"shape":"LoggingFormat",
"documentation":"<p>The specified format for the virtual gateway access logs. It can be either <code>json_format</code> or <code>text_format</code>.</p>"
},
"path":{
"shape":"FilePath",
"documentation":"<p>The file path to write access logs to. You can use <code>/dev/stdout</code> to send access logs to standard out and configure your Envoy container to use a log driver, such as <code>awslogs</code>, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk.</p>"
@ -5711,6 +5811,10 @@
"weight"
],
"members":{
"port":{
"shape":"ListenerPort",
"documentation":"<p>The targeted port of the weighted object.</p>"
},
"virtualNode":{
"shape":"ResourceName",
"documentation":"<p>The virtual node to associate with the weighted target.</p>"

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apprunner-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apprunner-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://apprunner.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://apprunner.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -103,6 +103,22 @@
],
"documentation":"<p>Create an App Runner VPC connector resource. App Runner requires this resource when you want to associate your App Runner service to a custom Amazon Virtual Private Cloud (Amazon VPC).</p>"
},
"CreateVpcIngressConnection":{
"name":"CreateVpcIngressConnection",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"CreateVpcIngressConnectionRequest"},
"output":{"shape":"CreateVpcIngressConnectionResponse"},
"errors":[
{"shape":"InvalidRequestException"},
{"shape":"InvalidStateException"},
{"shape":"InternalServiceErrorException"},
{"shape":"ServiceQuotaExceededException"}
],
"documentation":"<p>Create an App Runner VPC Ingress Connection resource. App Runner requires this resource when you want to associate your App Runner service with an Amazon VPC endpoint.</p>"
},
"DeleteAutoScalingConfiguration":{
"name":"DeleteAutoScalingConfiguration",
"http":{
@ -162,7 +178,7 @@
{"shape":"InvalidStateException"},
{"shape":"InternalServiceErrorException"}
],
"documentation":"<p>Delete an App Runner service.</p> <p>This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.</p>"
"documentation":"<p>Delete an App Runner service.</p> <p>This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.</p> <note> <p>Make sure that you don't have any active VPCIngressConnections associated with the service you want to delete. </p> </note>"
},
"DeleteVpcConnector":{
"name":"DeleteVpcConnector",
@ -179,6 +195,22 @@
],
"documentation":"<p>Delete an App Runner VPC connector resource. You can't delete a connector that's used by one or more App Runner services.</p>"
},
"DeleteVpcIngressConnection":{
"name":"DeleteVpcIngressConnection",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DeleteVpcIngressConnectionRequest"},
"output":{"shape":"DeleteVpcIngressConnectionResponse"},
"errors":[
{"shape":"InvalidRequestException"},
{"shape":"InternalServiceErrorException"},
{"shape":"ResourceNotFoundException"},
{"shape":"InvalidStateException"}
],
"documentation":"<p>Delete an App Runner VPC Ingress Connection resource that's associated with an App Runner service. The VPC Ingress Connection must be in one of the following states to be deleted: </p> <ul> <li> <p> <code>AVAILABLE</code> </p> </li> <li> <p> <code>FAILED_CREATION</code> </p> </li> <li> <p> <code>FAILED_UPDATE</code> </p> </li> <li> <p> <code>FAILED_DELETION</code> </p> </li> </ul>"
},
"DescribeAutoScalingConfiguration":{
"name":"DescribeAutoScalingConfiguration",
"http":{
@ -254,6 +286,21 @@
],
"documentation":"<p>Return a description of an App Runner VPC connector resource.</p>"
},
"DescribeVpcIngressConnection":{
"name":"DescribeVpcIngressConnection",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DescribeVpcIngressConnectionRequest"},
"output":{"shape":"DescribeVpcIngressConnectionResponse"},
"errors":[
{"shape":"InvalidRequestException"},
{"shape":"InternalServiceErrorException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Return a full description of an App Runner VPC Ingress Connection resource.</p>"
},
"DisassociateCustomDomain":{
"name":"DisassociateCustomDomain",
"http":{
@ -371,6 +418,20 @@
],
"documentation":"<p>Returns a list of App Runner VPC connectors in your Amazon Web Services account.</p>"
},
"ListVpcIngressConnections":{
"name":"ListVpcIngressConnections",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListVpcIngressConnectionsRequest"},
"output":{"shape":"ListVpcIngressConnectionsResponse"},
"errors":[
{"shape":"InvalidRequestException"},
{"shape":"InternalServiceErrorException"}
],
"documentation":"<p>Return a list of App Runner VPC Ingress Connections in your Amazon Web Services account.</p>"
},
"PauseService":{
"name":"PauseService",
"http":{
@ -465,6 +526,22 @@
{"shape":"InternalServiceErrorException"}
],
"documentation":"<p>Update an App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service. These can be set only when you create the service.</p> <p>To update the tags applied to your service, use the separate actions <a>TagResource</a> and <a>UntagResource</a>.</p> <p>This is an asynchronous operation. On a successful call, you can use the returned <code>OperationId</code> and the <a>ListOperations</a> call to track the operation's progress.</p>"
},
"UpdateVpcIngressConnection":{
"name":"UpdateVpcIngressConnection",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"UpdateVpcIngressConnectionRequest"},
"output":{"shape":"UpdateVpcIngressConnectionResponse"},
"errors":[
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"InvalidStateException"},
{"shape":"InternalServiceErrorException"}
],
"documentation":"<p>Update an existing App Runner VPC Ingress Connection resource. The VPC Ingress Connection must be in one of the following states to be updated:</p> <ul> <li> <p> AVAILABLE </p> </li> <li> <p> FAILED_CREATION </p> </li> <li> <p> FAILED_UPDATE </p> </li> </ul>"
}
},
"shapes":{
@ -515,7 +592,8 @@
"required":[
"DNSTarget",
"ServiceArn",
"CustomDomain"
"CustomDomain",
"VpcDNSTargets"
],
"members":{
"DNSTarget":{
@ -529,6 +607,10 @@
"CustomDomain":{
"shape":"CustomDomain",
"documentation":"<p>A description of the domain name that's being associated.</p>"
},
"VpcDNSTargets":{
"shape":"VpcDNSTargetList",
"documentation":"<p>DNS Target records for the custom domains of this Amazon VPC. </p>"
}
}
},
@ -1007,6 +1089,42 @@
}
}
},
"CreateVpcIngressConnectionRequest":{
"type":"structure",
"required":[
"ServiceArn",
"VpcIngressConnectionName",
"IngressVpcConfiguration"
],
"members":{
"ServiceArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) for this App Runner service that is used to create the VPC Ingress Connection resource.</p>"
},
"VpcIngressConnectionName":{
"shape":"VpcIngressConnectionName",
"documentation":"<p>A name for the VPC Ingress Connection resource. It must be unique across all the active VPC Ingress Connections in your Amazon Web Services account in the Amazon Web Services Region. </p>"
},
"IngressVpcConfiguration":{
"shape":"IngressVpcConfiguration",
"documentation":"<p>Specifications for the customers Amazon VPC and the related Amazon Web Services PrivateLink VPC endpoint that are used to create the VPC Ingress Connection resource.</p>"
},
"Tags":{
"shape":"TagList",
"documentation":"<p>An optional list of metadata items that you can associate with the VPC Ingress Connection resource. A tag is a key-value pair.</p>"
}
}
},
"CreateVpcIngressConnectionResponse":{
"type":"structure",
"required":["VpcIngressConnection"],
"members":{
"VpcIngressConnection":{
"shape":"VpcIngressConnection",
"documentation":"<p>A description of the App Runner VPC Ingress Connection resource that's created by this request. </p>"
}
}
},
"CustomDomain":{
"type":"structure",
"required":[
@ -1050,6 +1168,12 @@
"type":"list",
"member":{"shape":"CustomDomain"}
},
"CustomerAccountId":{
"type":"string",
"max":12,
"min":12,
"pattern":"[0-9]{12}"
},
"DeleteAutoScalingConfigurationRequest":{
"type":"structure",
"required":["AutoScalingConfigurationArn"],
@ -1156,6 +1280,26 @@
}
}
},
"DeleteVpcIngressConnectionRequest":{
"type":"structure",
"required":["VpcIngressConnectionArn"],
"members":{
"VpcIngressConnectionArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that you want to delete.</p>"
}
}
},
"DeleteVpcIngressConnectionResponse":{
"type":"structure",
"required":["VpcIngressConnection"],
"members":{
"VpcIngressConnection":{
"shape":"VpcIngressConnection",
"documentation":"<p>A description of the App Runner VPC Ingress Connection that this request just deleted.</p>"
}
}
},
"DescribeAutoScalingConfigurationRequest":{
"type":"structure",
"required":["AutoScalingConfigurationArn"],
@ -1204,7 +1348,8 @@
"required":[
"DNSTarget",
"ServiceArn",
"CustomDomains"
"CustomDomains",
"VpcDNSTargets"
],
"members":{
"DNSTarget":{
@ -1219,6 +1364,10 @@
"shape":"CustomDomainList",
"documentation":"<p>A list of descriptions of custom domain names that are associated with the service. In a paginated request, the request returns up to <code>MaxResults</code> records per call.</p>"
},
"VpcDNSTargets":{
"shape":"VpcDNSTargetList",
"documentation":"<p>DNS Target records for the custom domains of this Amazon VPC. </p>"
},
"NextToken":{
"shape":"String",
"documentation":"<p>The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.</p>"
@ -1285,6 +1434,26 @@
}
}
},
"DescribeVpcIngressConnectionRequest":{
"type":"structure",
"required":["VpcIngressConnectionArn"],
"members":{
"VpcIngressConnectionArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that you want a description for.</p>"
}
}
},
"DescribeVpcIngressConnectionResponse":{
"type":"structure",
"required":["VpcIngressConnection"],
"members":{
"VpcIngressConnection":{
"shape":"VpcIngressConnection",
"documentation":"<p>A description of the App Runner VPC Ingress Connection that you specified in this request.</p>"
}
}
},
"DisassociateCustomDomainRequest":{
"type":"structure",
"required":[
@ -1307,7 +1476,8 @@
"required":[
"DNSTarget",
"ServiceArn",
"CustomDomain"
"CustomDomain",
"VpcDNSTargets"
],
"members":{
"DNSTarget":{
@ -1321,6 +1491,10 @@
"CustomDomain":{
"shape":"CustomDomain",
"documentation":"<p>A description of the domain name that's being disassociated.</p>"
},
"VpcDNSTargets":{
"shape":"VpcDNSTargetList",
"documentation":"<p>DNS Target records for the custom domains of this Amazon VPC. </p>"
}
}
},
@ -1480,6 +1654,30 @@
"ECR_PUBLIC"
]
},
"IngressConfiguration":{
"type":"structure",
"members":{
"IsPubliclyAccessible":{
"shape":"Boolean",
"documentation":"<p>Specifies whether your App Runner service is publicly accessible. To make the service publicly accessible set it to <code>True</code>. To make the service privately accessible, from only within an Amazon VPC set it to <code>False</code>. </p>"
}
},
"documentation":"<p>Network configuration settings for inbound network traffic.</p>"
},
"IngressVpcConfiguration":{
"type":"structure",
"members":{
"VpcId":{
"shape":"String",
"documentation":"<p>The ID of the VPC that is used for the VPC endpoint.</p>"
},
"VpcEndpointId":{
"shape":"String",
"documentation":"<p>The ID of the VPC endpoint that your App Runner service connects to. </p>"
}
},
"documentation":"<p>The configuration of your VPC and the associated VPC endpoint. The VPC endpoint is an Amazon Web Services PrivateLink resource that allows access to your App Runner services from within an Amazon VPC.</p>"
},
"InstanceConfiguration":{
"type":"structure",
"members":{
@ -1740,6 +1938,51 @@
}
}
},
"ListVpcIngressConnectionsFilter":{
"type":"structure",
"members":{
"ServiceArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of a service to filter by. </p>"
},
"VpcEndpointId":{
"shape":"String",
"documentation":"<p>The ID of a VPC Endpoint to filter by. </p>"
}
},
"documentation":"<p>Returns a list of VPC Ingress Connections based on the filter provided. It can return either <code>ServiceArn</code> or <code>VpcEndpointId</code>, or both.</p>"
},
"ListVpcIngressConnectionsRequest":{
"type":"structure",
"members":{
"Filter":{
"shape":"ListVpcIngressConnectionsFilter",
"documentation":"<p>The VPC Ingress Connections to be listed based on either the Service Arn or Vpc Endpoint Id, or both.</p>"
},
"MaxResults":{
"shape":"MaxResults",
"documentation":"<p>The maximum number of results to include in each response (result page). It's used for a paginated request.</p> <p>If you don't specify <code>MaxResults</code>, the request retrieves all available results in a single response.</p>"
},
"NextToken":{
"shape":"NextToken",
"documentation":"<p>A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request.</p> <p>If you don't specify <code>NextToken</code>, the request retrieves the first result page.</p>"
}
}
},
"ListVpcIngressConnectionsResponse":{
"type":"structure",
"required":["VpcIngressConnectionSummaryList"],
"members":{
"VpcIngressConnectionSummaryList":{
"shape":"VpcIngressConnectionSummaryList",
"documentation":"<p>A list of summary information records for VPC Ingress Connections. In a paginated request, the request returns up to <code>MaxResults</code> records for each call.</p>"
},
"NextToken":{
"shape":"NextToken",
"documentation":"<p>The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.</p>"
}
}
},
"MaxResults":{
"type":"integer",
"max":100,
@ -1757,6 +2000,10 @@
"EgressConfiguration":{
"shape":"EgressConfiguration",
"documentation":"<p>Network configuration settings for outbound message traffic.</p>"
},
"IngressConfiguration":{
"shape":"IngressConfiguration",
"documentation":"<p>Network configuration settings for inbound message traffic.</p>"
}
},
"documentation":"<p>Describes configuration settings related to network traffic of an App Runner service. Consists of embedded objects for each configurable network feature.</p>"
@ -1974,7 +2221,12 @@
"NODEJS_12",
"NODEJS_14",
"CORRETTO_8",
"CORRETTO_11"
"CORRETTO_11",
"NODEJS_16",
"GO_1",
"DOTNET_6",
"PHP_81",
"RUBY_31"
]
},
"RuntimeEnvironmentVariables":{
@ -2002,7 +2254,6 @@
"ServiceName",
"ServiceId",
"ServiceArn",
"ServiceUrl",
"CreatedAt",
"UpdatedAt",
"Status",
@ -2394,6 +2645,33 @@
}
}
},
"UpdateVpcIngressConnectionRequest":{
"type":"structure",
"required":[
"VpcIngressConnectionArn",
"IngressVpcConfiguration"
],
"members":{
"VpcIngressConnectionArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (Arn) for the App Runner VPC Ingress Connection resource that you want to update.</p>"
},
"IngressVpcConfiguration":{
"shape":"IngressVpcConfiguration",
"documentation":"<p>Specifications for the customers Amazon VPC and the related Amazon Web Services PrivateLink VPC endpoint that are used to update the VPC Ingress Connection resource.</p>"
}
}
},
"UpdateVpcIngressConnectionResponse":{
"type":"structure",
"required":["VpcIngressConnection"],
"members":{
"VpcIngressConnection":{
"shape":"VpcIngressConnection",
"documentation":"<p>A description of the App Runner VPC Ingress Connection resource that's updated by this request.</p>"
}
}
},
"VpcConnector":{
"type":"structure",
"members":{
@ -2448,6 +2726,107 @@
"VpcConnectors":{
"type":"list",
"member":{"shape":"VpcConnector"}
},
"VpcDNSTarget":{
"type":"structure",
"members":{
"VpcIngressConnectionArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the VPC Ingress Connection that is associated with your service.</p>"
},
"VpcId":{
"shape":"String",
"documentation":"<p>The ID of the Amazon VPC that is associated with the custom domain name of the target DNS.</p>"
},
"DomainName":{
"shape":"DomainName",
"documentation":"<p>The domain name of your target DNS that is associated with the Amazon VPC.</p>"
}
},
"documentation":"<p>DNS Target record for a custom domain of this Amazon VPC.</p>"
},
"VpcDNSTargetList":{
"type":"list",
"member":{"shape":"VpcDNSTarget"}
},
"VpcIngressConnection":{
"type":"structure",
"members":{
"VpcIngressConnectionArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the VPC Ingress Connection. </p>"
},
"VpcIngressConnectionName":{
"shape":"VpcIngressConnectionName",
"documentation":"<p>The customer-provided VPC Ingress Connection name.</p>"
},
"ServiceArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the service associated with the VPC Ingress Connection. </p>"
},
"Status":{
"shape":"VpcIngressConnectionStatus",
"documentation":"<p>The current status of the VPC Ingress Connection. The VPC Ingress Connection displays one of the following statuses: <code>AVAILABLE</code>, <code>PENDING_CREATION</code>, <code>PENDING_UPDATE</code>, <code>PENDING_DELETION</code>,<code>FAILED_CREATION</code>, <code>FAILED_UPDATE</code>, <code>FAILED_DELETION</code>, and <code>DELETED</code>.. </p>"
},
"AccountId":{
"shape":"CustomerAccountId",
"documentation":"<p>The Account Id you use to create the VPC Ingress Connection resource.</p>"
},
"DomainName":{
"shape":"DomainName",
"documentation":"<p>The domain name associated with the VPC Ingress Connection resource.</p>"
},
"IngressVpcConfiguration":{
"shape":"IngressVpcConfiguration",
"documentation":"<p>Specifications for the customers VPC and related PrivateLink VPC endpoint that are used to associate with the VPC Ingress Connection resource.</p>"
},
"CreatedAt":{
"shape":"Timestamp",
"documentation":"<p>The time when the VPC Ingress Connection was created. It's in the Unix time stamp format.</p> <ul> <li> <p> Type: Timestamp </p> </li> <li> <p> Required: Yes </p> </li> </ul>"
},
"DeletedAt":{
"shape":"Timestamp",
"documentation":"<p>The time when the App Runner service was deleted. It's in the Unix time stamp format.</p> <ul> <li> <p> Type: Timestamp </p> </li> <li> <p> Required: No </p> </li> </ul>"
}
},
"documentation":"<p>The App Runner resource that specifies an App Runner endpoint for incoming traffic. It establishes a connection between a VPC interface endpoint and a App Runner service, to make your App Runner service accessible from only within an Amazon VPC.</p>"
},
"VpcIngressConnectionName":{
"type":"string",
"max":40,
"min":4,
"pattern":"[A-Za-z0-9][A-Za-z0-9\\-_]{3,39}"
},
"VpcIngressConnectionStatus":{
"type":"string",
"enum":[
"AVAILABLE",
"PENDING_CREATION",
"PENDING_UPDATE",
"PENDING_DELETION",
"FAILED_CREATION",
"FAILED_UPDATE",
"FAILED_DELETION",
"DELETED"
]
},
"VpcIngressConnectionSummary":{
"type":"structure",
"members":{
"VpcIngressConnectionArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the VPC Ingress Connection. </p>"
},
"ServiceArn":{
"shape":"AppRunnerResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the service associated with the VPC Ingress Connection. </p>"
}
},
"documentation":"<p>Provides summary information about an VPC Ingress Connection, which includes its VPC Ingress Connection ARN and its associated Service ARN.</p>"
},
"VpcIngressConnectionSummaryList":{
"type":"list",
"member":{"shape":"VpcIngressConnectionSummary"}
}
},
"documentation":"<fullname>App Runner</fullname> <p>App Runner is an application service that provides a fast, simple, and cost-effective way to go directly from an existing container image or source code to a running service in the Amazon Web Services Cloud in seconds. You don't need to learn new technologies, decide which compute service to use, or understand how to provision and configure Amazon Web Services resources.</p> <p>App Runner connects directly to your container registry or source code repository. It provides an automatic delivery pipeline with fully managed operations, high performance, scalability, and security.</p> <p>For more information about App Runner, see the <a href=\"https://docs.aws.amazon.com/apprunner/latest/dg/\">App Runner Developer Guide</a>. For release information, see the <a href=\"https://docs.aws.amazon.com/apprunner/latest/relnotes/\">App Runner Release Notes</a>.</p> <p> To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that you can use to access the API, see <a href=\"http://aws.amazon.com/tools/\">Tools for Amazon Web Services</a>.</p> <p> <b>Endpoints</b> </p> <p>For a list of Region-specific endpoints that App Runner supports, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/apprunner.html\">App Runner endpoints and quotas</a> in the <i>Amazon Web Services General Reference</i>.</p>"

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appstream2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appstream2-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appstream2.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://appstream2.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -199,7 +199,7 @@
{"shape":"IncompatibleImageException"},
{"shape":"OperationNotPermittedException"}
],
"documentation":"<p>Creates a fleet. A fleet consists of streaming instances that run a specified image when using Always-On or On-Demand.</p>"
"documentation":"<p>Creates a fleet. A fleet consists of streaming instances that your users access for their applications and desktops.</p>"
},
"CreateImageBuilder":{
"name":"CreateImageBuilder",
@ -976,7 +976,7 @@
{"shape":"IncompatibleImageException"},
{"shape":"OperationNotPermittedException"}
],
"documentation":"<p>Updates the specified fleet.</p> <p>If the fleet is in the <code>STOPPED</code> state, you can update any attribute except the fleet name.</p> <p>If the fleet is in the <code>RUNNING</code> state, you can update the following based on the fleet type:</p> <ul> <li> <p>Always-On and On-Demand fleet types</p> <p>You can update the <code>DisplayName</code>, <code>ComputeCapacity</code>, <code>ImageARN</code>, <code>ImageName</code>, <code>IdleDisconnectTimeoutInSeconds</code>, and <code>DisconnectTimeoutInSeconds</code> attributes.</p> </li> <li> <p>Elastic fleet type</p> <p>You can update the <code>DisplayName</code>, <code>IdleDisconnectTimeoutInSeconds</code>, <code>DisconnectTimeoutInSeconds</code>, <code>MaxConcurrentSessions</code>, and <code>UsbDeviceFilterStrings</code> attributes.</p> </li> </ul> <p>If the fleet is in the <code>STARTING</code> or <code>STOPPED</code> state, you can't update it.</p>"
"documentation":"<p>Updates the specified fleet.</p> <p>If the fleet is in the <code>STOPPED</code> state, you can update any attribute except the fleet name.</p> <p>If the fleet is in the <code>RUNNING</code> state, you can update the following based on the fleet type:</p> <ul> <li> <p>Always-On and On-Demand fleet types</p> <p>You can update the <code>DisplayName</code>, <code>ComputeCapacity</code>, <code>ImageARN</code>, <code>ImageName</code>, <code>IdleDisconnectTimeoutInSeconds</code>, and <code>DisconnectTimeoutInSeconds</code> attributes.</p> </li> <li> <p>Elastic fleet type</p> <p>You can update the <code>DisplayName</code>, <code>IdleDisconnectTimeoutInSeconds</code>, <code>DisconnectTimeoutInSeconds</code>, <code>MaxConcurrentSessions</code>, <code>SessionScriptS3Location</code> and <code>UsbDeviceFilterStrings</code> attributes.</p> </li> </ul> <p>If the fleet is in the <code>STARTING</code> or <code>STOPPED</code> state, you can't update it.</p>"
},
"UpdateImagePermissions":{
"name":"UpdateImagePermissions",
@ -1346,7 +1346,8 @@
"enum":[
"API",
"SAML",
"USERPOOL"
"USERPOOL",
"AWS_AD"
]
},
"AwsAccountId":{
@ -1399,6 +1400,28 @@
},
"Boolean":{"type":"boolean"},
"BooleanObject":{"type":"boolean"},
"CertificateBasedAuthProperties":{
"type":"structure",
"members":{
"Status":{
"shape":"CertificateBasedAuthStatus",
"documentation":"<p>The status of the certificate-based authentication properties.</p>"
},
"CertificateAuthorityArn":{
"shape":"Arn",
"documentation":"<p>The ARN of the AWS Certificate Manager Private CA resource.</p>"
}
},
"documentation":"<p>The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is <b>Enabled</b> . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. <b>Enabled_no_directory_login_fallback</b> enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.</p>"
},
"CertificateBasedAuthStatus":{
"type":"string",
"enum":[
"DISABLED",
"ENABLED",
"ENABLED_NO_DIRECTORY_LOGIN_FALLBACK"
]
},
"ComputeCapacity":{
"type":"structure",
"required":["DesiredInstances"],
@ -1600,6 +1623,10 @@
"ServiceAccountCredentials":{
"shape":"ServiceAccountCredentials",
"documentation":"<p>The credentials for the service account used by the fleet or image builder to connect to the directory.</p>"
},
"CertificateBasedAuthProperties":{
"shape":"CertificateBasedAuthProperties",
"documentation":"<p>The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is <b>Enabled</b> . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. <b>Enabled_no_directory_login_fallback</b> enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.</p>"
}
}
},
@ -1673,7 +1700,7 @@
},
"InstanceType":{
"shape":"String",
"documentation":"<p>The instance type to use when launching fleet instances. The following instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li> <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li> <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p> </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p> </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p> </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p> </li> <li> <p>stream.memory.z1d.large</p> </li> <li> <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p> </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li> <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p> </li> <li> <p>stream.graphics-design.large</p> </li> <li> <p>stream.graphics-design.xlarge</p> </li> <li> <p>stream.graphics-design.2xlarge</p> </li> <li> <p>stream.graphics-design.4xlarge</p> </li> <li> <p>stream.graphics-desktop.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.xlarge</p> </li> <li> <p>stream.graphics.g4dn.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.4xlarge</p> </li> <li> <p>stream.graphics.g4dn.8xlarge</p> </li> <li> <p>stream.graphics.g4dn.12xlarge</p> </li> <li> <p>stream.graphics.g4dn.16xlarge</p> </li> <li> <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p> </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul> <p>The following instance types are available for Elastic fleets:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> </ul>"
"documentation":"<p>The instance type to use when launching fleet instances. The following instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li> <li> <p>stream.standard.xlarge</p> </li> <li> <p>stream.standard.2xlarge</p> </li> <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li> <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p> </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p> </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p> </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p> </li> <li> <p>stream.memory.z1d.large</p> </li> <li> <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p> </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li> <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p> </li> <li> <p>stream.graphics-design.large</p> </li> <li> <p>stream.graphics-design.xlarge</p> </li> <li> <p>stream.graphics-design.2xlarge</p> </li> <li> <p>stream.graphics-design.4xlarge</p> </li> <li> <p>stream.graphics-desktop.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.xlarge</p> </li> <li> <p>stream.graphics.g4dn.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.4xlarge</p> </li> <li> <p>stream.graphics.g4dn.8xlarge</p> </li> <li> <p>stream.graphics.g4dn.12xlarge</p> </li> <li> <p>stream.graphics.g4dn.16xlarge</p> </li> <li> <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p> </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul> <p>The following instance types are available for Elastic fleets:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li> <li> <p>stream.standard.xlarge</p> </li> <li> <p>stream.standard.2xlarge</p> </li> </ul>"
},
"FleetType":{
"shape":"FleetType",
@ -1898,6 +1925,10 @@
"EmbedHostDomains":{
"shape":"EmbedHostDomains",
"documentation":"<p>The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions. </p>"
},
"StreamingExperienceSettings":{
"shape":"StreamingExperienceSettings",
"documentation":"<p>The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.</p>"
}
}
},
@ -2729,6 +2760,10 @@
"CreatedTime":{
"shape":"Timestamp",
"documentation":"<p>The time the directory configuration was created.</p>"
},
"CertificateBasedAuthProperties":{
"shape":"CertificateBasedAuthProperties",
"documentation":"<p>The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is <b>Enabled</b> . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. <b>Enabled_no_directory_login_fallback</b> enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.</p>"
}
},
"documentation":"<p>Describes the configuration information required to join fleets and image builders to Microsoft Active Directory domains.</p>"
@ -3708,6 +3743,13 @@
"member":{"shape":"PlatformType"},
"max":4
},
"PreferredProtocol":{
"type":"string",
"enum":[
"TCP",
"UDP"
]
},
"RedirectURL":{
"type":"string",
"max":1000
@ -4020,6 +4062,10 @@
"EmbedHostDomains":{
"shape":"EmbedHostDomains",
"documentation":"<p>The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.</p>"
},
"StreamingExperienceSettings":{
"shape":"StreamingExperienceSettings",
"documentation":"<p>The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.</p>"
}
},
"documentation":"<p>Describes a stack.</p>"
@ -4037,7 +4083,8 @@
"USER_SETTINGS",
"EMBED_HOST_DOMAINS",
"IAM_ROLE_ARN",
"ACCESS_ENDPOINTS"
"ACCESS_ENDPOINTS",
"STREAMING_EXPERIENCE_SETTINGS"
]
},
"StackAttributes":{
@ -4187,6 +4234,16 @@
"DESKTOP"
]
},
"StreamingExperienceSettings":{
"type":"structure",
"members":{
"PreferredProtocol":{
"shape":"PreferredProtocol",
"documentation":"<p>The preferred protocol that you want to use while streaming your application.</p>"
}
},
"documentation":"<p>The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.</p>"
},
"StreamingUrlUserId":{
"type":"string",
"max":32,
@ -4339,6 +4396,10 @@
"ServiceAccountCredentials":{
"shape":"ServiceAccountCredentials",
"documentation":"<p>The credentials for the service account used by the fleet or image builder to connect to the directory.</p>"
},
"CertificateBasedAuthProperties":{
"shape":"CertificateBasedAuthProperties",
"documentation":"<p>The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is <b>Enabled</b> . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. <b>Enabled_no_directory_login_fallback</b> enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.</p>"
}
}
},
@ -4406,7 +4467,7 @@
},
"InstanceType":{
"shape":"String",
"documentation":"<p>The instance type to use when launching fleet instances. The following instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li> <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li> <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p> </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p> </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p> </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p> </li> <li> <p>stream.memory.z1d.large</p> </li> <li> <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p> </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li> <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p> </li> <li> <p>stream.graphics-design.large</p> </li> <li> <p>stream.graphics-design.xlarge</p> </li> <li> <p>stream.graphics-design.2xlarge</p> </li> <li> <p>stream.graphics-design.4xlarge</p> </li> <li> <p>stream.graphics-desktop.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.xlarge</p> </li> <li> <p>stream.graphics.g4dn.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.4xlarge</p> </li> <li> <p>stream.graphics.g4dn.8xlarge</p> </li> <li> <p>stream.graphics.g4dn.12xlarge</p> </li> <li> <p>stream.graphics.g4dn.16xlarge</p> </li> <li> <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p> </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul> <p>The following instance types are available for Elastic fleets:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> </ul>"
"documentation":"<p>The instance type to use when launching fleet instances. The following instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li> <li> <p>stream.standard.xlarge</p> </li> <li> <p>stream.standard.2xlarge</p> </li> <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li> <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p> </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p> </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p> </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p> </li> <li> <p>stream.memory.z1d.large</p> </li> <li> <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p> </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li> <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p> </li> <li> <p>stream.graphics-design.large</p> </li> <li> <p>stream.graphics-design.xlarge</p> </li> <li> <p>stream.graphics-design.2xlarge</p> </li> <li> <p>stream.graphics-design.4xlarge</p> </li> <li> <p>stream.graphics-desktop.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.xlarge</p> </li> <li> <p>stream.graphics.g4dn.2xlarge</p> </li> <li> <p>stream.graphics.g4dn.4xlarge</p> </li> <li> <p>stream.graphics.g4dn.8xlarge</p> </li> <li> <p>stream.graphics.g4dn.12xlarge</p> </li> <li> <p>stream.graphics.g4dn.16xlarge</p> </li> <li> <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p> </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul> <p>The following instance types are available for Elastic fleets:</p> <ul> <li> <p>stream.standard.small</p> </li> <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li> <li> <p>stream.standard.xlarge</p> </li> <li> <p>stream.standard.2xlarge</p> </li> </ul>"
},
"ComputeCapacity":{
"shape":"ComputeCapacity",
@ -4567,6 +4628,10 @@
"EmbedHostDomains":{
"shape":"EmbedHostDomains",
"documentation":"<p>The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions. </p>"
},
"StreamingExperienceSettings":{
"shape":"StreamingExperienceSettings",
"documentation":"<p>The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.</p>"
}
}
},

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": true,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appsync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appsync-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://appsync.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://appsync.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -144,7 +144,8 @@
{"shape":"ConcurrentModificationException"},
{"shape":"NotFoundException"},
{"shape":"UnauthorizedException"},
{"shape":"InternalFailureException"}
{"shape":"InternalFailureException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Creates a <code>Resolver</code> object.</p> <p>A resolver converts incoming requests into a format that a data source can understand, and converts the data source's responses into GraphQL.</p>"
},
@ -278,7 +279,8 @@
{"shape":"ConcurrentModificationException"},
{"shape":"NotFoundException"},
{"shape":"UnauthorizedException"},
{"shape":"InternalFailureException"}
{"shape":"InternalFailureException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Deletes a <code>Resolver</code> object.</p>"
},
@ -316,6 +318,36 @@
],
"documentation":"<p>Removes an <code>ApiAssociation</code> object from a custom domain.</p>"
},
"EvaluateCode":{
"name":"EvaluateCode",
"http":{
"method":"POST",
"requestUri":"/v1/dataplane-evaluatecode"
},
"input":{"shape":"EvaluateCodeRequest"},
"output":{"shape":"EvaluateCodeResponse"},
"errors":[
{"shape":"AccessDeniedException"},
{"shape":"InternalFailureException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Evaluates the given code and returns the response. The code definition requirements depend on the specified runtime. For <code>APPSYNC_JS</code> runtimes, the code defines the request and response functions. The request function takes the incoming request after a GraphQL operation is parsed and converts it into a request configuration for the selected data source operation. The response function interprets responses from the data source and maps it to the shape of the GraphQL field output type. </p>"
},
"EvaluateMappingTemplate":{
"name":"EvaluateMappingTemplate",
"http":{
"method":"POST",
"requestUri":"/v1/dataplane-evaluatetemplate"
},
"input":{"shape":"EvaluateMappingTemplateRequest"},
"output":{"shape":"EvaluateMappingTemplateResponse"},
"errors":[
{"shape":"AccessDeniedException"},
{"shape":"InternalFailureException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Evaluates a given template and returns the response. The mapping template can be a request or response template.</p> <p>Request templates take the incoming request after a GraphQL operation is parsed and convert it into a request configuration for the selected data source operation. Response templates interpret responses from the data source and map it to the shape of the GraphQL field output type.</p> <p>Mapping templates are written in the Apache Velocity Template Language (VTL).</p>"
},
"FlushApiCache":{
"name":"FlushApiCache",
"http":{
@ -808,7 +840,8 @@
{"shape":"ConcurrentModificationException"},
{"shape":"NotFoundException"},
{"shape":"UnauthorizedException"},
{"shape":"InternalFailureException"}
{"shape":"InternalFailureException"},
{"shape":"BadRequestException"}
],
"documentation":"<p>Updates a <code>Resolver</code> object.</p>"
},
@ -1008,6 +1041,24 @@
"error":{"httpStatusCode":400},
"exception":true
},
"AppSyncRuntime":{
"type":"structure",
"required":[
"name",
"runtimeVersion"
],
"members":{
"name":{
"shape":"RuntimeName",
"documentation":"<p>The <code>name</code> of the runtime to use. Currently, the only allowed value is <code>APPSYNC_JS</code>.</p>"
},
"runtimeVersion":{
"shape":"String",
"documentation":"<p>The <code>version</code> of the runtime to use. Currently, the only allowed version is <code>1.0.0</code>.</p>"
}
},
"documentation":"<p>Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.</p>"
},
"AssociateApiRequest":{
"type":"structure",
"required":[
@ -1087,20 +1138,38 @@
},
"documentation":"<p>The Identity and Access Management (IAM) configuration.</p>"
},
"BadRequestDetail":{
"type":"structure",
"members":{
"codeErrors":{
"shape":"CodeErrors",
"documentation":"<p>Contains the list of errors in the request.</p>"
}
},
"documentation":"<p>Provides further details for the reason behind the bad request. For reason type <code>CODE_ERROR</code>, the detail will contain a list of code errors.</p>"
},
"BadRequestException":{
"type":"structure",
"members":{
"message":{"shape":"ErrorMessage"}
"message":{"shape":"ErrorMessage"},
"reason":{"shape":"BadRequestReason"},
"detail":{"shape":"BadRequestDetail"}
},
"documentation":"<p>The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.</p>",
"error":{"httpStatusCode":400},
"exception":true
},
"BadRequestReason":{
"type":"string",
"documentation":"<p>Provides context for the cause of the bad request. The only supported value is <code>CODE_ERROR</code>.</p>",
"enum":["CODE_ERROR"]
},
"Blob":{"type":"blob"},
"Boolean":{"type":"boolean"},
"BooleanValue":{"type":"boolean"},
"CachingConfig":{
"type":"structure",
"required":["ttl"],
"members":{
"ttl":{
"shape":"Long",
@ -1123,6 +1192,54 @@
"min":20,
"pattern":"^arn:[a-z-]*:(acm|iam):[a-z0-9-]*:\\d{12}:(certificate|server-certificate)/[0-9A-Za-z_/-]*$"
},
"Code":{
"type":"string",
"max":32768,
"min":1
},
"CodeError":{
"type":"structure",
"members":{
"errorType":{
"shape":"String",
"documentation":"<p>The type of code error. </p> <p>Examples include, but aren't limited to: <code>LINT_ERROR</code>, <code>PARSER_ERROR</code>.</p>"
},
"value":{
"shape":"String",
"documentation":"<p>A user presentable error.</p> <p>Examples include, but aren't limited to: <code>Parsing error: Unterminated string literal</code>.</p>"
},
"location":{
"shape":"CodeErrorLocation",
"documentation":"<p>The line, column, and span location of the error in the code.</p>"
}
},
"documentation":"<p>Describes an AppSync error.</p>"
},
"CodeErrorColumn":{"type":"integer"},
"CodeErrorLine":{"type":"integer"},
"CodeErrorLocation":{
"type":"structure",
"members":{
"line":{
"shape":"CodeErrorLine",
"documentation":"<p>The line number in the code. Defaults to <code>0</code> if unknown.</p>"
},
"column":{
"shape":"CodeErrorColumn",
"documentation":"<p>The column number in the code. Defaults to <code>0</code> if unknown.</p>"
},
"span":{
"shape":"CodeErrorSpan",
"documentation":"<p>The span/length of the error. Defaults to <code>-1</code> if unknown.</p>"
}
},
"documentation":"<p>Describes the location of the error in a code sample.</p>"
},
"CodeErrorSpan":{"type":"integer"},
"CodeErrors":{
"type":"list",
"member":{"shape":"CodeError"}
},
"CognitoUserPoolConfig":{
"type":"structure",
"required":[
@ -1140,7 +1257,7 @@
},
"appIdClientRegex":{
"shape":"String",
"documentation":"<p>A regular expression for validating the incoming Amazon Cognito user pool app client ID.</p>"
"documentation":"<p>A regular expression for validating the incoming Amazon Cognito user pool app client ID. If this value isn't set, no filtering is applied.</p>"
}
},
"documentation":"<p>Describes an Amazon Cognito user pool configuration.</p>"
@ -1170,6 +1287,12 @@
"NONE"
]
},
"Context":{
"type":"string",
"max":28000,
"min":2,
"pattern":"^[\\s\\S]*$"
},
"CreateApiCacheRequest":{
"type":"structure",
"required":[
@ -1347,8 +1470,7 @@
"required":[
"apiId",
"name",
"dataSourceName",
"functionVersion"
"dataSourceName"
],
"members":{
"apiId":{
@ -1379,12 +1501,17 @@
},
"functionVersion":{
"shape":"String",
"documentation":"<p>The <code>version</code> of the request mapping template. Currently, the supported value is 2018-05-29.</p>"
"documentation":"<p>The <code>version</code> of the request mapping template. Currently, the supported value is 2018-05-29. Note that when using VTL and mapping templates, the <code>functionVersion</code> is required.</p>"
},
"syncConfig":{"shape":"SyncConfig"},
"maxBatchSize":{
"shape":"MaxBatchSize",
"documentation":"<p>The maximum batching size for a resolver.</p>"
},
"runtime":{"shape":"AppSyncRuntime"},
"code":{
"shape":"Code",
"documentation":"<p>The <code>function</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>"
}
}
},
@ -1506,6 +1633,11 @@
"maxBatchSize":{
"shape":"MaxBatchSize",
"documentation":"<p>The maximum batching size for a resolver.</p>"
},
"runtime":{"shape":"AppSyncRuntime"},
"code":{
"shape":"Code",
"documentation":"<p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>"
}
}
},
@ -1939,7 +2071,114 @@
},
"documentation":"<p>Describes an OpenSearch data source configuration.</p> <p>As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is deprecated. For new data sources, use <a>OpenSearchServiceDataSourceConfig</a> to specify an OpenSearch data source.</p>"
},
"ErrorDetail":{
"type":"structure",
"members":{
"message":{
"shape":"ErrorMessage",
"documentation":"<p>The error payload.</p>"
}
},
"documentation":"<p>Contains the list of errors generated. When using JavaScript, this will apply to the request or response function evaluation.</p>"
},
"ErrorMessage":{"type":"string"},
"EvaluateCodeErrorDetail":{
"type":"structure",
"members":{
"message":{
"shape":"ErrorMessage",
"documentation":"<p>The error payload.</p>"
},
"codeErrors":{
"shape":"CodeErrors",
"documentation":"<p>Contains the list of <code>CodeError</code> objects.</p>"
}
},
"documentation":"<p>Contains the list of errors from a code evaluation response.</p>"
},
"EvaluateCodeRequest":{
"type":"structure",
"required":[
"runtime",
"code",
"context"
],
"members":{
"runtime":{
"shape":"AppSyncRuntime",
"documentation":"<p>The runtime to be used when evaluating the code. Currently, only the <code>APPSYNC_JS</code> runtime is supported.</p>"
},
"code":{
"shape":"Code",
"documentation":"<p>The code definition to be evaluated. Note that <code>code</code> and <code>runtime</code> are both required for this action. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>"
},
"context":{
"shape":"Context",
"documentation":"<p>The map that holds all of the contextual information for your resolver invocation. A <code>context</code> is required for this action.</p>"
},
"function":{
"shape":"String",
"documentation":"<p>The function within the code to be evaluated. If provided, the valid values are <code>request</code> and <code>response</code>.</p>"
}
}
},
"EvaluateCodeResponse":{
"type":"structure",
"members":{
"evaluationResult":{
"shape":"EvaluationResult",
"documentation":"<p>The result of the evaluation operation.</p>"
},
"error":{
"shape":"EvaluateCodeErrorDetail",
"documentation":"<p>Contains the payload of the response error.</p>"
},
"logs":{
"shape":"Logs",
"documentation":"<p>A list of logs that were generated by calls to <code>util.log.info</code> and <code>util.log.error</code> in the evaluated code.</p>"
}
}
},
"EvaluateMappingTemplateRequest":{
"type":"structure",
"required":[
"template",
"context"
],
"members":{
"template":{
"shape":"Template",
"documentation":"<p>The mapping template; this can be a request or response template. A <code>template</code> is required for this action.</p>"
},
"context":{
"shape":"Context",
"documentation":"<p>The map that holds all of the contextual information for your resolver invocation. A <code>context</code> is required for this action.</p>"
}
}
},
"EvaluateMappingTemplateResponse":{
"type":"structure",
"members":{
"evaluationResult":{
"shape":"EvaluationResult",
"documentation":"<p>The mapping template; this can be a request or response template.</p>"
},
"error":{
"shape":"ErrorDetail",
"documentation":"<p>The <code>ErrorDetail</code> object.</p>"
},
"logs":{
"shape":"Logs",
"documentation":"<p>A list of logs that were generated by calls to <code>util.log.info</code> and <code>util.log.error</code> in the evaluated code.</p>"
}
}
},
"EvaluationResult":{
"type":"string",
"max":65536,
"min":0,
"pattern":"^[\\s\\S]*$"
},
"FieldLogLevel":{
"type":"string",
"enum":[
@ -2006,6 +2245,11 @@
"maxBatchSize":{
"shape":"MaxBatchSize",
"documentation":"<p>The maximum batching size for a resolver.</p>"
},
"runtime":{"shape":"AppSyncRuntime"},
"code":{
"shape":"Code",
"documentation":"<p>The <code>function</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>"
}
},
"documentation":"<p>A function is a reusable entity. You can use multiple functions to compose the resolver logic.</p>"
@ -2796,6 +3040,10 @@
},
"documentation":"<p>The Amazon CloudWatch Logs configuration.</p>"
},
"Logs":{
"type":"list",
"member":{"shape":"String"}
},
"Long":{"type":"long"},
"MapOfStringToString":{
"type":"map",
@ -2981,6 +3229,11 @@
"maxBatchSize":{
"shape":"MaxBatchSize",
"documentation":"<p>The maximum batching size for a resolver.</p>"
},
"runtime":{"shape":"AppSyncRuntime"},
"code":{
"shape":"Code",
"documentation":"<p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>"
}
},
"documentation":"<p>Describes a resolver.</p>"
@ -3008,6 +3261,10 @@
"min":1,
"pattern":"[_A-Za-z][_0-9A-Za-z]*"
},
"RuntimeName":{
"type":"string",
"enum":["APPSYNC_JS"]
},
"SchemaStatus":{
"type":"string",
"enum":[
@ -3122,6 +3379,12 @@
"max":256,
"pattern":"^[\\s\\w+-=\\.:/@]*$"
},
"Template":{
"type":"string",
"max":65536,
"min":2,
"pattern":"^[\\s\\S]*$"
},
"Type":{
"type":"structure",
"members":{
@ -3370,8 +3633,7 @@
"apiId",
"name",
"functionId",
"dataSourceName",
"functionVersion"
"dataSourceName"
],
"members":{
"apiId":{
@ -3408,12 +3670,17 @@
},
"functionVersion":{
"shape":"String",
"documentation":"<p>The <code>version</code> of the request mapping template. Currently, the supported value is 2018-05-29.</p>"
"documentation":"<p>The <code>version</code> of the request mapping template. Currently, the supported value is 2018-05-29. Note that when using VTL and mapping templates, the <code>functionVersion</code> is required.</p>"
},
"syncConfig":{"shape":"SyncConfig"},
"maxBatchSize":{
"shape":"MaxBatchSize",
"documentation":"<p>The maximum batching size for a resolver.</p>"
},
"runtime":{"shape":"AppSyncRuntime"},
"code":{
"shape":"Code",
"documentation":"<p>The <code>function</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>"
}
}
},
@ -3539,6 +3806,11 @@
"maxBatchSize":{
"shape":"MaxBatchSize",
"documentation":"<p>The maximum batching size for a resolver.</p>"
},
"runtime":{"shape":"AppSyncRuntime"},
"code":{
"shape":"Code",
"documentation":"<p>The <code>resolver</code> code that contains the request and response functions. When code is used, the <code>runtime</code> is required. The <code>runtime</code> value must be <code>APPSYNC_JS</code>.</p>"
}
}
},
@ -3612,7 +3884,7 @@
},
"appIdClientRegex":{
"shape":"String",
"documentation":"<p>A regular expression for validating the incoming Amazon Cognito user pool app client ID.</p>"
"documentation":"<p>A regular expression for validating the incoming Amazon Cognito user pool app client ID. If this value isn't set, no filtering is applied.</p>"
}
},
"documentation":"<p>Describes an Amazon Cognito user pool configuration.</p>"

View file

@ -0,0 +1,309 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": true,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://arc-zonal-shift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://arc-zonal-shift-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://arc-zonal-shift.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://arc-zonal-shift.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,16 @@
{
"pagination": {
"ListManagedResources": {
"input_token": "nextToken",
"output_token": "nextToken",
"limit_key": "maxResults",
"result_key": "items"
},
"ListZonalShifts": {
"input_token": "nextToken",
"output_token": "nextToken",
"limit_key": "maxResults",
"result_key": "items"
}
}
}

View file

@ -0,0 +1,638 @@
{
"version":"2.0",
"metadata":{
"apiVersion":"2022-10-30",
"endpointPrefix":"arc-zonal-shift",
"jsonVersion":"1.1",
"protocol":"rest-json",
"serviceFullName":"AWS ARC - Zonal Shift",
"serviceId":"ARC Zonal Shift",
"signatureVersion":"v4",
"signingName":"arc-zonal-shift",
"uid":"arc-zonal-shift-2022-10-30"
},
"operations":{
"CancelZonalShift":{
"name":"CancelZonalShift",
"http":{
"method":"DELETE",
"requestUri":"/zonalshifts/{zonalShiftId}",
"responseCode":200
},
"input":{"shape":"CancelZonalShiftRequest"},
"output":{"shape":"ZonalShift"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ConflictException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"}
],
"documentation":"<p>Cancel a zonal shift in Amazon Route 53 Application Recovery Controller that you've started for a resource in your AWS account in an AWS Region. </p>"
},
"GetManagedResource":{
"name":"GetManagedResource",
"http":{
"method":"GET",
"requestUri":"/managedresources/{resourceIdentifier}",
"responseCode":200
},
"input":{"shape":"GetManagedResourceRequest"},
"output":{"shape":"GetManagedResourceResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"}
],
"documentation":"<p>Get information about a resource that's been registered for zonal shifts with Amazon Route 53 Application Recovery Controller in this AWS Region. Resources that are registered for zonal shifts are managed resources in Route 53 ARC.</p> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p>"
},
"ListManagedResources":{
"name":"ListManagedResources",
"http":{
"method":"GET",
"requestUri":"/managedresources",
"responseCode":200
},
"input":{"shape":"ListManagedResourcesRequest"},
"output":{"shape":"ListManagedResourcesResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"}
],
"documentation":"<p>Lists all the resources in your AWS account in this AWS Region that are managed for zonal shifts in Amazon Route 53 Application Recovery Controller, and information about them. The information includes their Amazon Resource Names (ARNs), the Availability Zones the resources are deployed in, and the resource name.</p>"
},
"ListZonalShifts":{
"name":"ListZonalShifts",
"http":{
"method":"GET",
"requestUri":"/zonalshifts",
"responseCode":200
},
"input":{"shape":"ListZonalShiftsRequest"},
"output":{"shape":"ListZonalShiftsResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"}
],
"documentation":"<p>Lists all the active zonal shifts in Amazon Route 53 Application Recovery Controller in your AWS account in this AWS Region.</p>"
},
"StartZonalShift":{
"name":"StartZonalShift",
"http":{
"method":"POST",
"requestUri":"/zonalshifts",
"responseCode":201
},
"input":{"shape":"StartZonalShiftRequest"},
"output":{"shape":"ZonalShift"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ConflictException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"}
],
"documentation":"<p>You start a zonal shift to temporarily move load balancer traffic away from an Availability Zone in a AWS Region, to help your application recover immediately, for example, from a developer's bad code deployment or from an AWS infrastructure failure in a single Availability Zone. You can start a zonal shift in Route 53 ARC only for managed resources in your account in an AWS Region. Resources are automatically registered with Route 53 ARC by AWS services.</p> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p> <p>When you start a zonal shift, traffic for the resource is no longer routed to the Availability Zone. The zonal shift is created immediately in Route 53 ARC. However, it can take a short time, typically up to a few minutes, for existing, in-progress connections in the Availability Zone to complete.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.html\">Zonal shift</a> in the Amazon Route 53 Application Recovery Controller Developer Guide.</p>"
},
"UpdateZonalShift":{
"name":"UpdateZonalShift",
"http":{
"method":"PATCH",
"requestUri":"/zonalshifts/{zonalShiftId}",
"responseCode":200
},
"input":{"shape":"UpdateZonalShiftRequest"},
"output":{"shape":"ZonalShift"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ConflictException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"}
],
"documentation":"<p>Update an active zonal shift in Amazon Route 53 Application Recovery Controller in your AWS account. You can update a zonal shift to set a new expiration, or edit or replace the comment for the zonal shift. </p>"
}
},
"shapes":{
"AccessDeniedException":{
"type":"structure",
"members":{
"message":{"shape":"String"}
},
"documentation":"<p>You do not have sufficient access to perform this action.</p>",
"error":{
"httpStatusCode":403,
"senderFault":true
},
"exception":true
},
"AppliedStatus":{
"type":"string",
"enum":[
"APPLIED",
"NOT_APPLIED"
]
},
"AppliedWeights":{
"type":"map",
"key":{"shape":"AvailabilityZone"},
"value":{"shape":"Weight"}
},
"AvailabilityZone":{
"type":"string",
"max":20,
"min":0
},
"AvailabilityZones":{
"type":"list",
"member":{"shape":"AvailabilityZone"}
},
"CancelZonalShiftRequest":{
"type":"structure",
"required":["zonalShiftId"],
"members":{
"zonalShiftId":{
"shape":"ZonalShiftId",
"documentation":"<p>The internally-generated identifier of a zonal shift.</p>",
"location":"uri",
"locationName":"zonalShiftId"
}
}
},
"ConflictException":{
"type":"structure",
"required":[
"message",
"reason"
],
"members":{
"message":{"shape":"String"},
"reason":{
"shape":"ConflictExceptionReason",
"documentation":"<p>The reason for the conflict exception.</p>"
},
"zonalShiftId":{
"shape":"String",
"documentation":"<p>The zonal shift ID associated with the conflict exception.</p>"
}
},
"documentation":"<p>The request could not be processed because of conflict in the current state of the resource.</p>",
"error":{
"httpStatusCode":409,
"senderFault":true
},
"exception":true
},
"ConflictExceptionReason":{
"type":"string",
"enum":[
"ZonalShiftAlreadyExists",
"ZonalShiftStatusNotActive",
"SimultaneousZonalShiftsConflict"
]
},
"ExpiresIn":{
"type":"string",
"max":5,
"min":2,
"pattern":"^([1-9][0-9]*)(m|h)$"
},
"ExpiryTime":{"type":"timestamp"},
"GetManagedResourceRequest":{
"type":"structure",
"required":["resourceIdentifier"],
"members":{
"resourceIdentifier":{
"shape":"ResourceIdentifier",
"documentation":"<p>The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.</p> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p>",
"location":"uri",
"locationName":"resourceIdentifier"
}
}
},
"GetManagedResourceResponse":{
"type":"structure",
"required":[
"appliedWeights",
"zonalShifts"
],
"members":{
"appliedWeights":{
"shape":"AppliedWeights",
"documentation":"<p>A collection of key-value pairs that indicate whether resources are active in Availability Zones or not. The key name is the Availability Zone where the resource is deployed. The value is 1 or 0.</p>"
},
"arn":{
"shape":"ResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) for the resource.</p>"
},
"name":{
"shape":"ResourceName",
"documentation":"<p>The name of the resource.</p>"
},
"zonalShifts":{
"shape":"ZonalShiftsInResource",
"documentation":"<p>The zonal shifts that are currently active for a resource. </p>"
}
}
},
"InternalServerException":{
"type":"structure",
"members":{
"message":{"shape":"String"}
},
"documentation":"<p>There was an internal server error.</p>",
"error":{"httpStatusCode":500},
"exception":true,
"fault":true
},
"ListManagedResourcesRequest":{
"type":"structure",
"members":{
"maxResults":{
"shape":"MaxResults",
"documentation":"<p>The number of objects that you want to return with this call.</p>",
"location":"querystring",
"locationName":"maxResults"
},
"nextToken":{
"shape":"String",
"documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>NextToken</code> response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's <code>NextToken</code> response to request the next page of results.</p>",
"location":"querystring",
"locationName":"nextToken"
}
}
},
"ListManagedResourcesResponse":{
"type":"structure",
"required":["items"],
"members":{
"items":{
"shape":"ManagedResourceSummaries",
"documentation":"<p>The items in the response list.</p>"
},
"nextToken":{
"shape":"String",
"documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>NextToken</code> response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's <code>NextToken</code> response to request the next page of results.</p>"
}
}
},
"ListZonalShiftsRequest":{
"type":"structure",
"members":{
"maxResults":{
"shape":"MaxResults",
"documentation":"<p>The number of objects that you want to return with this call.</p>",
"location":"querystring",
"locationName":"maxResults"
},
"nextToken":{
"shape":"String",
"documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>NextToken</code> response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's <code>NextToken</code> response to request the next page of results.</p>",
"location":"querystring",
"locationName":"nextToken"
},
"status":{
"shape":"ZonalShiftStatus",
"documentation":"<p>A status for a zonal shift.</p> <p>The <code>Status</code> for a zonal shift can have one of the following values:</p> <ul> <li> <p> <b>ACTIVE</b>: The zonal shift is started and active.</p> </li> <li> <p> <b>EXPIRED</b>: The zonal shift has expired (the expiry time was exceeded).</p> </li> <li> <p> <b>CANCELED</b>: The zonal shift was canceled.</p> </li> </ul>",
"location":"querystring",
"locationName":"status"
}
}
},
"ListZonalShiftsResponse":{
"type":"structure",
"members":{
"items":{
"shape":"ZonalShiftSummaries",
"documentation":"<p>The items in the response list.</p>"
},
"nextToken":{
"shape":"String",
"documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>NextToken</code> response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's <code>NextToken</code> response to request the next page of results.</p>"
}
}
},
"ManagedResourceSummaries":{
"type":"list",
"member":{"shape":"ManagedResourceSummary"}
},
"ManagedResourceSummary":{
"type":"structure",
"required":["availabilityZones"],
"members":{
"arn":{
"shape":"ResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) for the managed resource.</p>"
},
"availabilityZones":{
"shape":"AvailabilityZones",
"documentation":"<p>The Availability Zones that a resource is deployed in.</p>"
},
"name":{
"shape":"ResourceName",
"documentation":"<p>The name of the managed resource.</p>"
}
},
"documentation":"<p>A complex structure for a managed resource in an account.</p> <p>A managed resource is a Network Load Balancer or Application Load Balancer that has been registered with Route 53 ARC by Elastic Load Balancing. You can start a zonal shift in Route 53 ARC for a managed resource to temporarily move traffic for the resource away from an Availability Zone in an AWS Region.</p> <note> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p> </note>"
},
"MaxResults":{
"type":"integer",
"box":true,
"max":100,
"min":1
},
"ResourceArn":{
"type":"string",
"max":1024,
"min":8,
"pattern":"^arn:.*$"
},
"ResourceIdentifier":{
"type":"string",
"max":1024,
"min":8
},
"ResourceName":{
"type":"string",
"max":256,
"min":1
},
"ResourceNotFoundException":{
"type":"structure",
"required":["message"],
"members":{
"message":{"shape":"String"}
},
"documentation":"<p>The input requested a resource that was not found.</p>",
"error":{
"httpStatusCode":404,
"senderFault":true
},
"exception":true
},
"StartTime":{"type":"timestamp"},
"StartZonalShiftRequest":{
"type":"structure",
"required":[
"awayFrom",
"comment",
"expiresIn",
"resourceIdentifier"
],
"members":{
"awayFrom":{
"shape":"AvailabilityZone",
"documentation":"<p>The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.</p>"
},
"comment":{
"shape":"ZonalShiftComment",
"documentation":"<p>A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.</p>"
},
"expiresIn":{
"shape":"ExpiresIn",
"documentation":"<p>The length of time that you want a zonal shift to be active, which Route 53 ARC converts to an expiry time (expiration time). Zonal shifts are temporary. You can set a zonal shift to be active initially for up to three days (72 hours).</p> <p>If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.</p> <p>To set a length of time for a zonal shift to be active, specify a whole number, and then one of the following, with no space:</p> <pre><code> &lt;ul&gt; &lt;li&gt; &lt;p&gt; &lt;b&gt;A lowercase letter m:&lt;/b&gt; To specify that the value is in minutes.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt; &lt;b&gt;A lowercase letter h:&lt;/b&gt; To specify that the value is in hours.&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;For example: &lt;code&gt;20h&lt;/code&gt; means the zonal shift expires in 20 hours. &lt;code&gt;120m&lt;/code&gt; means the zonal shift expires in 120 minutes (2 hours).&lt;/p&gt; </code></pre>"
},
"resourceIdentifier":{
"shape":"ResourceIdentifier",
"documentation":"<p>The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.</p> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p>"
}
}
},
"String":{"type":"string"},
"ThrottlingException":{
"type":"structure",
"members":{
"message":{"shape":"String"}
},
"documentation":"<p>The request was denied due to request throttling.</p>",
"error":{
"httpStatusCode":429,
"senderFault":true
},
"exception":true
},
"UpdateZonalShiftRequest":{
"type":"structure",
"required":["zonalShiftId"],
"members":{
"comment":{
"shape":"ZonalShiftComment",
"documentation":"<p>A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.</p>"
},
"expiresIn":{
"shape":"ExpiresIn",
"documentation":"<p>The length of time that you want a zonal shift to be active, which Route 53 ARC converts to an expiry time (expiration time). Zonal shifts are temporary. You can set a zonal shift to be active initially for up to three days (72 hours).</p> <p>If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.</p> <p>To set a length of time for a zonal shift to be active, specify a whole number, and then one of the following, with no space:</p> <ul> <li> <p> <b>A lowercase letter m:</b> To specify that the value is in minutes.</p> </li> <li> <p> <b>A lowercase letter h:</b> To specify that the value is in hours.</p> </li> </ul> <p>For example: <code>20h</code> means the zonal shift expires in 20 hours. <code>120m</code> means the zonal shift expires in 120 minutes (2 hours).</p>"
},
"zonalShiftId":{
"shape":"ZonalShiftId",
"documentation":"<p>The identifier of a zonal shift.</p>",
"location":"uri",
"locationName":"zonalShiftId"
}
}
},
"ValidationException":{
"type":"structure",
"required":[
"message",
"reason"
],
"members":{
"message":{"shape":"String"},
"reason":{
"shape":"ValidationExceptionReason",
"documentation":"<p>The reason for the validation exception.</p>"
}
},
"documentation":"<p>The input fails to satisfy the constraints specified by an AWS service.</p>",
"error":{
"httpStatusCode":400,
"senderFault":true
},
"exception":true
},
"ValidationExceptionReason":{
"type":"string",
"enum":[
"InvalidExpiresIn",
"InvalidStatus",
"MissingValue",
"InvalidToken",
"InvalidResourceIdentifier",
"InvalidAz",
"UnsupportedAz"
]
},
"Weight":{
"type":"float",
"box":true,
"max":1.0,
"min":0.0
},
"ZonalShift":{
"type":"structure",
"required":[
"awayFrom",
"comment",
"expiryTime",
"resourceIdentifier",
"startTime",
"status",
"zonalShiftId"
],
"members":{
"awayFrom":{
"shape":"AvailabilityZone",
"documentation":"<p>The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.</p>"
},
"comment":{
"shape":"ZonalShiftComment",
"documentation":"<p>A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.</p>"
},
"expiryTime":{
"shape":"ExpiryTime",
"documentation":"<p>The expiry time (expiration time) for the zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time. </p> <p>When you start a zonal shift, you specify how long you want it to be active, which Route 53 ARC converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can update the zonal shift to specify another length of time to expire in.</p>"
},
"resourceIdentifier":{
"shape":"ResourceIdentifier",
"documentation":"<p>The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.</p> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p>"
},
"startTime":{
"shape":"StartTime",
"documentation":"<p>The time (UTC) when the zonal shift is started.</p>"
},
"status":{
"shape":"ZonalShiftStatus",
"documentation":"<p>A status for a zonal shift.</p> <p>The <code>Status</code> for a zonal shift can have one of the following values:</p> <ul> <li> <p> <b>ACTIVE:</b> The zonal shift is started and active.</p> </li> <li> <p> <b>EXPIRED:</b> The zonal shift has expired (the expiry time was exceeded).</p> </li> <li> <p> <b>CANCELED:</b> The zonal shift was canceled.</p> </li> </ul>"
},
"zonalShiftId":{
"shape":"ZonalShiftId",
"documentation":"<p>The identifier of a zonal shift.</p>"
}
}
},
"ZonalShiftComment":{
"type":"string",
"max":128,
"min":0
},
"ZonalShiftId":{
"type":"string",
"max":36,
"min":6,
"pattern":"^[A-Za-z0-9-]+$"
},
"ZonalShiftInResource":{
"type":"structure",
"required":[
"appliedStatus",
"awayFrom",
"comment",
"expiryTime",
"resourceIdentifier",
"startTime",
"zonalShiftId"
],
"members":{
"appliedStatus":{
"shape":"AppliedStatus",
"documentation":"<p>An <code>appliedStatus</code> for a zonal shift for a resource can have one of two values: <code>APPLIED</code> or <code>NOT_APPLIED</code>. </p>"
},
"awayFrom":{
"shape":"AvailabilityZone",
"documentation":"<p>The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.</p>"
},
"comment":{
"shape":"ZonalShiftComment",
"documentation":"<p>A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.</p>"
},
"expiryTime":{
"shape":"ExpiryTime",
"documentation":"<p>The expiry time (expiration time) for the zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time. </p> <p>When you start a zonal shift, you specify how long you want it to be active, which Route 53 ARC converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can update the zonal shift to specify another length of time to expire in.</p>"
},
"resourceIdentifier":{
"shape":"ResourceIdentifier",
"documentation":"<p>The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.</p> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p>"
},
"startTime":{
"shape":"StartTime",
"documentation":"<p>The time (UTC) when the zonal shift is started.</p>"
},
"zonalShiftId":{
"shape":"ZonalShiftId",
"documentation":"<p>The identifier of a zonal shift.</p>"
}
},
"documentation":"<p>A complex structure that lists the zonal shifts for a managed resource and their statuses for the resource.</p>"
},
"ZonalShiftStatus":{
"type":"string",
"enum":[
"ACTIVE",
"EXPIRED",
"CANCELED"
]
},
"ZonalShiftSummaries":{
"type":"list",
"member":{"shape":"ZonalShiftSummary"}
},
"ZonalShiftSummary":{
"type":"structure",
"required":[
"awayFrom",
"comment",
"expiryTime",
"resourceIdentifier",
"startTime",
"status",
"zonalShiftId"
],
"members":{
"awayFrom":{
"shape":"AvailabilityZone",
"documentation":"<p>The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.</p>"
},
"comment":{
"shape":"ZonalShiftComment",
"documentation":"<p>A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.</p>"
},
"expiryTime":{
"shape":"ExpiryTime",
"documentation":"<p>The expiry time (expiration time) for the zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time. </p> <p>When you start a zonal shift, you specify how long you want it to be active, which Route 53 ARC converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can update the zonal shift to specify another length of time to expire in.</p>"
},
"resourceIdentifier":{
"shape":"ResourceIdentifier",
"documentation":"<p>The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.</p> <p>At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p>"
},
"startTime":{
"shape":"StartTime",
"documentation":"<p>The time (UTC) when the zonal shift is started.</p>"
},
"status":{
"shape":"ZonalShiftStatus",
"documentation":"<p>A status for a zonal shift.</p> <p>The <code>Status</code> for a zonal shift can have one of the following values:</p> <ul> <li> <p> <b>ACTIVE:</b> The zonal shift is started and active.</p> </li> <li> <p> <b>EXPIRED:</b> The zonal shift has expired (the expiry time was exceeded).</p> </li> <li> <p> <b>CANCELED:</b> The zonal shift was canceled.</p> </li> </ul>"
},
"zonalShiftId":{
"shape":"ZonalShiftId",
"documentation":"<p>The identifier of a zonal shift.</p>"
}
},
"documentation":"<p>You start a zonal shift to temporarily move load balancer traffic away from an Availability Zone in a AWS Region. A zonal shift helps your application recover immediately, for example, from a developer's bad code deployment or from an AWS infrastructure failure in a single Availability Zone. You can start a zonal shift in Route 53 ARC only for managed resources in your account in an AWS Region. Supported AWS resources are automatically registered with Route 53 ARC.</p> <p>Zonal shifts are temporary. A zonal shift can be active for up to three days (72 hours).</p> <p>When you start a zonal shift, you specify how long you want it to be active, which Amazon Route 53 Application Recovery Controller converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can extend the zonal shift by updating the expiration so the zonal shift is active longer.</p>"
},
"ZonalShiftsInResource":{
"type":"list",
"member":{"shape":"ZonalShiftInResource"}
}
},
"documentation":"<p>This is the API Reference Guide for the zonal shift feature of Amazon Route 53 Application Recovery Controller. This guide is for developers who need detailed information about zonal shift API actions, data types, and errors.</p> <p>Zonal shift is in preview release for Amazon Route 53 Application Recovery Controller and is subject to change.</p> <p>Zonal shift in Route 53 ARC enables you to move traffic for a load balancer resource away from an Availability Zone. Starting a zonal shift helps your application recover immediately, for example, from a developer's bad code deployment or from an AWS infrastructure failure in a single Availability Zone, reducing the impact and time lost from an issue in one zone. </p> <p>Supported AWS resources are automatically registered with Route 53 ARC. Resources that are registered for zonal shifts in Route 53 ARC are managed resources in Route 53 ARC. You can start a zonal shift for any managed resource in your account in a Region. At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.</p> <p>Zonal shifts are temporary. You must specify an expiration when you start a zonal shift, of up to three days initially. If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.</p> <p>For more information about using zonal shift, see the <a href=\"https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route53-recovery.html\">Amazon Route 53 Application Recovery Controller Developer Guide</a>.</p>"
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://athena-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://athena-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://athena.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://athena.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -26,6 +26,20 @@
],
"documentation":"<p>Returns the details of a single named query or a list of up to 50 queries, which you provide as an array of query ID strings. Requires you to have access to the workgroup in which the queries were saved. Use <a>ListNamedQueriesInput</a> to get the list of named query IDs in the specified workgroup. If information could not be retrieved for a submitted query ID, information about the query ID submitted is listed under <a>UnprocessedNamedQueryId</a>. Named queries differ from executed queries. Use <a>BatchGetQueryExecutionInput</a> to get details about each unique query execution, and <a>ListQueryExecutionsInput</a> to get a list of query execution IDs.</p>"
},
"BatchGetPreparedStatement":{
"name":"BatchGetPreparedStatement",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"BatchGetPreparedStatementInput"},
"output":{"shape":"BatchGetPreparedStatementOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"}
],
"documentation":"<p>Returns the details of a single prepared statement or a list of up to 256 prepared statements for the array of prepared statement names that you provide. Requires you to have access to the workgroup to which the prepared statements belong. If a prepared statement cannot be retrieved for the name specified, the statement is listed in <code>UnprocessedPreparedStatementNames</code>.</p>"
},
"BatchGetQueryExecution":{
"name":"BatchGetQueryExecution",
"http":{
@ -69,6 +83,21 @@
"documentation":"<p>Creates a named query in the specified workgroup. Requires that you have access to the workgroup.</p> <p>For code samples using the Amazon Web Services SDK for Java, see <a href=\"http://docs.aws.amazon.com/athena/latest/ug/code-samples.html\">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.</p>",
"idempotent":true
},
"CreateNotebook":{
"name":"CreateNotebook",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"CreateNotebookInput"},
"output":{"shape":"CreateNotebookOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Creates an empty <code>ipynb</code> file in the specified Apache Spark enabled workgroup. Throws an error if a file in the workgroup with the same name already exists.</p>"
},
"CreatePreparedStatement":{
"name":"CreatePreparedStatement",
"http":{
@ -83,6 +112,21 @@
],
"documentation":"<p>Creates a prepared statement for use with SQL queries in Athena.</p>"
},
"CreatePresignedNotebookUrl":{
"name":"CreatePresignedNotebookUrl",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"CreatePresignedNotebookUrlRequest"},
"output":{"shape":"CreatePresignedNotebookUrlResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Gets an authentication token and the URL at which the notebook can be accessed. During programmatic access, <code>CreatePresignedNotebookUrl</code> must be called every 10 minutes to refresh the authentication token.</p>"
},
"CreateWorkGroup":{
"name":"CreateWorkGroup",
"http":{
@ -95,7 +139,7 @@
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"}
],
"documentation":"<p>Creates a workgroup with the specified name.</p>"
"documentation":"<p>Creates a workgroup with the specified name. Only one of <code>Configurations</code> or <code>Configuration</code> can be specified; <code>Configurations</code> for a workgroup with multi engine support (for example, an Apache Spark enabled workgroup) or <code>Configuration</code> for an Athena SQL workgroup.</p>"
},
"DeleteDataCatalog":{
"name":"DeleteDataCatalog",
@ -126,6 +170,21 @@
"documentation":"<p>Deletes the named query if you have access to the workgroup in which the query was saved.</p> <p>For code samples using the Amazon Web Services SDK for Java, see <a href=\"http://docs.aws.amazon.com/athena/latest/ug/code-samples.html\">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.</p>",
"idempotent":true
},
"DeleteNotebook":{
"name":"DeleteNotebook",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DeleteNotebookInput"},
"output":{"shape":"DeleteNotebookOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Deletes the specified notebook.</p>"
},
"DeletePreparedStatement":{
"name":"DeletePreparedStatement",
"http":{
@ -156,6 +215,65 @@
"documentation":"<p>Deletes the workgroup with the specified name. The primary workgroup cannot be deleted.</p>",
"idempotent":true
},
"ExportNotebook":{
"name":"ExportNotebook",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ExportNotebookInput"},
"output":{"shape":"ExportNotebookOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Exports the specified notebook and its metadata.</p>"
},
"GetCalculationExecution":{
"name":"GetCalculationExecution",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetCalculationExecutionRequest"},
"output":{"shape":"GetCalculationExecutionResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Describes a previously submitted calculation execution.</p>"
},
"GetCalculationExecutionCode":{
"name":"GetCalculationExecutionCode",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetCalculationExecutionCodeRequest"},
"output":{"shape":"GetCalculationExecutionCodeResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Retrieves a pre-signed URL to a copy of the code that was executed for the calculation.</p>"
},
"GetCalculationExecutionStatus":{
"name":"GetCalculationExecutionStatus",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetCalculationExecutionStatusRequest"},
"output":{"shape":"GetCalculationExecutionStatusResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Gets the status of a current calculation.</p>"
},
"GetDataCatalog":{
"name":"GetDataCatalog",
"http":{
@ -199,6 +317,21 @@
],
"documentation":"<p>Returns information about a single query. Requires that you have access to the workgroup in which the query was saved.</p>"
},
"GetNotebookMetadata":{
"name":"GetNotebookMetadata",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetNotebookMetadataInput"},
"output":{"shape":"GetNotebookMetadataOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Retrieves notebook metadata for the specified notebook ID.</p>"
},
"GetPreparedStatement":{
"name":"GetPreparedStatement",
"http":{
@ -238,10 +371,55 @@
"output":{"shape":"GetQueryResultsOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"}
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Streams the results of a single query execution specified by <code>QueryExecutionId</code> from the Athena query results location in Amazon S3. For more information, see <a href=\"https://docs.aws.amazon.com/athena/latest/ug/querying.html\">Query Results</a> in the <i>Amazon Athena User Guide</i>. This request does not execute the query but returns results. Use <a>StartQueryExecution</a> to run a query.</p> <p>To stream query results successfully, the IAM principal with permission to call <code>GetQueryResults</code> also must have permissions to the Amazon S3 <code>GetObject</code> action for the Athena query results location.</p> <important> <p>IAM principals with permission to the Amazon S3 <code>GetObject</code> action for the query results location are able to retrieve query results from Amazon S3 even if permission to the <code>GetQueryResults</code> action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied.</p> </important>"
},
"GetQueryRuntimeStatistics":{
"name":"GetQueryRuntimeStatistics",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetQueryRuntimeStatisticsInput"},
"output":{"shape":"GetQueryRuntimeStatisticsOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"}
],
"documentation":"<p>Returns query execution runtime statistics related to a single execution of a query if you have access to the workgroup in which the query ran. The query execution runtime statistics is returned only when <a>QueryExecutionStatus$State</a> is in a SUCCEEDED or FAILED state.</p>"
},
"GetSession":{
"name":"GetSession",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetSessionRequest"},
"output":{"shape":"GetSessionResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Gets the full details of a previously created session, including the session status and configuration.</p>"
},
"GetSessionStatus":{
"name":"GetSessionStatus",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetSessionStatusRequest"},
"output":{"shape":"GetSessionStatusResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Gets the current status of a session.</p>"
},
"GetTableMetadata":{
"name":"GetTableMetadata",
"http":{
@ -271,6 +449,51 @@
],
"documentation":"<p>Returns information about the workgroup with the specified name.</p>"
},
"ImportNotebook":{
"name":"ImportNotebook",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ImportNotebookInput"},
"output":{"shape":"ImportNotebookOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Imports a single <code>ipynb</code> file to a Spark enabled workgroup. The maximum file size that can be imported is 10 megabytes. If an <code>ipynb</code> file with the same name already exists in the workgroup, throws an error.</p>"
},
"ListApplicationDPUSizes":{
"name":"ListApplicationDPUSizes",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListApplicationDPUSizesInput"},
"output":{"shape":"ListApplicationDPUSizesOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Returns the supported DPU sizes for the supported application runtimes (for example, <code>Jupyter 1.0</code>). </p>"
},
"ListCalculationExecutions":{
"name":"ListCalculationExecutions",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListCalculationExecutionsRequest"},
"output":{"shape":"ListCalculationExecutionsResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Lists the calculations that have been submitted to a session in descending order. Newer calculations are listed first; older calculations are listed later.</p>"
},
"ListDataCatalogs":{
"name":"ListDataCatalogs",
"http":{
@ -314,6 +537,21 @@
],
"documentation":"<p>Returns a list of engine versions that are available to choose from, including the Auto option.</p>"
},
"ListExecutors":{
"name":"ListExecutors",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListExecutorsRequest"},
"output":{"shape":"ListExecutorsResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Lists, in descending order, the executors that have been submitted to a session. Newer executors are listed first; older executors are listed later. The result can be optionally filtered by state.</p>"
},
"ListNamedQueries":{
"name":"ListNamedQueries",
"http":{
@ -328,6 +566,36 @@
],
"documentation":"<p>Provides a list of available query IDs only for queries saved in the specified workgroup. Requires that you have access to the specified workgroup. If a workgroup is not specified, lists the saved queries for the primary workgroup.</p> <p>For code samples using the Amazon Web Services SDK for Java, see <a href=\"http://docs.aws.amazon.com/athena/latest/ug/code-samples.html\">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.</p>"
},
"ListNotebookMetadata":{
"name":"ListNotebookMetadata",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListNotebookMetadataInput"},
"output":{"shape":"ListNotebookMetadataOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Displays the notebook files for the specified workgroup in paginated format.</p>"
},
"ListNotebookSessions":{
"name":"ListNotebookSessions",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListNotebookSessionsRequest"},
"output":{"shape":"ListNotebookSessionsResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Lists, in descending order, the sessions that have been created in a notebook that are in an active state like <code>CREATING</code>, <code>CREATED</code>, <code>IDLE</code> or <code>BUSY</code>. Newer sessions are listed first; older sessions are listed later.</p>"
},
"ListPreparedStatements":{
"name":"ListPreparedStatements",
"http":{
@ -340,7 +608,7 @@
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"}
],
"documentation":"<p>Lists the prepared statements in the specfied workgroup.</p>"
"documentation":"<p>Lists the prepared statements in the specified workgroup.</p>"
},
"ListQueryExecutions":{
"name":"ListQueryExecutions",
@ -356,6 +624,21 @@
],
"documentation":"<p>Provides a list of available query execution IDs for the queries in the specified workgroup. If a workgroup is not specified, returns a list of query execution IDs for the primary workgroup. Requires you to have access to the workgroup in which the queries ran.</p> <p>For code samples using the Amazon Web Services SDK for Java, see <a href=\"http://docs.aws.amazon.com/athena/latest/ug/code-samples.html\">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.</p>"
},
"ListSessions":{
"name":"ListSessions",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListSessionsRequest"},
"output":{"shape":"ListSessionsResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Lists the sessions in a workgroup that are in an active state like <code>CREATING</code>, <code>CREATED</code>, <code>IDLE</code>, or <code>BUSY</code>. Newer sessions are listed first; older sessions are listed later.</p>"
},
"ListTableMetadata":{
"name":"ListTableMetadata",
"http":{
@ -400,6 +683,21 @@
],
"documentation":"<p>Lists available workgroups for the account.</p>"
},
"StartCalculationExecution":{
"name":"StartCalculationExecution",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"StartCalculationExecutionRequest"},
"output":{"shape":"StartCalculationExecutionResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Submits calculations for execution within a session. You can supply the code to run as an inline code block within the request or as an Amazon S3 URL.</p>"
},
"StartQueryExecution":{
"name":"StartQueryExecution",
"http":{
@ -416,6 +714,37 @@
"documentation":"<p>Runs the SQL query statements contained in the <code>Query</code>. Requires you to have access to the workgroup in which the query ran. Running queries against an external catalog requires <a>GetDataCatalog</a> permission to the catalog. For code samples using the Amazon Web Services SDK for Java, see <a href=\"http://docs.aws.amazon.com/athena/latest/ug/code-samples.html\">Examples and Code Samples</a> in the <i>Amazon Athena User Guide</i>.</p>",
"idempotent":true
},
"StartSession":{
"name":"StartSession",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"StartSessionRequest"},
"output":{"shape":"StartSessionResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"SessionAlreadyExistsException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Creates a session for running calculations within a workgroup. The session is ready when it reaches an <code>IDLE</code> state.</p>"
},
"StopCalculationExecution":{
"name":"StopCalculationExecution",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"StopCalculationExecutionRequest"},
"output":{"shape":"StopCalculationExecutionResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Requests the cancellation of a calculation. A <code>StopCalculationExecution</code> call on a calculation that is already in a terminal state (for example, <code>STOPPED</code>, <code>FAILED</code>, or <code>COMPLETED</code>) succeeds but has no effect.</p> <note> <p>Cancelling a calculation is done on a best effort basis. If a calculation cannot be cancelled, you can be charged for its completion. If you are concerned about being charged for a calculation that cannot be cancelled, consider terminating the session in which the calculation is running.</p> </note>"
},
"StopQueryExecution":{
"name":"StopQueryExecution",
"http":{
@ -446,6 +775,21 @@
],
"documentation":"<p>Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see <a href=\"https://aws.amazon.com/answers/account-management/aws-tagging-strategies/\">Tagging Best Practices</a>. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.</p>"
},
"TerminateSession":{
"name":"TerminateSession",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"TerminateSessionRequest"},
"output":{"shape":"TerminateSessionResponse"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Terminates an active session. A <code>TerminateSession</code> call on a session that is already inactive (for example, in a <code>FAILED</code>, <code>TERMINATED</code> or <code>TERMINATING</code> state) succeeds but has no effect. Calculations running in the session when <code>TerminateSession</code> is called are forcefully stopped, but may display as <code>FAILED</code> instead of <code>STOPPED</code>.</p>"
},
"UntagResource":{
"name":"UntagResource",
"http":{
@ -490,6 +834,36 @@
"documentation":"<p>Updates a <a>NamedQuery</a> object. The database or workgroup cannot be updated.</p>",
"idempotent":true
},
"UpdateNotebook":{
"name":"UpdateNotebook",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"UpdateNotebookInput"},
"output":{"shape":"UpdateNotebookOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Updates the contents of a Spark notebook.</p>"
},
"UpdateNotebookMetadata":{
"name":"UpdateNotebookMetadata",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"UpdateNotebookMetadataInput"},
"output":{"shape":"UpdateNotebookMetadataOutput"},
"errors":[
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"},
{"shape":"TooManyRequestsException"}
],
"documentation":"<p>Updates the metadata for a notebook.</p>"
},
"UpdatePreparedStatement":{
"name":"UpdatePreparedStatement",
"http":{
@ -517,7 +891,7 @@
{"shape":"InternalServerException"},
{"shape":"InvalidRequestException"}
],
"documentation":"<p>Updates the workgroup with the specified name. The workgroup's name cannot be changed.</p>"
"documentation":"<p>Updates the workgroup with the specified name. The workgroup's name cannot be changed. Only one of <code>ConfigurationsUpdates</code> or <code>ConfigurationUpdates</code> can be specified; <code>ConfigurationsUpdates</code> for a workgroup with multi engine support (for example, an Apache Spark enabled workgroup) or <code>ConfigurationUpdates</code> for an Athena SQL workgroup.</p>"
}
},
"shapes":{
@ -532,11 +906,34 @@
},
"documentation":"<p>Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query results. When Athena stores query results in Amazon S3, the canned ACL is set with the <code>x-amz-acl</code> request header. For more information about S3 Object Ownership, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html#object-ownership-overview\">Object Ownership settings</a> in the <i>Amazon S3 User Guide</i>.</p>"
},
"Age":{
"type":"integer",
"max":10080,
"min":0
},
"AmazonResourceName":{
"type":"string",
"max":1011,
"min":1
},
"ApplicationDPUSizes":{
"type":"structure",
"members":{
"ApplicationRuntimeId":{
"shape":"NameString",
"documentation":"<p>The name of the supported application runtime (for example, <code>Jupyter 1.0</code>).</p>"
},
"SupportedDPUSizes":{
"shape":"SupportedDPUSizeList",
"documentation":"<p>A list of the supported DPU sizes that the application runtime supports.</p>"
}
},
"documentation":"<p>Contains the application runtime IDs and their supported DPU sizes.</p>"
},
"ApplicationDPUSizesList":{
"type":"list",
"member":{"shape":"ApplicationDPUSizes"}
},
"AthenaError":{
"type":"structure",
"members":{
@ -559,6 +956,16 @@
},
"documentation":"<p>Provides information about an Athena query error. The <code>AthenaError</code> feature provides standardized error information to help you understand failed queries and take steps after a query failure occurs. <code>AthenaError</code> includes an <code>ErrorCategory</code> field that specifies whether the cause of the failed query is due to system error, user error, or other error.</p>"
},
"AuthToken":{
"type":"string",
"max":2048
},
"AwsAccountId":{
"type":"string",
"max":12,
"min":12,
"pattern":"^[0-9]+$"
},
"BatchGetNamedQueryInput":{
"type":"structure",
"required":["NamedQueryIds"],
@ -567,7 +974,8 @@
"shape":"NamedQueryIdList",
"documentation":"<p>An array of query IDs.</p>"
}
}
},
"documentation":"<p>Contains an array of named query IDs.</p>"
},
"BatchGetNamedQueryOutput":{
"type":"structure",
@ -582,6 +990,36 @@
}
}
},
"BatchGetPreparedStatementInput":{
"type":"structure",
"required":[
"PreparedStatementNames",
"WorkGroup"
],
"members":{
"PreparedStatementNames":{
"shape":"PreparedStatementNameList",
"documentation":"<p>A list of prepared statement names to return.</p>"
},
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The name of the workgroup to which the prepared statements belong.</p>"
}
}
},
"BatchGetPreparedStatementOutput":{
"type":"structure",
"members":{
"PreparedStatements":{
"shape":"PreparedStatementDetailsList",
"documentation":"<p>The list of prepared statements returned.</p>"
},
"UnprocessedPreparedStatementNames":{
"shape":"UnprocessedPreparedStatementNameList",
"documentation":"<p>A list of one or more prepared statements that were requested but could not be returned.</p>"
}
}
},
"BatchGetQueryExecutionInput":{
"type":"structure",
"required":["QueryExecutionIds"],
@ -590,7 +1028,8 @@
"shape":"QueryExecutionIdList",
"documentation":"<p>An array of query execution IDs.</p>"
}
}
},
"documentation":"<p>Contains an array of query execution IDs.</p>"
},
"BatchGetQueryExecutionOutput":{
"type":"structure",
@ -611,12 +1050,138 @@
"type":"long",
"min":10000000
},
"CalculationConfiguration":{
"type":"structure",
"members":{
"CodeBlock":{
"shape":"CodeBlock",
"documentation":"<p>A string that contains the code for the calculation.</p>"
}
},
"documentation":"<p>Contains configuration information for the calculation.</p>"
},
"CalculationExecutionId":{
"type":"string",
"max":36,
"min":1
},
"CalculationExecutionState":{
"type":"string",
"enum":[
"CREATING",
"CREATED",
"QUEUED",
"RUNNING",
"CANCELING",
"CANCELED",
"COMPLETED",
"FAILED"
]
},
"CalculationResult":{
"type":"structure",
"members":{
"StdOutS3Uri":{
"shape":"S3Uri",
"documentation":"<p>The Amazon S3 location of the <code>stdout</code> file for the calculation.</p>"
},
"StdErrorS3Uri":{
"shape":"S3Uri",
"documentation":"<p>The Amazon S3 location of the <code>stderr</code> error messages file for the calculation.</p>"
},
"ResultS3Uri":{
"shape":"S3Uri",
"documentation":"<p>The Amazon S3 location of the folder for the calculation results.</p>"
},
"ResultType":{
"shape":"CalculationResultType",
"documentation":"<p>The data format of the calculation result.</p>"
}
},
"documentation":"<p>Contains information about an application-specific calculation result.</p>"
},
"CalculationResultType":{
"type":"string",
"max":256,
"min":1,
"pattern":"\\w+\\/[-+.\\w]+"
},
"CalculationStatistics":{
"type":"structure",
"members":{
"DpuExecutionInMillis":{
"shape":"Long",
"documentation":"<p>The data processing unit execution time in milliseconds for the calculation.</p>"
},
"Progress":{
"shape":"DescriptionString",
"documentation":"<p>The progress of the calculation.</p>"
}
},
"documentation":"<p>Contains statistics for a notebook calculation.</p>"
},
"CalculationStatus":{
"type":"structure",
"members":{
"SubmissionDateTime":{
"shape":"Date",
"documentation":"<p>The date and time the calculation was submitted for processing.</p>"
},
"CompletionDateTime":{
"shape":"Date",
"documentation":"<p>The date and time the calculation completed processing.</p>"
},
"State":{
"shape":"CalculationExecutionState",
"documentation":"<p>The state of the calculation execution. A description of each state follows.</p> <p> <code>CREATING</code> - The calculation is in the process of being created.</p> <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p> <p> <code>QUEUED</code> - The calculation has been queued for processing.</p> <p> <code>RUNNING</code> - The calculation is running.</p> <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p> <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p> <p> <code>COMPLETED</code> - The calculation has completed without error.</p> <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>"
},
"StateChangeReason":{
"shape":"DescriptionString",
"documentation":"<p>The reason for the calculation state change (for example, the calculation was canceled because the session was terminated).</p>"
}
},
"documentation":"<p>Contains information about the status of a notebook calculation.</p>"
},
"CalculationSummary":{
"type":"structure",
"members":{
"CalculationExecutionId":{
"shape":"CalculationExecutionId",
"documentation":"<p>The calculation execution UUID.</p>"
},
"Description":{
"shape":"DescriptionString",
"documentation":"<p>A description of the calculation.</p>"
},
"Status":{
"shape":"CalculationStatus",
"documentation":"<p>Contains information about the status of the calculation.</p>"
}
},
"documentation":"<p>Summary information for a notebook calculation.</p>"
},
"CalculationsList":{
"type":"list",
"member":{"shape":"CalculationSummary"},
"max":100,
"min":0
},
"CatalogNameString":{
"type":"string",
"max":256,
"min":1,
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*"
},
"ClientRequestToken":{
"type":"string",
"max":36,
"min":1,
"pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
},
"CodeBlock":{
"type":"string",
"max":68000
},
"Column":{
"type":"structure",
"required":["Name"],
@ -708,6 +1273,11 @@
"min":0,
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*"
},
"CoordinatorDpuSize":{
"type":"integer",
"max":5000,
"min":1
},
"CreateDataCatalogInput":{
"type":"structure",
"required":[
@ -786,6 +1356,36 @@
}
}
},
"CreateNotebookInput":{
"type":"structure",
"required":[
"WorkGroup",
"Name"
],
"members":{
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The name of the Spark enabled workgroup in which the notebook will be created.</p>"
},
"Name":{
"shape":"NotebookName",
"documentation":"<p>The name of the <code>ipynb</code> file to be created in the Spark workgroup, without the <code>.ipynb</code> extension.</p>"
},
"ClientRequestToken":{
"shape":"ClientRequestToken",
"documentation":"<p>A unique case-sensitive string used to ensure the request to create the notebook is idempotent (executes only once).</p> <important> <p>This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.</p> </important>"
}
}
},
"CreateNotebookOutput":{
"type":"structure",
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>A unique identifier for the notebook.</p>"
}
}
},
"CreatePreparedStatementInput":{
"type":"structure",
"required":[
@ -817,6 +1417,38 @@
"members":{
}
},
"CreatePresignedNotebookUrlRequest":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
}
}
},
"CreatePresignedNotebookUrlResponse":{
"type":"structure",
"required":[
"NotebookUrl",
"AuthToken",
"AuthTokenExpirationTime"
],
"members":{
"NotebookUrl":{
"shape":"String",
"documentation":"<p>The URL of the notebook. The URL includes the authentication token and notebook file name and points directly to the opened notebook.</p>"
},
"AuthToken":{
"shape":"AuthToken",
"documentation":"<p>The authentication token for the notebook.</p>"
},
"AuthTokenExpirationTime":{
"shape":"Long",
"documentation":"<p>The UTC epoch time when the authentication token expires.</p>"
}
}
},
"CreateWorkGroupInput":{
"type":"structure",
"required":["Name"],
@ -827,7 +1459,7 @@
},
"Configuration":{
"shape":"WorkGroupConfiguration",
"documentation":"<p>The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with <code>EnforceWorkGroupConfiguration</code>) in the <code>WorkGroupConfiguration</code> override client-side settings. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.</p>"
"documentation":"<p>Contains configuration information for creating an Athena SQL workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with <code>EnforceWorkGroupConfiguration</code>) in the <code>WorkGroupConfiguration</code> override client-side settings. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.</p>"
},
"Description":{
"shape":"WorkGroupDescriptionString",
@ -844,6 +1476,17 @@
"members":{
}
},
"CustomerContentEncryptionConfiguration":{
"type":"structure",
"required":["KmsKey"],
"members":{
"KmsKey":{
"shape":"KmsKey",
"documentation":"<p>The KMS key that is used to encrypt the user's data stores in Athena.</p>"
}
},
"documentation":"<p>Specifies the KMS key that is used to encrypt the user's data stores in Athena.</p>"
},
"DataCatalog":{
"type":"structure",
"required":[
@ -935,6 +1578,11 @@
},
"documentation":"<p>A piece of data (a field in the table).</p>"
},
"DefaultExecutorDpuSize":{
"type":"integer",
"max":5000,
"min":1
},
"DeleteDataCatalogInput":{
"type":"structure",
"required":["Name"],
@ -966,6 +1614,21 @@
"members":{
}
},
"DeleteNotebookInput":{
"type":"structure",
"required":["NotebookId"],
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The ID of the notebook to delete.</p>"
}
}
},
"DeleteNotebookOutput":{
"type":"structure",
"members":{
}
},
"DeletePreparedStatementInput":{
"type":"structure",
"required":[
@ -1035,6 +1698,29 @@
"CSE_KMS"
]
},
"EngineConfiguration":{
"type":"structure",
"required":["MaxConcurrentDpus"],
"members":{
"CoordinatorDpuSize":{
"shape":"CoordinatorDpuSize",
"documentation":"<p>The number of DPUs to use for the coordinator. A coordinator is a special executor that orchestrates processing work and manages other executors in a notebook session.</p>"
},
"MaxConcurrentDpus":{
"shape":"MaxConcurrentDpus",
"documentation":"<p>The maximum number of DPUs that can run concurrently.</p>"
},
"DefaultExecutorDpuSize":{
"shape":"DefaultExecutorDpuSize",
"documentation":"<p>The default number of DPUs to use for executors. An executor is the smallest unit of compute that a notebook session can request from Athena.</p>"
},
"AdditionalConfigs":{
"shape":"ParametersMap",
"documentation":"<p>Contains additional notebook engine <code>MAP&lt;string, string&gt;</code> parameter mappings in the form of key-value pairs. To specify an Amazon S3 URI that the Jupyter server will download and serve, specify a value for the <a>StartSessionRequest$NotebookVersion</a> field, and then add a key named <code>NotebookFileURI</code> to <code>AdditionalConfigs</code> that has value of the Amazon S3 URI.</p>"
}
},
"documentation":"<p>Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.</p>"
},
"EngineVersion":{
"type":"structure",
"members":{
@ -1047,7 +1733,7 @@
"documentation":"<p>Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a <code>CreateWorkGroup</code> or <code>UpdateWorkGroup</code> operation, the <code>EffectiveEngineVersion</code> field is ignored.</p>"
}
},
"documentation":"<p>The Athena engine version for running queries.</p>"
"documentation":"<p>The Athena engine version for running queries, or the PySpark engine version for running sessions.</p>"
},
"EngineVersionsList":{
"type":"list",
@ -1074,11 +1760,198 @@
"max":9999,
"min":0
},
"ExecutionParameter":{
"type":"string",
"max":1024,
"min":1
},
"ExecutionParameters":{
"type":"list",
"member":{"shape":"ExecutionParameter"},
"min":1
},
"ExecutorId":{
"type":"string",
"max":100000,
"pattern":".*"
},
"ExecutorState":{
"type":"string",
"enum":[
"CREATING",
"CREATED",
"REGISTERED",
"TERMINATING",
"TERMINATED",
"FAILED"
]
},
"ExecutorType":{
"type":"string",
"enum":[
"COORDINATOR",
"GATEWAY",
"WORKER"
]
},
"ExecutorsSummary":{
"type":"structure",
"required":["ExecutorId"],
"members":{
"ExecutorId":{
"shape":"ExecutorId",
"documentation":"<p>The UUID of the executor.</p>"
},
"ExecutorType":{
"shape":"ExecutorType",
"documentation":"<p>The type of executor used for the application (<code>COORDINATOR</code>, <code>GATEWAY</code>, or <code>WORKER</code>).</p>"
},
"StartDateTime":{
"shape":"Long",
"documentation":"<p>The date and time that the executor started.</p>"
},
"TerminationDateTime":{
"shape":"Long",
"documentation":"<p>The date and time that the executor was terminated.</p>"
},
"ExecutorState":{
"shape":"ExecutorState",
"documentation":"<p>The processing state of the executor. A description of each state follows.</p> <p> <code>CREATING</code> - The executor is being started, including acquiring resources.</p> <p> <code>CREATED</code> - The executor has been started.</p> <p> <code>REGISTERED</code> - The executor has been registered.</p> <p> <code>TERMINATING</code> - The executor is in the process of shutting down.</p> <p> <code>TERMINATED</code> - The executor is no longer running.</p> <p> <code>FAILED</code> - Due to a failure, the executor is no longer running.</p>"
},
"ExecutorSize":{
"shape":"Long",
"documentation":"<p>The smallest unit of compute that a session can request from Athena. Size is measured in data processing unit (DPU) values, a relative measure of processing power.</p>"
}
},
"documentation":"<p>Contains summary information about an executor.</p>"
},
"ExecutorsSummaryList":{
"type":"list",
"member":{"shape":"ExecutorsSummary"}
},
"ExportNotebookInput":{
"type":"structure",
"required":["NotebookId"],
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The ID of the notebook to export.</p>"
}
}
},
"ExportNotebookOutput":{
"type":"structure",
"members":{
"NotebookMetadata":{
"shape":"NotebookMetadata",
"documentation":"<p>The notebook metadata, including notebook ID, notebook name, and workgroup name.</p>"
},
"Payload":{
"shape":"Payload",
"documentation":"<p>The content of the exported notebook.</p>"
}
}
},
"ExpressionString":{
"type":"string",
"max":256,
"min":0
},
"FilterDefinition":{
"type":"structure",
"members":{
"Name":{
"shape":"NotebookName",
"documentation":"<p>The name of the notebook to search for.</p>"
}
},
"documentation":"<p>A string for searching notebook names.</p>"
},
"GetCalculationExecutionCodeRequest":{
"type":"structure",
"required":["CalculationExecutionId"],
"members":{
"CalculationExecutionId":{
"shape":"CalculationExecutionId",
"documentation":"<p>The calculation execution UUID.</p>"
}
}
},
"GetCalculationExecutionCodeResponse":{
"type":"structure",
"members":{
"CodeBlock":{
"shape":"CodeBlock",
"documentation":"<p>A pre-signed URL to the code that executed the calculation.</p>"
}
}
},
"GetCalculationExecutionRequest":{
"type":"structure",
"required":["CalculationExecutionId"],
"members":{
"CalculationExecutionId":{
"shape":"CalculationExecutionId",
"documentation":"<p>The calculation execution UUID.</p>"
}
}
},
"GetCalculationExecutionResponse":{
"type":"structure",
"members":{
"CalculationExecutionId":{
"shape":"CalculationExecutionId",
"documentation":"<p>The calculation execution UUID.</p>"
},
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID that the calculation ran in.</p>"
},
"Description":{
"shape":"DescriptionString",
"documentation":"<p>The description of the calculation execution.</p>"
},
"WorkingDirectory":{
"shape":"S3Uri",
"documentation":"<p>The Amazon S3 location in which calculation results are stored.</p>"
},
"Status":{
"shape":"CalculationStatus",
"documentation":"<p>Contains information about the status of the calculation.</p>"
},
"Statistics":{
"shape":"CalculationStatistics",
"documentation":"<p>Contains information about the data processing unit (DPU) execution time and progress. This field is populated only when statistics are available.</p>"
},
"Result":{
"shape":"CalculationResult",
"documentation":"<p>Contains result information. This field is populated only if the calculation is completed.</p>"
}
}
},
"GetCalculationExecutionStatusRequest":{
"type":"structure",
"required":["CalculationExecutionId"],
"members":{
"CalculationExecutionId":{
"shape":"CalculationExecutionId",
"documentation":"<p>The calculation execution UUID.</p>"
}
}
},
"GetCalculationExecutionStatusResponse":{
"type":"structure",
"members":{
"Status":{
"shape":"CalculationStatus",
"documentation":"<p>Contains information about the calculation execution status.</p>"
},
"Statistics":{
"shape":"CalculationStatistics",
"documentation":"<p>Contains information about the DPU execution time and progress.</p>"
}
}
},
"GetDataCatalogInput":{
"type":"structure",
"required":["Name"],
@ -1143,6 +2016,25 @@
}
}
},
"GetNotebookMetadataInput":{
"type":"structure",
"required":["NotebookId"],
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The ID of the notebook whose metadata is to be retrieved.</p>"
}
}
},
"GetNotebookMetadataOutput":{
"type":"structure",
"members":{
"NotebookMetadata":{
"shape":"NotebookMetadata",
"documentation":"<p>The metadata that is returned for the specified notebook ID.</p>"
}
}
},
"GetPreparedStatementInput":{
"type":"structure",
"required":[
@ -1223,6 +2115,99 @@
}
}
},
"GetQueryRuntimeStatisticsInput":{
"type":"structure",
"required":["QueryExecutionId"],
"members":{
"QueryExecutionId":{
"shape":"QueryExecutionId",
"documentation":"<p>The unique ID of the query execution.</p>"
}
}
},
"GetQueryRuntimeStatisticsOutput":{
"type":"structure",
"members":{
"QueryRuntimeStatistics":{
"shape":"QueryRuntimeStatistics",
"documentation":"<p>Runtime statistics about the query execution.</p>"
}
}
},
"GetSessionRequest":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
}
}
},
"GetSessionResponse":{
"type":"structure",
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"Description":{
"shape":"DescriptionString",
"documentation":"<p>The session description.</p>"
},
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The workgroup to which the session belongs.</p>"
},
"EngineVersion":{
"shape":"NameString",
"documentation":"<p>The engine version used by the session (for example, <code>PySpark engine version 3</code>). You can get a list of engine versions by calling <a>ListEngineVersions</a>.</p>"
},
"EngineConfiguration":{
"shape":"EngineConfiguration",
"documentation":"<p>Contains engine configuration information like DPU usage.</p>"
},
"NotebookVersion":{
"shape":"NameString",
"documentation":"<p>The notebook version.</p>"
},
"SessionConfiguration":{
"shape":"SessionConfiguration",
"documentation":"<p>Contains the workgroup configuration information used by the session.</p>"
},
"Status":{
"shape":"SessionStatus",
"documentation":"<p>Contains information about the status of the session.</p>"
},
"Statistics":{
"shape":"SessionStatistics",
"documentation":"<p>Contains the DPU execution time.</p>"
}
}
},
"GetSessionStatusRequest":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
}
}
},
"GetSessionStatusResponse":{
"type":"structure",
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"Status":{
"shape":"SessionStatus",
"documentation":"<p>Contains information about the status of the session.</p>"
}
}
},
"GetTableMetadataInput":{
"type":"structure",
"required":[
@ -1278,6 +2263,46 @@
"max":128,
"min":32
},
"ImportNotebookInput":{
"type":"structure",
"required":[
"WorkGroup",
"Name",
"Payload",
"Type"
],
"members":{
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The name of the Spark enabled workgroup to import the notebook to.</p>"
},
"Name":{
"shape":"NotebookName",
"documentation":"<p>The name of the notebook to import.</p>"
},
"Payload":{
"shape":"Payload",
"documentation":"<p>The notebook content to be imported.</p>"
},
"Type":{
"shape":"NotebookType",
"documentation":"<p>The notebook content type. Currently, the only valid type is <code>IPYNB</code>.</p>"
},
"ClientRequestToken":{
"shape":"ClientRequestToken",
"documentation":"<p>A unique case-sensitive string used to ensure the request to import the notebook is idempotent (executes only once).</p> <important> <p>This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.</p> </important>"
}
}
},
"ImportNotebookOutput":{
"type":"structure",
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The ID of the notebook to import.</p>"
}
}
},
"Integer":{"type":"integer"},
"InternalServerException":{
"type":"structure",
@ -1303,6 +2328,73 @@
"min":1,
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*"
},
"KmsKey":{
"type":"string",
"max":2048,
"min":1,
"pattern":"^arn:aws[a-z\\-]*:kms:([a-z0-9\\-]+):\\d{12}:key/?[a-zA-Z_0-9+=,.@\\-_/]+$|^arn:aws[a-z\\-]*:kms:([a-z0-9\\-]+):\\d{12}:alias/?[a-zA-Z_0-9+=,.@\\-_/]+$|^alias/[a-zA-Z0-9/_-]+$|[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
},
"ListApplicationDPUSizesInput":{
"type":"structure",
"members":{
"MaxResults":{
"shape":"MaxApplicationDPUSizesCount",
"documentation":"<p>Specifies the maximum number of results to return.</p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated.</p>"
}
}
},
"ListApplicationDPUSizesOutput":{
"type":"structure",
"members":{
"ApplicationDPUSizes":{
"shape":"ApplicationDPUSizesList",
"documentation":"<p>A list of the supported DPU sizes that the application runtime supports.</p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
}
}
},
"ListCalculationExecutionsRequest":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"StateFilter":{
"shape":"CalculationExecutionState",
"documentation":"<p>A filter for a specific calculation execution state. A description of each state follows.</p> <p> <code>CREATING</code> - The calculation is in the process of being created.</p> <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p> <p> <code>QUEUED</code> - The calculation has been queued for processing.</p> <p> <code>RUNNING</code> - The calculation is running.</p> <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p> <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p> <p> <code>COMPLETED</code> - The calculation has completed without error.</p> <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>"
},
"MaxResults":{
"shape":"MaxCalculationsCount",
"documentation":"<p>The maximum number of calculation executions to return.</p>"
},
"NextToken":{
"shape":"SessionManagerToken",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
}
}
},
"ListCalculationExecutionsResponse":{
"type":"structure",
"members":{
"NextToken":{
"shape":"SessionManagerToken",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
},
"Calculations":{
"shape":"CalculationsList",
"documentation":"<p>A list of <a>CalculationSummary</a> objects.</p>"
}
}
},
"ListDataCatalogsInput":{
"type":"structure",
"members":{
@ -1386,6 +2478,46 @@
}
}
},
"ListExecutorsRequest":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"ExecutorStateFilter":{
"shape":"ExecutorState",
"documentation":"<p>A filter for a specific executor state. A description of each state follows.</p> <p> <code>CREATING</code> - The executor is being started, including acquiring resources.</p> <p> <code>CREATED</code> - The executor has been started.</p> <p> <code>REGISTERED</code> - The executor has been registered.</p> <p> <code>TERMINATING</code> - The executor is in the process of shutting down.</p> <p> <code>TERMINATED</code> - The executor is no longer running.</p> <p> <code>FAILED</code> - Due to a failure, the executor is no longer running.</p>"
},
"MaxResults":{
"shape":"MaxListExecutorsCount",
"documentation":"<p>The maximum number of executors to return.</p>"
},
"NextToken":{
"shape":"SessionManagerToken",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
}
}
},
"ListExecutorsResponse":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"NextToken":{
"shape":"SessionManagerToken",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
},
"ExecutorsSummary":{
"shape":"ExecutorsSummaryList",
"documentation":"<p>Contains summary information about the executor.</p>"
}
}
},
"ListNamedQueriesInput":{
"type":"structure",
"members":{
@ -1416,6 +2548,73 @@
}
}
},
"ListNotebookMetadataInput":{
"type":"structure",
"required":["WorkGroup"],
"members":{
"Filters":{
"shape":"FilterDefinition",
"documentation":"<p>Search filter string.</p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated.</p>"
},
"MaxResults":{
"shape":"MaxNotebooksCount",
"documentation":"<p>Specifies the maximum number of results to return.</p>"
},
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The name of the Spark enabled workgroup to retrieve notebook metadata for.</p>"
}
}
},
"ListNotebookMetadataOutput":{
"type":"structure",
"members":{
"NextToken":{
"shape":"Token",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
},
"NotebookMetadataList":{
"shape":"NotebookMetadataArray",
"documentation":"<p>The list of notebook metadata for the specified workgroup.</p>"
}
}
},
"ListNotebookSessionsRequest":{
"type":"structure",
"required":["NotebookId"],
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The ID of the notebook to list sessions for.</p>"
},
"MaxResults":{
"shape":"MaxSessionsCount",
"documentation":"<p>The maximum number of notebook sessions to return.</p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
}
}
},
"ListNotebookSessionsResponse":{
"type":"structure",
"required":["NotebookSessionsList"],
"members":{
"NotebookSessionsList":{
"shape":"NotebookSessionsList",
"documentation":"<p>A list of the sessions belonging to the notebook.</p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
}
}
},
"ListPreparedStatementsInput":{
"type":"structure",
"required":["WorkGroup"],
@ -1477,6 +2676,41 @@
}
}
},
"ListSessionsRequest":{
"type":"structure",
"required":["WorkGroup"],
"members":{
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The workgroup to which the session belongs.</p>"
},
"StateFilter":{
"shape":"SessionState",
"documentation":"<p>A filter for a specific session state. A description of each state follows.</p> <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p> <p> <code>CREATED</code> - The session has been started.</p> <p> <code>IDLE</code> - The session is able to accept a calculation.</p> <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p> <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p> <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p> <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p> <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>"
},
"MaxResults":{
"shape":"MaxSessionsCount",
"documentation":"<p>The maximum number of sessions to return.</p>"
},
"NextToken":{
"shape":"SessionManagerToken",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
}
}
},
"ListSessionsResponse":{
"type":"structure",
"members":{
"NextToken":{
"shape":"SessionManagerToken",
"documentation":"<p>A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the <code>NextToken</code> from the response object of the previous page call.</p>"
},
"Sessions":{
"shape":"SessionsList",
"documentation":"<p>A list of sessions.</p>"
}
}
},
"ListTableMetadataInput":{
"type":"structure",
"required":[
@ -1577,6 +2811,22 @@
}
},
"Long":{"type":"long"},
"MaxApplicationDPUSizesCount":{
"type":"integer",
"max":100,
"min":1
},
"MaxCalculationsCount":{
"type":"integer",
"box":true,
"max":100,
"min":1
},
"MaxConcurrentDpus":{
"type":"integer",
"max":5000,
"min":2
},
"MaxDataCatalogsCount":{
"type":"integer",
"box":true,
@ -1595,12 +2845,24 @@
"max":10,
"min":1
},
"MaxListExecutorsCount":{
"type":"integer",
"box":true,
"max":100,
"min":1
},
"MaxNamedQueriesCount":{
"type":"integer",
"box":true,
"max":50,
"min":0
},
"MaxNotebooksCount":{
"type":"integer",
"box":true,
"max":50,
"min":1
},
"MaxPreparedStatementsCount":{
"type":"integer",
"box":true,
@ -1619,6 +2881,12 @@
"max":1000,
"min":1
},
"MaxSessionsCount":{
"type":"integer",
"box":true,
"max":100,
"min":1
},
"MaxTableMetadataCount":{
"type":"integer",
"box":true,
@ -1689,7 +2957,12 @@
"max":1024,
"min":0
},
"NamedQueryId":{"type":"string"},
"NamedQueryId":{
"type":"string",
"max":128,
"min":1,
"pattern":"\\S+"
},
"NamedQueryIdList":{
"type":"list",
"member":{"shape":"NamedQueryId"},
@ -1700,6 +2973,77 @@
"type":"list",
"member":{"shape":"NamedQuery"}
},
"NotebookId":{
"type":"string",
"max":36,
"min":1,
"pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
},
"NotebookMetadata":{
"type":"structure",
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The notebook ID.</p>"
},
"Name":{
"shape":"NotebookName",
"documentation":"<p>The name of the notebook.</p>"
},
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The name of the Spark enabled workgroup to which the notebook belongs.</p>"
},
"CreationTime":{
"shape":"Date",
"documentation":"<p>The time when the notebook was created.</p>"
},
"Type":{
"shape":"NotebookType",
"documentation":"<p>The type of notebook. Currently, the only valid type is <code>IPYNB</code>.</p>"
},
"LastModifiedTime":{
"shape":"Date",
"documentation":"<p>The time when the notebook was last modified.</p>"
}
},
"documentation":"<p>Contains metadata for notebook, including the notebook name, ID, workgroup, and time created.</p>"
},
"NotebookMetadataArray":{
"type":"list",
"member":{"shape":"NotebookMetadata"}
},
"NotebookName":{
"type":"string",
"max":255,
"min":1,
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]+"
},
"NotebookSessionSummary":{
"type":"structure",
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The notebook session ID.</p>"
},
"CreationTime":{
"shape":"Date",
"documentation":"<p>The time when the notebook session was created.</p>"
}
},
"documentation":"<p>Contains the notebook session ID and notebook session creation time.</p>"
},
"NotebookSessionsList":{
"type":"list",
"member":{"shape":"NotebookSessionSummary"},
"documentation":"<p>A list of notebook sessions.</p>",
"max":10,
"min":0
},
"NotebookType":{
"type":"string",
"enum":["IPYNB"]
},
"ParametersMap":{
"type":"map",
"key":{"shape":"KeyString"},
@ -1709,6 +3053,11 @@
"type":"string",
"max":51200
},
"Payload":{
"type":"string",
"max":15728640,
"min":1
},
"PreparedStatement":{
"type":"structure",
"members":{
@ -1735,6 +3084,14 @@
},
"documentation":"<p>A prepared SQL statement for use with Athena.</p>"
},
"PreparedStatementDetailsList":{
"type":"list",
"member":{"shape":"PreparedStatement"}
},
"PreparedStatementNameList":{
"type":"list",
"member":{"shape":"StatementName"}
},
"PreparedStatementSummary":{
"type":"structure",
"members":{
@ -1774,6 +3131,10 @@
"shape":"ResultConfiguration",
"documentation":"<p>The location in Amazon S3 where query results were stored and the encryption option, if any, used for query results. These are known as \"client-side settings\". If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup.</p>"
},
"ResultReuseConfiguration":{
"shape":"ResultReuseConfiguration",
"documentation":"<p>Specifies the query result reuse behavior that was used for the query.</p>"
},
"QueryExecutionContext":{
"shape":"QueryExecutionContext",
"documentation":"<p>The database in which the query execution occurred.</p>"
@ -1793,6 +3154,10 @@
"EngineVersion":{
"shape":"EngineVersion",
"documentation":"<p>The engine version that executed the query.</p>"
},
"ExecutionParameters":{
"shape":"ExecutionParameters",
"documentation":"<p>A list of values for the parameters in a query. The values are applied sequentially to the parameters in the query in the order in which the parameters occur.</p>"
}
},
"documentation":"<p>Information about a single instance of a query execution.</p>"
@ -1811,7 +3176,12 @@
},
"documentation":"<p>The database and data catalog context in which the query execution occurs.</p>"
},
"QueryExecutionId":{"type":"string"},
"QueryExecutionId":{
"type":"string",
"max":128,
"min":1,
"pattern":"\\S+"
},
"QueryExecutionIdList":{
"type":"list",
"member":{"shape":"QueryExecutionId"},
@ -1862,6 +3232,10 @@
"ServiceProcessingTimeInMillis":{
"shape":"Long",
"documentation":"<p>The number of milliseconds that Athena took to finalize and publish the query results after the query engine finished running the query.</p>"
},
"ResultReuseInformation":{
"shape":"ResultReuseInformation",
"documentation":"<p>Contains information about whether previous query results were reused for the query.</p>"
}
},
"documentation":"<p>The amount of data scanned during the query execution and the amount of time that it took to execute, and the type of statement that was run.</p>"
@ -1892,6 +3266,138 @@
},
"documentation":"<p>The completion date, current state, submission time, and state change reason (if applicable) for the query execution.</p>"
},
"QueryRuntimeStatistics":{
"type":"structure",
"members":{
"Timeline":{"shape":"QueryRuntimeStatisticsTimeline"},
"Rows":{"shape":"QueryRuntimeStatisticsRows"},
"OutputStage":{
"shape":"QueryStage",
"documentation":"<p>Stage statistics such as input and output rows and bytes, execution time, and stage state. This information also includes substages and the query stage plan.</p>"
}
},
"documentation":"<p>The query execution timeline, statistics on input and output rows and bytes, and the different query stages that form the query execution plan.</p>"
},
"QueryRuntimeStatisticsRows":{
"type":"structure",
"members":{
"InputRows":{
"shape":"Long",
"documentation":"<p>The number of rows read to execute the query.</p>"
},
"InputBytes":{
"shape":"Long",
"documentation":"<p>The number of bytes read to execute the query.</p>"
},
"OutputBytes":{
"shape":"Long",
"documentation":"<p>The number of bytes returned by the query.</p>"
},
"OutputRows":{
"shape":"Long",
"documentation":"<p>The number of rows returned by the query.</p>"
}
},
"documentation":"<p>Statistics such as input rows and bytes read by the query, rows and bytes output by the query, and the number of rows written by the query.</p>"
},
"QueryRuntimeStatisticsTimeline":{
"type":"structure",
"members":{
"QueryQueueTimeInMillis":{
"shape":"Long",
"documentation":"<p>The number of milliseconds that the query was in your query queue waiting for resources. Note that if transient errors occur, Athena might automatically add the query back to the queue.</p>"
},
"QueryPlanningTimeInMillis":{
"shape":"Long",
"documentation":"<p>The number of milliseconds that Athena took to plan the query processing flow. This includes the time spent retrieving table partitions from the data source. Note that because the query engine performs the query planning, query planning time is a subset of engine processing time.</p>"
},
"EngineExecutionTimeInMillis":{
"shape":"Long",
"documentation":"<p>The number of milliseconds that the query took to execute.</p>"
},
"ServiceProcessingTimeInMillis":{
"shape":"Long",
"documentation":"<p>The number of milliseconds that Athena took to finalize and publish the query results after the query engine finished running the query.</p>"
},
"TotalExecutionTimeInMillis":{
"shape":"Long",
"documentation":"<p>The number of milliseconds that Athena took to run the query.</p>"
}
},
"documentation":"<p>Timeline statistics such as query queue time, planning time, execution time, service processing time, and total execution time.</p>"
},
"QueryStage":{
"type":"structure",
"members":{
"StageId":{
"shape":"Long",
"documentation":"<p>The identifier for a stage.</p>"
},
"State":{
"shape":"String",
"documentation":"<p>State of the stage after query execution.</p>"
},
"OutputBytes":{
"shape":"Long",
"documentation":"<p>The number of bytes output from the stage after execution.</p>"
},
"OutputRows":{
"shape":"Long",
"documentation":"<p>The number of rows output from the stage after execution.</p>"
},
"InputBytes":{
"shape":"Long",
"documentation":"<p>The number of bytes input into the stage for execution.</p>"
},
"InputRows":{
"shape":"Long",
"documentation":"<p>The number of rows input into the stage for execution.</p>"
},
"ExecutionTime":{
"shape":"Long",
"documentation":"<p>Time taken to execute this stage.</p>"
},
"QueryStagePlan":{
"shape":"QueryStagePlanNode",
"documentation":"<p>Stage plan information such as name, identifier, sub plans, and source stages.</p>"
},
"SubStages":{
"shape":"QueryStages",
"documentation":"<p>List of sub query stages that form this stage execution plan.</p>"
}
},
"documentation":"<p>Stage statistics such as input and output rows and bytes, execution time and stage state. This information also includes substages and the query stage plan.</p>"
},
"QueryStagePlanNode":{
"type":"structure",
"members":{
"Name":{
"shape":"String",
"documentation":"<p>Name of the query stage plan that describes the operation this stage is performing as part of query execution.</p>"
},
"Identifier":{
"shape":"String",
"documentation":"<p>Information about the operation this query stage plan node is performing.</p>"
},
"Children":{
"shape":"QueryStagePlanNodes",
"documentation":"<p>Stage plan information such as name, identifier, sub plans, and remote sources of child plan nodes/</p>"
},
"RemoteSources":{
"shape":"StringList",
"documentation":"<p>Source plan node IDs.</p>"
}
},
"documentation":"<p>Stage plan information such as name, identifier, sub plans, and remote sources.</p>"
},
"QueryStagePlanNodes":{
"type":"list",
"member":{"shape":"QueryStagePlanNode"}
},
"QueryStages":{
"type":"list",
"member":{"shape":"QueryStage"}
},
"QueryString":{
"type":"string",
"max":262144,
@ -1901,7 +3407,10 @@
"type":"structure",
"members":{
"Message":{"shape":"ErrorMessage"},
"ResourceName":{"shape":"AmazonResourceName"}
"ResourceName":{
"shape":"AmazonResourceName",
"documentation":"<p>The name of the Amazon resource.</p>"
}
},
"documentation":"<p>A resource, such as a workgroup, was not found.</p>",
"exception":true
@ -1910,7 +3419,7 @@
"type":"structure",
"members":{
"OutputLocation":{
"shape":"String",
"shape":"ResultOutputLocation",
"documentation":"<p>The location in Amazon S3 where your query results are stored, such as <code>s3://path/to/query/bucket/</code>. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using <a>WorkGroupConfiguration</a>. If none of them is set, Athena issues an error that no output location is provided. For more information, see <a href=\"https://docs.aws.amazon.com/athena/latest/ug/querying.html\">Query Results</a>. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.</p>"
},
"EncryptionConfiguration":{
@ -1918,7 +3427,7 @@
"documentation":"<p>If query results are encrypted in Amazon S3, indicates the encryption option used (for example, <code>SSE_KMS</code> or <code>CSE_KMS</code>) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href=\"https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html\">Workgroup Settings Override Client-Side Settings</a>.</p>"
},
"ExpectedBucketOwner":{
"shape":"String",
"shape":"AwsAccountId",
"documentation":"<p>The Amazon Web Services account ID that you expect to be the owner of the Amazon S3 bucket specified by <a>ResultConfiguration$OutputLocation</a>. If set, Athena uses the value for <code>ExpectedBucketOwner</code> when it makes Amazon S3 calls to your specified output location. If the <code>ExpectedBucketOwner</code> Amazon Web Services account ID does not match the actual owner of the Amazon S3 bucket, the call fails with a permissions error.</p> <p>This is a client-side setting. If workgroup settings override client-side settings, then the query uses the <code>ExpectedBucketOwner</code> setting that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href=\"https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html\">Workgroup Settings Override Client-Side Settings</a>.</p>"
},
"AclConfiguration":{
@ -1932,7 +3441,7 @@
"type":"structure",
"members":{
"OutputLocation":{
"shape":"String",
"shape":"ResultOutputLocation",
"documentation":"<p>The location in Amazon S3 where your query results are stored, such as <code>s3://path/to/query/bucket/</code>. For more information, see <a href=\"https://docs.aws.amazon.com/athena/latest/ug/querying.html\">Query Results</a> If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. The \"workgroup settings override\" is specified in <code>EnforceWorkGroupConfiguration</code> (true/false) in the <code>WorkGroupConfiguration</code>. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>.</p>"
},
"RemoveOutputLocation":{
@ -1948,7 +3457,7 @@
"documentation":"<p>If set to \"true\", indicates that the previously-specified encryption configuration (also known as the client-side setting) for queries in this workgroup should be ignored and set to null. If set to \"false\" or not set, and a value is present in the <code>EncryptionConfiguration</code> in <code>ResultConfigurationUpdates</code> (the client-side setting), the <code>EncryptionConfiguration</code> in the workgroup's <code>ResultConfiguration</code> will be updated with the new value. For more information, see <a href=\"https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html\">Workgroup Settings Override Client-Side Settings</a>.</p>"
},
"ExpectedBucketOwner":{
"shape":"String",
"shape":"AwsAccountId",
"documentation":"<p>The Amazon Web Services account ID that you expect to be the owner of the Amazon S3 bucket specified by <a>ResultConfiguration$OutputLocation</a>. If set, Athena uses the value for <code>ExpectedBucketOwner</code> when it makes Amazon S3 calls to your specified output location. If the <code>ExpectedBucketOwner</code> Amazon Web Services account ID does not match the actual owner of the Amazon S3 bucket, the call fails with a permissions error.</p> <p>If workgroup settings override client-side settings, then the query uses the <code>ExpectedBucketOwner</code> setting that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a> and <a href=\"https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html\">Workgroup Settings Override Client-Side Settings</a>.</p>"
},
"RemoveExpectedBucketOwner":{
@ -1966,6 +3475,43 @@
},
"documentation":"<p>The information about the updates in the query results, such as output location and encryption configuration for the query results.</p>"
},
"ResultOutputLocation":{"type":"string"},
"ResultReuseByAgeConfiguration":{
"type":"structure",
"required":["Enabled"],
"members":{
"Enabled":{
"shape":"Boolean",
"documentation":"<p>True if previous query results can be reused when the query is run; otherwise, false. The default is false.</p>"
},
"MaxAgeInMinutes":{
"shape":"Age",
"documentation":"<p>Specifies, in minutes, the maximum age of a previous query result that Athena should consider for reuse. The default is 60.</p>"
}
},
"documentation":"<p>Specifies whether previous query results are reused, and if so, their maximum age.</p>"
},
"ResultReuseConfiguration":{
"type":"structure",
"members":{
"ResultReuseByAgeConfiguration":{
"shape":"ResultReuseByAgeConfiguration",
"documentation":"<p>Specifies whether previous query results are reused, and if so, their maximum age.</p>"
}
},
"documentation":"<p>Specifies the query result reuse behavior for the query.</p>"
},
"ResultReuseInformation":{
"type":"structure",
"required":["ReusedPreviousResult"],
"members":{
"ReusedPreviousResult":{
"shape":"Boolean",
"documentation":"<p>True if a previous query result was reused; false if the result was generated from a new run of the query.</p>"
}
},
"documentation":"<p>Contains information about whether the result of a previous query was reused.</p>"
},
"ResultSet":{
"type":"structure",
"members":{
@ -1990,6 +3536,12 @@
},
"documentation":"<p>The metadata that describes the column structure and data types of a table of query results. To return a <code>ResultSetMetadata</code> object, use <a>GetQueryResults</a>.</p>"
},
"RoleArn":{
"type":"string",
"max":2048,
"min":20,
"pattern":"^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$"
},
"Row":{
"type":"structure",
"members":{
@ -2008,6 +3560,179 @@
"type":"string",
"enum":["BUCKET_OWNER_FULL_CONTROL"]
},
"S3Uri":{
"type":"string",
"max":1024,
"pattern":"^(https|s3|S3)://([^/]+)/?(.*)$"
},
"SessionAlreadyExistsException":{
"type":"structure",
"members":{
"Message":{"shape":"ErrorMessage"}
},
"documentation":"<p>The specified session already exists.</p>",
"exception":true
},
"SessionConfiguration":{
"type":"structure",
"members":{
"ExecutionRole":{
"shape":"RoleArn",
"documentation":"<p>The ARN of the execution role used for the session.</p>"
},
"WorkingDirectory":{
"shape":"ResultOutputLocation",
"documentation":"<p>The Amazon S3 location that stores information for the notebook.</p>"
},
"IdleTimeoutSeconds":{
"shape":"Long",
"documentation":"<p>The idle timeout in seconds for the session.</p>"
},
"EncryptionConfiguration":{"shape":"EncryptionConfiguration"}
},
"documentation":"<p>Contains session configuration information.</p>"
},
"SessionId":{
"type":"string",
"max":256,
"min":1
},
"SessionIdleTimeoutInMinutes":{
"type":"integer",
"box":true,
"max":480,
"min":1
},
"SessionManagerToken":{
"type":"string",
"max":2048
},
"SessionState":{
"type":"string",
"enum":[
"CREATING",
"CREATED",
"IDLE",
"BUSY",
"TERMINATING",
"TERMINATED",
"DEGRADED",
"FAILED"
]
},
"SessionStatistics":{
"type":"structure",
"members":{
"DpuExecutionInMillis":{
"shape":"Long",
"documentation":"<p>The data processing unit execution time for a session in milliseconds.</p>"
}
},
"documentation":"<p>Contains statistics for a notebook session.</p>"
},
"SessionStatus":{
"type":"structure",
"members":{
"StartDateTime":{
"shape":"Date",
"documentation":"<p>The date and time that the session started.</p>"
},
"LastModifiedDateTime":{
"shape":"Date",
"documentation":"<p>The most recent date and time that the session was modified.</p>"
},
"EndDateTime":{
"shape":"Date",
"documentation":"<p>The date and time that the session ended.</p>"
},
"IdleSinceDateTime":{
"shape":"Date",
"documentation":"<p>The date and time starting at which the session became idle. Can be empty if the session is not currently idle.</p>"
},
"State":{
"shape":"SessionState",
"documentation":"<p>The state of the session. A description of each state follows.</p> <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p> <p> <code>CREATED</code> - The session has been started.</p> <p> <code>IDLE</code> - The session is able to accept a calculation.</p> <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p> <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p> <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p> <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p> <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>"
},
"StateChangeReason":{
"shape":"DescriptionString",
"documentation":"<p>The reason for the session state change (for example, canceled because the session was terminated).</p>"
}
},
"documentation":"<p>Contains information about the status of a notebook session.</p>"
},
"SessionSummary":{
"type":"structure",
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"Description":{
"shape":"DescriptionString",
"documentation":"<p>The session description.</p>"
},
"EngineVersion":{
"shape":"EngineVersion",
"documentation":"<p>The engine version used by the session (for example, <code>PySpark engine version 3</code>).</p>"
},
"NotebookVersion":{
"shape":"NameString",
"documentation":"<p>The notebook version.</p>"
},
"Status":{
"shape":"SessionStatus",
"documentation":"<p>Contains information about the session status.</p>"
}
},
"documentation":"<p>Contains summary information about a notebook session.</p>"
},
"SessionsList":{
"type":"list",
"member":{"shape":"SessionSummary"},
"max":100,
"min":0
},
"StartCalculationExecutionRequest":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"Description":{
"shape":"DescriptionString",
"documentation":"<p>A description of the calculation.</p>"
},
"CalculationConfiguration":{
"shape":"CalculationConfiguration",
"documentation":"<p>Contains configuration information for the calculation.</p>",
"deprecated":true,
"deprecatedMessage":"Kepler Post GA Tasks : https://sim.amazon.com/issues/ATHENA-39828"
},
"CodeBlock":{
"shape":"CodeBlock",
"documentation":"<p>A string that contains the code of the calculation.</p>"
},
"ClientRequestToken":{
"shape":"IdempotencyToken",
"documentation":"<p>A unique case-sensitive string used to ensure the request to create the calculation is idempotent (executes only once). If another <code>StartCalculationExecutionRequest</code> is received, the same response is returned and another calculation is not created. If a parameter has changed, an error is returned.</p> <important> <p>This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for users. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.</p> </important>"
}
}
},
"StartCalculationExecutionResponse":{
"type":"structure",
"members":{
"CalculationExecutionId":{
"shape":"CalculationExecutionId",
"documentation":"<p>The calculation execution UUID.</p>"
},
"State":{
"shape":"CalculationExecutionState",
"documentation":"<p> <code>CREATING</code> - The calculation is in the process of being created.</p> <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p> <p> <code>QUEUED</code> - The calculation has been queued for processing.</p> <p> <code>RUNNING</code> - The calculation is running.</p> <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p> <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p> <p> <code>COMPLETED</code> - The calculation has completed without error.</p> <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>"
}
}
},
"StartQueryExecutionInput":{
"type":"structure",
"required":["QueryString"],
@ -2032,6 +3757,14 @@
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The name of the workgroup in which the query is being started.</p>"
},
"ExecutionParameters":{
"shape":"ExecutionParameters",
"documentation":"<p>A list of values for the parameters in a query. The values are applied sequentially to the parameters in the query in the order in which the parameters occur.</p>"
},
"ResultReuseConfiguration":{
"shape":"ResultReuseConfiguration",
"documentation":"<p>Specifies the query result reuse behavior for the query.</p>"
}
}
},
@ -2044,6 +3777,52 @@
}
}
},
"StartSessionRequest":{
"type":"structure",
"required":[
"WorkGroup",
"EngineConfiguration"
],
"members":{
"Description":{
"shape":"DescriptionString",
"documentation":"<p>The session description.</p>"
},
"WorkGroup":{
"shape":"WorkGroupName",
"documentation":"<p>The workgroup to which the session belongs.</p>"
},
"EngineConfiguration":{
"shape":"EngineConfiguration",
"documentation":"<p>Contains engine data processing unit (DPU) configuration settings and parameter mappings.</p>"
},
"NotebookVersion":{
"shape":"NameString",
"documentation":"<p>The notebook version. This value is required only when requesting that a notebook server be started for the session. The only valid notebook version is <code>Jupyter1.0</code>.</p>"
},
"SessionIdleTimeoutInMinutes":{
"shape":"SessionIdleTimeoutInMinutes",
"documentation":"<p>The idle timeout in minutes for the session.</p>"
},
"ClientRequestToken":{
"shape":"IdempotencyToken",
"documentation":"<p>A unique case-sensitive string used to ensure the request to create the session is idempotent (executes only once). If another <code>StartSessionRequest</code> is received, the same response is returned and another session is not created. If a parameter has changed, an error is returned.</p> <important> <p>This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for users. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.</p> </important>"
}
}
},
"StartSessionResponse":{
"type":"structure",
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
},
"State":{
"shape":"SessionState",
"documentation":"<p>The state of the session. A description of each state follows.</p> <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p> <p> <code>CREATED</code> - The session has been started.</p> <p> <code>IDLE</code> - The session is able to accept a calculation.</p> <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p> <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p> <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p> <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p> <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>"
}
}
},
"StatementName":{
"type":"string",
"max":256,
@ -2058,6 +3837,25 @@
"UTILITY"
]
},
"StopCalculationExecutionRequest":{
"type":"structure",
"required":["CalculationExecutionId"],
"members":{
"CalculationExecutionId":{
"shape":"CalculationExecutionId",
"documentation":"<p>The calculation execution UUID.</p>"
}
}
},
"StopCalculationExecutionResponse":{
"type":"structure",
"members":{
"State":{
"shape":"CalculationExecutionState",
"documentation":"<p> <code>CREATING</code> - The calculation is in the process of being created.</p> <p> <code>CREATED</code> - The calculation has been created and is ready to run.</p> <p> <code>QUEUED</code> - The calculation has been queued for processing.</p> <p> <code>RUNNING</code> - The calculation is running.</p> <p> <code>CANCELING</code> - A request to cancel the calculation has been received and the system is working to stop it.</p> <p> <code>CANCELED</code> - The calculation is no longer running as the result of a cancel request.</p> <p> <code>COMPLETED</code> - The calculation has completed without error.</p> <p> <code>FAILED</code> - The calculation failed and is no longer running.</p>"
}
}
},
"StopQueryExecutionInput":{
"type":"structure",
"required":["QueryExecutionId"],
@ -2075,6 +3873,14 @@
}
},
"String":{"type":"string"},
"StringList":{
"type":"list",
"member":{"shape":"String"}
},
"SupportedDPUSizeList":{
"type":"list",
"member":{"shape":"Integer"}
},
"TableMetadata":{
"type":"structure",
"required":["Name"],
@ -2172,6 +3978,25 @@
"max":256,
"min":0
},
"TerminateSessionRequest":{
"type":"structure",
"required":["SessionId"],
"members":{
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The session ID.</p>"
}
}
},
"TerminateSessionResponse":{
"type":"structure",
"members":{
"State":{
"shape":"SessionState",
"documentation":"<p>The state of the session. A description of each state follows.</p> <p> <code>CREATING</code> - The session is being started, including acquiring resources.</p> <p> <code>CREATED</code> - The session has been started.</p> <p> <code>IDLE</code> - The session is able to accept a calculation.</p> <p> <code>BUSY</code> - The session is processing another task and is unable to accept a calculation.</p> <p> <code>TERMINATING</code> - The session is in the process of shutting down.</p> <p> <code>TERMINATED</code> - The session and its resources are no longer running.</p> <p> <code>DEGRADED</code> - The session has no healthy coordinators.</p> <p> <code>FAILED</code> - Due to a failure, the session and its resources are no longer running.</p>"
}
}
},
"ThrottleReason":{
"type":"string",
"documentation":"<p>The reason for the query throttling, for example, when it exceeds the concurrent query limit.</p>",
@ -2220,6 +4045,28 @@
"type":"list",
"member":{"shape":"UnprocessedNamedQueryId"}
},
"UnprocessedPreparedStatementName":{
"type":"structure",
"members":{
"StatementName":{
"shape":"StatementName",
"documentation":"<p>The name of a prepared statement that could not be returned due to an error.</p>"
},
"ErrorCode":{
"shape":"ErrorCode",
"documentation":"<p>The error code returned when the request for the prepared statement failed.</p>"
},
"ErrorMessage":{
"shape":"ErrorMessage",
"documentation":"<p>The error message containing the reason why the prepared statement could not be returned. The following error messages are possible:</p> <ul> <li> <p> <code>INVALID_INPUT</code> - The name of the prepared statement that was provided is not valid (for example, the name is too long).</p> </li> <li> <p> <code>STATEMENT_NOT_FOUND</code> - A prepared statement with the name provided could not be found.</p> </li> <li> <p> <code>UNAUTHORIZED</code> - The requester does not have permission to access the workgroup that contains the prepared statement.</p> </li> </ul>"
}
},
"documentation":"<p>The name of a prepared statement that could not be returned.</p>"
},
"UnprocessedPreparedStatementNameList":{
"type":"list",
"member":{"shape":"UnprocessedPreparedStatementName"}
},
"UnprocessedQueryExecutionId":{
"type":"structure",
"members":{
@ -2325,6 +4172,63 @@
"members":{
}
},
"UpdateNotebookInput":{
"type":"structure",
"required":["NotebookId"],
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The ID of the notebook to update.</p>"
},
"Payload":{
"shape":"Payload",
"documentation":"<p>The updated content for the notebook.</p>"
},
"Type":{
"shape":"NotebookType",
"documentation":"<p>The notebook content type. Currently, the only valid type is <code>IPYNB</code>.</p>"
},
"SessionId":{
"shape":"SessionId",
"documentation":"<p>The ID of the session in which the notebook will be updated.</p>"
},
"ClientRequestToken":{
"shape":"ClientRequestToken",
"documentation":"<p>A unique case-sensitive string used to ensure the request to create the notebook is idempotent (executes only once).</p> <important> <p>This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.</p> </important>"
}
}
},
"UpdateNotebookMetadataInput":{
"type":"structure",
"required":[
"NotebookId",
"Name"
],
"members":{
"NotebookId":{
"shape":"NotebookId",
"documentation":"<p>The ID of the notebook to update the metadata for.</p>"
},
"ClientRequestToken":{
"shape":"ClientRequestToken",
"documentation":"<p>A unique case-sensitive string used to ensure the request to create the notebook is idempotent (executes only once).</p> <important> <p>This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.</p> </important>"
},
"Name":{
"shape":"NotebookName",
"documentation":"<p>The name to update the notebook to.</p>"
}
}
},
"UpdateNotebookMetadataOutput":{
"type":"structure",
"members":{
}
},
"UpdateNotebookOutput":{
"type":"structure",
"members":{
}
},
"UpdatePreparedStatementInput":{
"type":"structure",
"required":[
@ -2370,7 +4274,7 @@
},
"ConfigurationUpdates":{
"shape":"WorkGroupConfigurationUpdates",
"documentation":"<p>The workgroup configuration that will be updated for the given workgroup.</p>"
"documentation":"<p>Contains configuration updates for an Athena SQL workgroup.</p>"
},
"State":{
"shape":"WorkGroupState",
@ -2436,6 +4340,18 @@
"EngineVersion":{
"shape":"EngineVersion",
"documentation":"<p>The engine version that all queries running on the workgroup use. Queries on the <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.</p>"
},
"AdditionalConfiguration":{
"shape":"NameString",
"documentation":"<p>Specifies a user defined JSON string that is passed to the notebook engine.</p>"
},
"ExecutionRole":{
"shape":"RoleArn",
"documentation":"<p>Role used in a notebook session for accessing the user's resources.</p>"
},
"CustomerContentEncryptionConfiguration":{
"shape":"CustomerContentEncryptionConfiguration",
"documentation":"<p>Specifies the KMS key that is used to encrypt the user's data stores in Athena.</p>"
}
},
"documentation":"<p>The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup and whether workgroup settings override query settings, and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in <code>EnforceWorkGroupConfiguration</code> (true/false) in the <code>WorkGroupConfiguration</code>. See <a>WorkGroupConfiguration$EnforceWorkGroupConfiguration</a>. </p>"
@ -2470,7 +4386,20 @@
"EngineVersion":{
"shape":"EngineVersion",
"documentation":"<p>The engine version requested when a workgroup is updated. After the update, all queries on the workgroup run on the requested engine version. If no value was previously set, the default is Auto. Queries on the <code>AmazonAthenaPreviewFunctionality</code> workgroup run on the preview engine regardless of this setting.</p>"
}
},
"RemoveCustomerContentEncryptionConfiguration":{
"shape":"BoxedBoolean",
"documentation":"<p>Removes content encryption configuration for a workgroup.</p>"
},
"AdditionalConfiguration":{
"shape":"NameString",
"documentation":"<p>Contains a user defined string in JSON format for a Spark-enabled workgroup.</p>"
},
"ExecutionRole":{
"shape":"RoleArn",
"documentation":"<p>Contains the ARN of the execution role for the workgroup</p>"
},
"CustomerContentEncryptionConfiguration":{"shape":"CustomerContentEncryptionConfiguration"}
},
"documentation":"<p>The configuration information that will be updated for this workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, whether the workgroup settings override the client-side settings, and the data usage limit for the amount of bytes scanned per query, if it is specified.</p>"
},

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://auditmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://auditmanager-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://auditmanager.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://auditmanager.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -106,7 +106,7 @@
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
],
"documentation":"<p> Uploads one or more pieces of evidence to a control in an Audit Manager assessment. </p>"
"documentation":"<p>Uploads one or more pieces of evidence to a control in an Audit Manager assessment. You can upload manual evidence from any Amazon Simple Storage Service (Amazon S3) bucket by specifying the S3 URI of the evidence. </p> <p>You must upload manual evidence to your S3 bucket before you can upload it to your assessment. For instructions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a> in the <i>Amazon Simple Storage Service API Reference.</i> </p> <p>The following restrictions apply to this action:</p> <ul> <li> <p>Maximum size of an individual evidence file: 100 MB</p> </li> <li> <p>Number of daily manual evidence uploads per control: 100</p> </li> <li> <p>Supported file formats: See <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/upload-evidence.html#supported-manual-evidence-files\">Supported file types for manual evidence</a> in the <i>Audit Manager User Guide</i> </p> </li> </ul> <p>For more information about Audit Manager service restrictions, see <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/service-quotas.html\">Quotas and restrictions for Audit Manager</a>.</p>"
},
"CreateAssessment":{
"name":"CreateAssessment",
@ -120,7 +120,8 @@
{"shape":"ResourceNotFoundException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ServiceQuotaExceededException"}
],
"documentation":"<p> Creates an assessment in Audit Manager. </p>"
},
@ -136,7 +137,8 @@
{"shape":"ResourceNotFoundException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ServiceQuotaExceededException"}
],
"documentation":"<p> Creates a custom framework in Audit Manager. </p>"
},
@ -168,7 +170,8 @@
{"shape":"ResourceNotFoundException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ServiceQuotaExceededException"}
],
"documentation":"<p> Creates a new custom control in Audit Manager. </p>"
},
@ -282,7 +285,7 @@
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager. </p> <important> <p>When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward.</p> </important> <note> <p>When you deregister a delegated administrator account for Audit Manager, the data for that account isnt deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. </p> <p>To delete your Audit Manager resource data, see the following instructions: </p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html\">DeleteAssessment</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html\">Deleting an assessment</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html\">DeleteAssessmentFramework</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html\">Deleting a custom framework</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html\">DeleteAssessmentFrameworkShare</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html\">Deleting a share request</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html\">DeleteAssessmentReport</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps\">Deleting an assessment report</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html\">DeleteControl</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html\">Deleting a custom control</a> in the <i>Audit Manager User Guide</i>)</p> </li> </ul> <p>At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above.</p> </note>"
"documentation":"<p>Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager. </p> <p>When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward.</p> <important> <p>Keep in mind the following cleanup task if you use evidence finder:</p> <p>Before you use your management account to remove a delegated administrator, make sure that the current delegated administrator account signs in to Audit Manager and disables evidence finder first. Disabling evidence finder automatically deletes the event data store that was created in their account when they enabled evidence finder. If this task isnt completed, the event data store remains in their account. In this case, we recommend that the original delegated administrator goes to CloudTrail Lake and manually <a href=\"https://docs.aws.amazon.com/userguide/awscloudtrail/latest/userguide/query-eds-disable-termination.html\">deletes the event data store</a>.</p> <p>This cleanup task is necessary to ensure that you don't end up with multiple event data stores. Audit Manager will ignore an unused event data store after you remove or change a delegated administrator account. However, the unused event data store continues to incur storage costs from CloudTrail Lake if you don't delete it.</p> </important> <p>When you deregister a delegated administrator account for Audit Manager, the data for that account isnt deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager. </p> <p>To delete your Audit Manager resource data, see the following instructions: </p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessment.html\">DeleteAssessment</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-assessment.html\">Deleting an assessment</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFramework.html\">DeleteAssessmentFramework</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-custom-framework.html\">Deleting a custom framework</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentFrameworkShare.html\">DeleteAssessmentFrameworkShare</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/deleting-shared-framework-requests.html\">Deleting a share request</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteAssessmentReport.html\">DeleteAssessmentReport</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/generate-assessment-report.html#delete-assessment-report-steps\">Deleting an assessment report</a> in the <i>Audit Manager User Guide</i>)</p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeleteControl.html\">DeleteControl</a> (see also: <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/delete-controls.html\">Deleting a custom control</a> in the <i>Audit Manager User Guide</i>)</p> </li> </ul> <p>At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above.</p>"
},
"DisassociateAssessmentReportEvidenceFolder":{
"name":"DisassociateAssessmentReportEvidenceFolder",
@ -547,7 +550,7 @@
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
],
"documentation":"<p> Returns a list of the in-scope Amazon Web Services services for the specified assessment. </p>"
"documentation":"<p>Returns a list of all of the Amazon Web Services that you can choose to include in your assessment. When you <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_CreateAssessment.html\">create an assessment</a>, specify which of these services you want to include to narrow the assessment's <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_Scope.html\">scope</a>.</p>"
},
"GetSettings":{
"name":"GetSettings",
@ -759,7 +762,8 @@
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p> Enables Audit Manager for the specified Amazon Web Services account. </p>"
},
@ -793,7 +797,7 @@
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p> Creates a share request for a custom framework in Audit Manager. </p> <p>The share request specifies a recipient and notifies them that a custom framework is available. Recipients have 120 days to accept or decline the request. If no action is taken, the share request expires.</p> <important> <p>When you invoke the <code>StartAssessmentFrameworkShare</code> API, you are about to share a custom framework with another Amazon Web Services account. You may not share a custom framework that is derived from a standard framework if the standard framework is designated as not eligible for sharing by Amazon Web Services, unless you have obtained permission to do so from the owner of the standard framework. To learn more about which standard frameworks are eligible for sharing, see <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/share-custom-framework-concepts-and-terminology.html#eligibility\">Framework sharing eligibility</a> in the <i>Audit Manager User Guide</i>.</p> </important>"
"documentation":"<p> Creates a share request for a custom framework in Audit Manager. </p> <p>The share request specifies a recipient and notifies them that a custom framework is available. Recipients have 120 days to accept or decline the request. If no action is taken, the share request expires.</p> <p>When you create a share request, Audit Manager stores a snapshot of your custom framework in the US East (N. Virginia) Amazon Web Services Region. Audit Manager also stores a backup of the same snapshot in the US West (Oregon) Amazon Web Services Region.</p> <p>Audit Manager deletes the snapshot and the backup snapshot when one of the following events occurs:</p> <ul> <li> <p>The sender revokes the share request.</p> </li> <li> <p>The recipient declines the share request.</p> </li> <li> <p>The recipient encounters an error and doesn't successfully accept the share request.</p> </li> <li> <p>The share request expires before the recipient responds to the request.</p> </li> </ul> <p>When a sender <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/framework-sharing.html#framework-sharing-resend\">resends a share request</a>, the snapshot is replaced with an updated version that corresponds with the latest version of the custom framework. </p> <p>When a recipient accepts a share request, the snapshot is replicated into their Amazon Web Services account under the Amazon Web Services Region that was specified in the share request. </p> <important> <p>When you invoke the <code>StartAssessmentFrameworkShare</code> API, you are about to share a custom framework with another Amazon Web Services account. You may not share a custom framework that is derived from a standard framework if the standard framework is designated as not eligible for sharing by Amazon Web Services, unless you have obtained permission to do so from the owner of the standard framework. To learn more about which standard frameworks are eligible for sharing, see <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/share-custom-framework-concepts-and-terminology.html#eligibility\">Framework sharing eligibility</a> in the <i>Audit Manager User Guide</i>.</p> </important>"
},
"TagResource":{
"name":"TagResource",
@ -917,7 +921,8 @@
{"shape":"ResourceNotFoundException"},
{"shape":"ValidationException"},
{"shape":"AccessDeniedException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ServiceQuotaExceededException"}
],
"documentation":"<p> Updates the status of an assessment in Audit Manager. </p>"
},
@ -1237,7 +1242,7 @@
},
"evidenceByTypeConfigurationDataCount":{
"shape":"Integer",
"documentation":"<p> The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other Amazon Web Services services such as Amazon EC2, Amazon S3, or IAM. </p>"
"documentation":"<p> The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other Amazon Web Services such as Amazon EC2, Amazon S3, or IAM. </p>"
},
"evidenceByTypeManualCount":{
"shape":"Integer",
@ -1571,14 +1576,14 @@
},
"errorCode":{
"shape":"ErrorCode",
"documentation":"<p> The error code that the <code>AssessmentReportEvidence</code> API returned. </p>"
"documentation":"<p> The error code that was returned. </p>"
},
"errorMessage":{
"shape":"ErrorMessage",
"documentation":"<p> The error message that the <code>AssessmentReportEvidence</code> API returned. </p>"
"documentation":"<p> The error message that was returned. </p>"
}
},
"documentation":"<p> An error entity for the <code>AssessmentReportEvidence</code> API. This is used to provide more meaningful errors than a simple string message. </p>"
"documentation":"<p> An error entity for assessment report evidence errors. This is used to provide more meaningful errors than a simple string message. </p>"
},
"AssessmentReportEvidenceErrors":{
"type":"list",
@ -1964,6 +1969,12 @@
"type":"list",
"member":{"shape":"ChangeLog"}
},
"CloudTrailArn":{
"type":"string",
"max":2048,
"min":20,
"pattern":"^arn:.*:cloudtrail:.*"
},
"ComplianceType":{
"type":"string",
"max":100,
@ -2006,7 +2017,7 @@
},
"controlSources":{
"shape":"ControlSources",
"documentation":"<p> The data source that determines where Audit Manager collects evidence from for the control. </p>"
"documentation":"<p> The data source types that determine where Audit Manager collects evidence from for the control. </p>"
},
"controlMappingSources":{
"shape":"ControlMappingSources",
@ -2411,6 +2422,10 @@
"documentation":"<p> The identifier for the assessment. </p>",
"location":"uri",
"locationName":"assessmentId"
},
"queryStatement":{
"shape":"QueryStatement",
"documentation":"<p>A SQL statement that represents an evidence finder query.</p> <p>Provide this parameter when you want to generate an assessment report from the results of an evidence finder search query. When you use this parameter, Audit Manager generates a one-time report using only the evidence from the query output. This report does not include any assessment evidence that was manually <a href=\"https://docs.aws.amazon.com/userguide/generate-assessment-report.html#generate-assessment-report-include-evidence\">added to a report using the console</a>, or <a href=\"https://docs.aws.amazon.com/APIReference-evidenceFinder/API_BatchAssociateAssessmentReportEvidence.html\">associated with a report using the API</a>. </p> <p>To use this parameter, the <a href=\"https://docs.aws.amazon.com/APIReference-evidenceFinder/API_EvidenceFinderSetup.html#auditmanager-Type-EvidenceFinderSetup-enablementStatus\">enablementStatus</a> of evidence finder must be <code>ENABLED</code>. </p> <p> For examples and help resolving <code>queryStatement</code> validation exceptions, see <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-finder-issues.html#querystatement-exceptions\">Troubleshooting evidence finder issues</a> in the AWS Audit Manager User Guide. </p>"
}
}
},
@ -2911,7 +2926,7 @@
},
"complianceCheck":{
"shape":"String",
"documentation":"<p> The evaluation status for evidence that falls under the compliance check category. For evidence collected from Security Hub, a <i>Pass</i> or <i>Fail</i> result is shown. For evidence collected from Config, a <i>Compliant</i> or <i>Noncompliant</i> result is shown. </p>"
"documentation":"<p>The evaluation status for automated evidence that falls under the compliance check category.</p> <ul> <li> <p>Audit Manager classes evidence as non-compliant if Security Hub reports a <i>Fail</i> result, or if Config reports a <i>Non-compliant</i> result.</p> </li> <li> <p>Audit Manager classes evidence as compliant if Security Hub reports a <i>Pass</i> result, or if Config reports a <i>Compliant</i> result.</p> </li> <li> <p>If a compliance check isn't available or applicable, then no compliance evaluation can be made for that evidence. This is the case if the evidence uses Config or Security Hub as the underlying data source type, but those services aren't enabled. This is also the case if the evidence uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail). </p> </li> </ul>"
},
"awsOrganization":{
"shape":"String",
@ -2951,6 +2966,45 @@
"key":{"shape":"EvidenceAttributeKey"},
"value":{"shape":"EvidenceAttributeValue"}
},
"EvidenceFinderBackfillStatus":{
"type":"string",
"enum":[
"NOT_STARTED",
"IN_PROGRESS",
"COMPLETED"
]
},
"EvidenceFinderEnablement":{
"type":"structure",
"members":{
"eventDataStoreArn":{
"shape":"CloudTrailArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the CloudTrail Lake event data store thats used by evidence finder. The event data store is the lake of evidence data that evidence finder runs queries against.</p>"
},
"enablementStatus":{
"shape":"EvidenceFinderEnablementStatus",
"documentation":"<p>The current status of the evidence finder feature and the related event data store. </p> <ul> <li> <p> <code>ENABLE_IN_PROGRESS</code> means that you requested to enable evidence finder. An event data store is currently being created to support evidence finder queries.</p> </li> <li> <p> <code>ENABLED</code> means that an event data store was successfully created and evidence finder is enabled. We recommend that you wait 24 hours until the event data store is backfilled with your past evidence data. You can use evidence finder in the meantime, but not all data might be available until the backfill is complete.</p> </li> <li> <p> <code>DISABLE_IN_PROGRESS</code> means that you requested to disable evidence finder, and your request is pending the deletion of the event data store.</p> </li> <li> <p> <code>DISABLED</code> means that you have permanently disabled evidence finder and the event data store has been deleted. You can't re-enable evidence finder after this point.</p> </li> </ul>"
},
"backfillStatus":{
"shape":"EvidenceFinderBackfillStatus",
"documentation":"<p>The current status of the evidence data backfill process. </p> <p>The backfill starts after you enable evidence finder. During this task, Audit Manager populates an event data store with your past evidence data so that your evidence can be queried.</p> <ul> <li> <p> <code>NOT_STARTED</code> means that the backfill hasnt started yet. </p> </li> <li> <p> <code>IN_PROGRESS</code> means that the backfill is in progress. This can take up to 24 hours to complete, depending on the amount of evidence data. </p> </li> <li> <p> <code>COMPLETED</code> means that the backfill is complete. All of your past evidence is now queryable. </p> </li> </ul>"
},
"error":{
"shape":"ErrorMessage",
"documentation":"<p>Represents any errors that occurred when enabling or disabling evidence finder. </p>"
}
},
"documentation":"<p>The settings object that specifies whether evidence finder is enabled. This object also describes the related event data store, and the backfill status for populating the event data store with evidence data.</p>"
},
"EvidenceFinderEnablementStatus":{
"type":"string",
"enum":[
"ENABLED",
"DISABLED",
"ENABLE_IN_PROGRESS",
"DISABLE_IN_PROGRESS"
]
},
"EvidenceIds":{
"type":"list",
"member":{"shape":"UUID"},
@ -4209,6 +4263,12 @@
"ASSESSMENT_REPORT"
]
},
"QueryStatement":{
"type":"string",
"max":10000,
"min":1,
"pattern":"(?s).*"
},
"Region":{
"type":"string",
"pattern":"^[a-z]{2}-[a-z]+-[0-9]{1}$"
@ -4268,6 +4328,10 @@
"value":{
"shape":"String",
"documentation":"<p> The value of the resource. </p>"
},
"complianceCheck":{
"shape":"String",
"documentation":"<p> The evaluation status for a resource that was assessed when collecting compliance check evidence. </p> <ul> <li> <p>Audit Manager classes the resource as non-compliant if Security Hub reports a <i>Fail</i> result, or if Config reports a <i>Non-compliant</i> result.</p> </li> <li> <p>Audit Manager classes the resource as compliant if Security Hub reports a <i>Pass</i> result, or if Config reports a <i>Compliant</i> result.</p> </li> <li> <p>If a compliance check isn't available or applicable, then no compliance evaluation can be made for that resource. This is the case if a resource assessment uses Config or Security Hub as the underlying data source type, but those services aren't enabled. This is also the case if the resource assessment uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail). </p> </li> </ul>"
}
},
"documentation":"<p> A system asset that's evaluated in an Audit Manager assessment. </p>"
@ -4300,6 +4364,10 @@
},
"Role":{
"type":"structure",
"required":[
"roleType",
"roleArn"
],
"members":{
"roleType":{
"shape":"RoleType",
@ -4375,6 +4443,16 @@
"type":"list",
"member":{"shape":"ServiceMetadata"}
},
"ServiceQuotaExceededException":{
"type":"structure",
"required":["message"],
"members":{
"message":{"shape":"String"}
},
"documentation":"<p>You've reached your account quota for this resource type. To perform the requested action, delete some existing resources or <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html\">request a quota increase</a> from the Service Quotas console. For a list of Audit Manager service quotas, see <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/service-quotas.html\">Quotas and restrictions for Audit Manager</a>.</p>",
"error":{"httpStatusCode":402},
"exception":true
},
"SettingAttribute":{
"type":"string",
"enum":[
@ -4382,7 +4460,8 @@
"IS_AWS_ORG_ENABLED",
"SNS_TOPIC",
"DEFAULT_ASSESSMENT_REPORTS_DESTINATION",
"DEFAULT_PROCESS_OWNERS"
"DEFAULT_PROCESS_OWNERS",
"EVIDENCE_FINDER_ENABLEMENT"
]
},
"Settings":{
@ -4407,6 +4486,10 @@
"kmsKey":{
"shape":"KmsKey",
"documentation":"<p> The KMS key details. </p>"
},
"evidenceFinderEnablement":{
"shape":"EvidenceFinderEnablement",
"documentation":"<p>The current evidence finder status and event data store details.</p>"
}
},
"documentation":"<p> The settings object that holds all supported Audit Manager settings. </p>"
@ -4472,10 +4555,10 @@
},
"keywordValue":{
"shape":"KeywordValue",
"documentation":"<p> The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call. </p> <p>If youre mapping a data source to a rule in Config, the <code>keywordValue</code> that you specify depends on the type of rule:</p> <ul> <li> <p>For <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html\">managed rules</a>, you can use the rule identifier as the <code>keywordValue</code>. You can find the rule identifier from the <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html\">list of Config managed rules</a>.</p> <ul> <li> <p>Managed rule name: <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-acl-prohibited.html\">s3-bucket-acl-prohibited</a> </p> <p> <code>keywordValue</code>: <code>S3_BUCKET_ACL_PROHIBITED</code> </p> </li> </ul> </li> <li> <p>For <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html\">custom rules</a>, you form the <code>keywordValue</code> by adding the <code>Custom_</code> prefix to the rule name. This prefix distinguishes the rule from a managed rule.</p> <ul> <li> <p>Custom rule name: my-custom-config-rule</p> <p> <code>keywordValue</code>: <code>Custom_my-custom-config-rule</code> </p> </li> </ul> </li> <li> <p>For <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/service-linked-awsconfig-rules.html\">service-linked rules</a>, you form the <code>keywordValue</code> by adding the <code>Custom_</code> prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name.</p> <ul> <li> <p>Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w</p> <p> <code>keywordValue</code>: <code>Custom_CustomRuleForAccount-conformance-pack</code> </p> </li> <li> <p>Service-linked rule name: securityhub-api-gw-cache-encrypted-101104e1</p> <p> <code>keywordValue</code>: <code>Custom_securityhub-api-gw-cache-encrypted</code> </p> </li> <li> <p>Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba</p> <p> <code>keywordValue</code>: <code>Custom_OrgConfigRule-s3-bucket-versioning-enabled</code> </p> </li> </ul> </li> </ul>"
"documentation":"<p> The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call. </p> <p>If youre mapping a data source to a rule in Config, the <code>keywordValue</code> that you specify depends on the type of rule:</p> <ul> <li> <p>For <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html\">managed rules</a>, you can use the rule identifier as the <code>keywordValue</code>. You can find the rule identifier from the <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html\">list of Config managed rules</a>.</p> <ul> <li> <p>Managed rule name: <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-acl-prohibited.html\">s3-bucket-acl-prohibited</a> </p> <p> <code>keywordValue</code>: <code>S3_BUCKET_ACL_PROHIBITED</code> </p> </li> </ul> </li> <li> <p>For <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html\">custom rules</a>, you form the <code>keywordValue</code> by adding the <code>Custom_</code> prefix to the rule name. This prefix distinguishes the rule from a managed rule.</p> <ul> <li> <p>Custom rule name: my-custom-config-rule</p> <p> <code>keywordValue</code>: <code>Custom_my-custom-config-rule</code> </p> </li> </ul> </li> <li> <p>For <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/service-linked-awsconfig-rules.html\">service-linked rules</a>, you form the <code>keywordValue</code> by adding the <code>Custom_</code> prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name.</p> <ul> <li> <p>Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w</p> <p> <code>keywordValue</code>: <code>Custom_CustomRuleForAccount-conformance-pack</code> </p> </li> <li> <p>Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba</p> <p> <code>keywordValue</code>: <code>Custom_OrgConfigRule-s3-bucket-versioning-enabled</code> </p> </li> </ul> </li> </ul>"
}
},
"documentation":"<p> The keyword to search for in CloudTrail logs, Config rules, Security Hub checks, and Amazon Web Services API names. </p>"
"documentation":"<p> The keyword to search for in CloudTrail logs, Config rules, Security Hub checks, and Amazon Web Services API names. </p> <p> To learn more about the supported keywords that you can use when mapping a control data source, see the following pages in the <i>Audit Manager User Guide</i>:</p> <ul> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-ash.html\">Config rules supported by Audit Manager</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-config.html\">Security Hub controls supported by Audit Manager</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-api.html\">API calls supported by Audit Manager</a> </p> </li> <li> <p> <a href=\"https://docs.aws.amazon.com/audit-manager/latest/userguide/control-data-sources-cloudtrail.html\">CloudTrail event names supported by Audit Manager</a> </p> </li> </ul>"
},
"SourceName":{
"type":"string",
@ -4596,6 +4679,16 @@
"max":1000,
"pattern":"^[\\w\\W\\s\\S]*$"
},
"ThrottlingException":{
"type":"structure",
"required":["message"],
"members":{
"message":{"shape":"String"}
},
"documentation":"<p>The request was denied due to request throttling.</p>",
"error":{"httpStatusCode":400},
"exception":true
},
"Timestamp":{"type":"timestamp"},
"TimestampUUID":{
"type":"string",
@ -4985,6 +5078,10 @@
"kmsKey":{
"shape":"KmsKey",
"documentation":"<p> The KMS key details. </p>"
},
"evidenceFinderEnabled":{
"shape":"Boolean",
"documentation":"<p>Specifies whether the evidence finder feature is enabled. Change this attribute to enable or disable evidence finder.</p> <important> <p>When you use this attribute to disable evidence finder, Audit Manager deletes the event data store thats used to query your evidence data. As a result, you cant re-enable evidence finder and use the feature again. Your only alternative is to <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html\">deregister</a> and then <a href=\"https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html\">re-register</a> Audit Manager. </p> <p>Disabling evidence finder is permanent, so consider this decision carefully before you proceed. If youre using Audit Manager as a delegated administrator, keep in mind that this action applies to all member accounts in your organization.</p> </important>"
}
}
},

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling-plans-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling-plans-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling-plans.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling-plans.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,331 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": true,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
"aws-us-gov",
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
}
]
}
],
"endpoint": {
"url": "https://autoscaling.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://autoscaling.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -101,7 +101,7 @@
"input": {
"AutoScalingGroupName": "my-auto-scaling-group",
"LaunchTemplate": {
"LaunchTemplateId": "lt-0a20c965061f64abc",
"LaunchTemplateName": "my-template-for-auto-scaling",
"Version": "$Latest"
},
"MaxInstanceLifetime": 2592000,
@ -125,8 +125,8 @@
"HealthCheckGracePeriod": 300,
"HealthCheckType": "ELB",
"LaunchTemplate": {
"LaunchTemplateId": "lt-0a20c965061f64abc",
"Version": "$Default"
"LaunchTemplateName": "my-template-for-auto-scaling",
"Version": "$Latest"
},
"MaxSize": 3,
"MinSize": 1,
@ -397,7 +397,7 @@
"output": {
}
},
"description": "This example describes the Auto Scaling limits for your AWS account.",
"description": "This example describes the Amazon EC2 Auto Scaling service quotas for your account.",
"id": "autoscaling-describe-account-limits-1",
"title": "To describe your Auto Scaling account limits"
}
@ -1203,10 +1203,10 @@
{
"input": {
"AutoScalingGroupName": "my-auto-scaling-group",
"LifecycleHookName": "my-lifecycle-hook",
"LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
"NotificationTargetARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic --role-arn",
"RoleARN": "arn:aws:iam::123456789012:role/my-auto-scaling-role"
"DefaultResult": "CONTINUE",
"HeartbeatTimeout": 300,
"LifecycleHookName": "my-launch-lifecycle-hook",
"LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING"
},
"comments": {
"input": {
@ -1214,9 +1214,9 @@
"output": {
}
},
"description": "This example creates a lifecycle hook.",
"description": "This example creates a lifecycle hook for instance launch.",
"id": "autoscaling-put-lifecycle-hook-1",
"title": "To create a lifecycle hook"
"title": "To create a launch lifecycle hook"
}
],
"PutNotificationConfiguration": [
@ -1303,8 +1303,11 @@
{
"input": {
"AutoScalingGroupName": "my-auto-scaling-group",
"InstanceReusePolicy": {
"ReuseOnScaleIn": true
},
"MinSize": 30,
"PoolState": "Stopped"
"PoolState": "Hibernated"
},
"comments": {
"input": {
@ -1312,9 +1315,9 @@
"output": {
}
},
"description": "This example adds a warm pool to the specified Auto Scaling group.",
"description": "This example creates a warm pool for the specified Auto Scaling group.",
"id": "to-add-a-warm-pool-to-an-auto-scaling-group-1617818810383",
"title": "To add a warm pool to an Auto Scaling group"
"title": "To create a warm pool for an Auto Scaling group"
}
],
"RecordLifecycleActionHeartbeat": [
@ -1431,9 +1434,16 @@
{
"input": {
"AutoScalingGroupName": "my-auto-scaling-group",
"DesiredConfiguration": {
"LaunchTemplate": {
"LaunchTemplateName": "my-template-for-auto-scaling",
"Version": "$Latest"
}
},
"Preferences": {
"InstanceWarmup": 400,
"MinHealthyPercentage": 50
"MinHealthyPercentage": 90,
"SkipMatching": true
}
},
"output": {
@ -1490,37 +1500,12 @@
{
"input": {
"AutoScalingGroupName": "my-auto-scaling-group",
"LaunchConfigurationName": "new-launch-config"
},
"comments": {
"input": {
"LaunchTemplate": {
"LaunchTemplateName": "my-template-for-auto-scaling",
"Version": "2"
},
"output": {
}
},
"description": "This example updates the launch configuration of the specified Auto Scaling group.",
"id": "autoscaling-update-auto-scaling-group-1",
"title": "To update the launch configuration"
},
{
"input": {
"AutoScalingGroupName": "my-auto-scaling-group",
"MaxSize": 3,
"MinSize": 1
},
"comments": {
"input": {
},
"output": {
}
},
"description": "This example updates the minimum size and maximum size of the specified Auto Scaling group.",
"id": "autoscaling-update-auto-scaling-group-2",
"title": "To update the minimum and maximum size"
},
{
"input": {
"AutoScalingGroupName": "my-auto-scaling-group",
"MaxSize": 5,
"MinSize": 1,
"NewInstancesProtectedFromScaleIn": true
},
"comments": {
@ -1529,9 +1514,9 @@
"output": {
}
},
"description": "This example enables instance protection for the specified Auto Scaling group.",
"id": "autoscaling-update-auto-scaling-group-3",
"title": "To enable instance protection"
"description": "This example updates multiple properties at the same time.",
"id": "autoscaling-update-auto-scaling-group-1",
"title": "To update an Auto Scaling group"
}
]
}

View file

@ -39,7 +39,7 @@
{"shape":"ResourceContentionFault"},
{"shape":"ServiceLinkedRoleFailure"}
],
"documentation":"<p>Attaches one or more target groups to the specified Auto Scaling group.</p> <p>This operation is used with the following load balancer types: </p> <ul> <li> <p> Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS. </p> </li> <li> <p> Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP. </p> </li> <li> <p> Gateway Load Balancer - Operates at the network layer (layer 3).</p> </li> </ul> <p>To describe the target groups for an Auto Scaling group, call the <a>DescribeLoadBalancerTargetGroups</a> API. To detach the target group from the Auto Scaling group, call the <a>DetachLoadBalancerTargetGroups</a> API.</p> <p>This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
"documentation":"<p>Attaches one or more target groups to the specified Auto Scaling group.</p> <p>This operation is used with the following load balancer types: </p> <ul> <li> <p>Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS. </p> </li> <li> <p>Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP. </p> </li> <li> <p>Gateway Load Balancer - Operates at the network layer (layer 3).</p> </li> </ul> <p>To describe the target groups for an Auto Scaling group, call the <a>DescribeLoadBalancerTargetGroups</a> API. To detach the target group from the Auto Scaling group, call the <a>DetachLoadBalancerTargetGroups</a> API.</p> <p>This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
},
"AttachLoadBalancers":{
"name":"AttachLoadBalancers",
@ -56,7 +56,24 @@
{"shape":"ResourceContentionFault"},
{"shape":"ServiceLinkedRoleFailure"}
],
"documentation":"<note> <p>To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the <a>AttachLoadBalancerTargetGroups</a> API operation instead.</p> </note> <p>Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.</p> <p>To describe the load balancers for an Auto Scaling group, call the <a>DescribeLoadBalancers</a> API. To detach the load balancer from the Auto Scaling group, call the <a>DetachLoadBalancers</a> API.</p> <p>This operation is additive and does not detach existing Classic Load Balancers or target groups from the Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
"documentation":"<note> <p>To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the <a>AttachLoadBalancerTargetGroups</a> API operation instead.</p> </note> <p>Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.</p> <p>To describe the load balancers for an Auto Scaling group, call the <a>DescribeLoadBalancers</a> API. To detach a load balancer from the Auto Scaling group, call the <a>DetachLoadBalancers</a> API.</p> <p>This operation is additive and does not detach existing Classic Load Balancers or target groups from the Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"AttachTrafficSources":{
"name":"AttachTrafficSources",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"AttachTrafficSourcesType"},
"output":{
"shape":"AttachTrafficSourcesResultType",
"resultWrapper":"AttachTrafficSourcesResult"
},
"errors":[
{"shape":"ResourceContentionFault"},
{"shape":"ServiceLinkedRoleFailure"}
],
"documentation":"<p> <b>Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.</b> </p> <p>Attaches one or more traffic sources to the specified Auto Scaling group.</p> <p>To describe the traffic sources for an Auto Scaling group, call the <a>DescribeTrafficSources</a> API. To detach a traffic source from the Auto Scaling group, call the <a>DetachTrafficSources</a> API.</p> <p>This operation is additive and does not detach existing traffic sources from the Auto Scaling group.</p>"
},
"BatchDeleteScheduledAction":{
"name":"BatchDeleteScheduledAction",
@ -139,7 +156,7 @@
{"shape":"ResourceContentionFault"},
{"shape":"ServiceLinkedRoleFailure"}
],
"documentation":"<p> <b>We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.</b> </p> <p>Creates an Auto Scaling group with the specified name and attributes. </p> <p>If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the <a>DescribeAccountLimits</a> API. For information about updating this limit, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html\">Amazon EC2 Auto Scaling service quotas</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>For introductory exercises for creating an Auto Scaling group, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html\">Getting started with Amazon EC2 Auto Scaling</a> and <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-register-lbs-with-asg.html\">Tutorial: Set up a scaled and load-balanced application</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html\">Auto Scaling groups</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Every Auto Scaling group has three size parameters (<code>DesiredCapacity</code>, <code>MaxSize</code>, and <code>MinSize</code>). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.</p>"
"documentation":"<p> <b>We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.</b> </p> <p>Creates an Auto Scaling group with the specified name and attributes. </p> <p>If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the <a>DescribeAccountLimits</a> API. For information about updating this limit, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html\">Quotas for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>For introductory exercises for creating an Auto Scaling group, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html\">Getting started with Amazon EC2 Auto Scaling</a> and <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-register-lbs-with-asg.html\">Tutorial: Set up a scaled and load-balanced application</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html\">Auto Scaling groups</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Every Auto Scaling group has three size properties (<code>DesiredCapacity</code>, <code>MaxSize</code>, and <code>MinSize</code>). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.</p>"
},
"CreateLaunchConfiguration":{
"name":"CreateLaunchConfiguration",
@ -153,7 +170,7 @@
{"shape":"LimitExceededFault"},
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Creates a launch configuration.</p> <p>If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the <a>DescribeAccountLimits</a> API. For information about updating this limit, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html\">Amazon EC2 Auto Scaling service quotas</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html\">Launch configurations</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Creates a launch configuration.</p> <p>If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the <a>DescribeAccountLimits</a> API. For information about updating this limit, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html\">Quotas for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html\">Launch configurations</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <note> <p>Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a launch template or a launch configuration. We strongly recommend that you do not use launch configurations. They do not provide full functionality for Amazon EC2 Auto Scaling or Amazon EC2. For information about using launch templates, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html\">Launch templates</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> </note>"
},
"CreateOrUpdateTags":{
"name":"CreateOrUpdateTags",
@ -168,7 +185,7 @@
{"shape":"ResourceContentionFault"},
{"shape":"ResourceInUseFault"}
],
"documentation":"<p>Creates or updates tags for the specified Auto Scaling group.</p> <p>When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html\">Tagging Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Creates or updates tags for the specified Auto Scaling group.</p> <p>When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html\">Tag Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"DeleteAutoScalingGroup":{
"name":"DeleteAutoScalingGroup",
@ -182,7 +199,7 @@
{"shape":"ResourceInUseFault"},
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Deletes the specified Auto Scaling group.</p> <p>If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed.</p> <p>If the group has policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action.</p> <p>To remove instances from the Auto Scaling group before deleting it, call the <a>DetachInstances</a> API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances.</p> <p>To terminate all instances before deleting the Auto Scaling group, call the <a>UpdateAutoScalingGroup</a> API and set the minimum size and desired capacity of the Auto Scaling group to zero.</p>"
"documentation":"<p>Deletes the specified Auto Scaling group.</p> <p>If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed. The force delete operation will also terminate the EC2 instances. If the group has a warm pool, the force delete option also deletes the warm pool.</p> <p>To remove instances from the Auto Scaling group before deleting it, call the <a>DetachInstances</a> API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances.</p> <p>To terminate all instances before deleting the Auto Scaling group, call the <a>UpdateAutoScalingGroup</a> API and set the minimum size and desired capacity of the Auto Scaling group to zero.</p> <p>If the group has scaling policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-process-shutdown.html\">Delete your Auto Scaling infrastructure</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"DeleteLaunchConfiguration":{
"name":"DeleteLaunchConfiguration",
@ -295,7 +312,7 @@
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Describes the current Amazon EC2 Auto Scaling resource quotas for your account.</p> <p>When you establish an Amazon Web Services account, the account has initial quotas on the maximum number of Auto Scaling groups and launch configurations that you can create in a given Region. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html\">Amazon EC2 Auto Scaling service quotas</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Describes the current Amazon EC2 Auto Scaling resource quotas for your account.</p> <p>When you establish an Amazon Web Services account, the account has initial quotas on the maximum number of Auto Scaling groups and launch configurations that you can create in a given Region. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-quotas.html\">Quotas for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"DescribeAdjustmentTypes":{
"name":"DescribeAdjustmentTypes",
@ -441,7 +458,7 @@
{"shape":"ResourceContentionFault"},
{"shape":"InvalidNextToken"}
],
"documentation":"<p>Gets information about the load balancer target groups for the specified Auto Scaling group.</p> <p>To determine the availability of registered instances, use the <code>State</code> element in the response. When you attach a target group to an Auto Scaling group, the initial <code>State</code> value is <code>Adding</code>. The state transitions to <code>Added</code> after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to <code>InService</code> after at least one Auto Scaling instance passes the health check. When the target group is in the <code>InService</code> state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the <code>InService</code> state. </p> <p>Target groups also have an <code>InService</code> state if you attach them in the <a>CreateAutoScalingGroup</a> API call. If your target group state is <code>InService</code>, but it is not working properly, check the scaling activities by calling <a>DescribeScalingActivities</a> and take any corrective actions necessary.</p> <p>For help with failed health checks, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html\">Troubleshooting Amazon EC2 Auto Scaling: Health checks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
"documentation":"<p>Gets information about the Elastic Load Balancing target groups for the specified Auto Scaling group.</p> <p>To determine the attachment status of the target group, use the <code>State</code> element in the response. When you attach a target group to an Auto Scaling group, the initial <code>State</code> value is <code>Adding</code>. The state transitions to <code>Added</code> after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to <code>InService</code> after at least one Auto Scaling instance passes the health check. When the target group is in the <code>InService</code> state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the <code>InService</code> state. </p> <p>Target groups also have an <code>InService</code> state if you attach them in the <a>CreateAutoScalingGroup</a> API call. If your target group state is <code>InService</code>, but it is not working properly, check the scaling activities by calling <a>DescribeScalingActivities</a> and take any corrective actions necessary.</p> <p>For help with failed health checks, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html\">Troubleshooting Amazon EC2 Auto Scaling: Health checks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p> <note> <p>You can use this operation to describe target groups that were attached by using <a>AttachLoadBalancerTargetGroups</a>, but not for target groups that were attached by using <a>AttachTrafficSources</a>.</p> </note>"
},
"DescribeLoadBalancers":{
"name":"DescribeLoadBalancers",
@ -458,7 +475,7 @@
{"shape":"ResourceContentionFault"},
{"shape":"InvalidNextToken"}
],
"documentation":"<p>Gets information about the load balancers for the specified Auto Scaling group.</p> <p>This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the <a>DescribeLoadBalancerTargetGroups</a> API instead.</p> <p>To determine the availability of registered instances, use the <code>State</code> element in the response. When you attach a load balancer to an Auto Scaling group, the initial <code>State</code> value is <code>Adding</code>. The state transitions to <code>Added</code> after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to <code>InService</code> after at least one Auto Scaling instance passes the health check. When the load balancer is in the <code>InService</code> state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the <code>InService</code> state. </p> <p>Load balancers also have an <code>InService</code> state if you attach them in the <a>CreateAutoScalingGroup</a> API call. If your load balancer state is <code>InService</code>, but it is not working properly, check the scaling activities by calling <a>DescribeScalingActivities</a> and take any corrective actions necessary.</p> <p>For help with failed health checks, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html\">Troubleshooting Amazon EC2 Auto Scaling: Health checks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
"documentation":"<p>Gets information about the load balancers for the specified Auto Scaling group.</p> <p>This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancer, use the <a>DescribeLoadBalancerTargetGroups</a> API instead.</p> <p>To determine the attachment status of the load balancer, use the <code>State</code> element in the response. When you attach a load balancer to an Auto Scaling group, the initial <code>State</code> value is <code>Adding</code>. The state transitions to <code>Added</code> after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to <code>InService</code> after at least one Auto Scaling instance passes the health check. When the load balancer is in the <code>InService</code> state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the <code>InService</code> state. </p> <p>Load balancers also have an <code>InService</code> state if you attach them in the <a>CreateAutoScalingGroup</a> API call. If your load balancer state is <code>InService</code>, but it is not working properly, check the scaling activities by calling <a>DescribeScalingActivities</a> and take any corrective actions necessary.</p> <p>For help with failed health checks, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html\">Troubleshooting Amazon EC2 Auto Scaling: Health checks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
},
"DescribeMetricCollectionTypes":{
"name":"DescribeMetricCollectionTypes",
@ -473,7 +490,7 @@
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.</p> <p>The <code>GroupStandbyInstances</code> metric is not returned by default. You must explicitly request this metric when calling the <a>EnableMetricsCollection</a> API.</p>"
"documentation":"<p>Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.</p>"
},
"DescribeNotificationConfigurations":{
"name":"DescribeNotificationConfigurations",
@ -574,7 +591,7 @@
{"shape":"InvalidNextToken"},
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Describes the specified tags.</p> <p>You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results.</p> <p>You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html\">Tagging Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Describes the specified tags.</p> <p>You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results.</p> <p>You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html\">Tag Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"DescribeTerminationPolicyTypes":{
"name":"DescribeTerminationPolicyTypes",
@ -589,7 +606,24 @@
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Describes the termination policies supported by Amazon EC2 Auto Scaling.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html\">Controlling which Auto Scaling instances terminate during scale in</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Describes the termination policies supported by Amazon EC2 Auto Scaling.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html\">Work with Amazon EC2 Auto Scaling termination policies</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"DescribeTrafficSources":{
"name":"DescribeTrafficSources",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DescribeTrafficSourcesRequest"},
"output":{
"shape":"DescribeTrafficSourcesResponse",
"resultWrapper":"DescribeTrafficSourcesResult"
},
"errors":[
{"shape":"ResourceContentionFault"},
{"shape":"InvalidNextToken"}
],
"documentation":"<p> <b>Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.</b> </p> <p>Gets information about the traffic sources for the specified Auto Scaling group.</p>"
},
"DescribeWarmPool":{
"name":"DescribeWarmPool",
@ -639,7 +673,7 @@
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Detaches one or more target groups from the specified Auto Scaling group.</p>"
"documentation":"<p>Detaches one or more target groups from the specified Auto Scaling group.</p> <p>When you detach a target group, it enters the <code>Removing</code> state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the target group using the <a>DescribeLoadBalancerTargetGroups</a> API call. The instances remain running.</p> <note> <p>You can use this operation to detach target groups that were attached by using <a>AttachLoadBalancerTargetGroups</a>, but not for target groups that were attached by using <a>AttachTrafficSources</a>.</p> </note>"
},
"DetachLoadBalancers":{
"name":"DetachLoadBalancers",
@ -655,7 +689,23 @@
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Detaches one or more Classic Load Balancers from the specified Auto Scaling group.</p> <p>This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the <a>DetachLoadBalancerTargetGroups</a> API instead.</p> <p>When you detach a load balancer, it enters the <code>Removing</code> state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the <a>DescribeLoadBalancers</a> API call. The instances remain running.</p>"
"documentation":"<p>Detaches one or more Classic Load Balancers from the specified Auto Scaling group.</p> <p>This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancer, use the <a>DetachLoadBalancerTargetGroups</a> API instead.</p> <p>When you detach a load balancer, it enters the <code>Removing</code> state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the <a>DescribeLoadBalancers</a> API call. The instances remain running.</p>"
},
"DetachTrafficSources":{
"name":"DetachTrafficSources",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DetachTrafficSourcesType"},
"output":{
"shape":"DetachTrafficSourcesResultType",
"resultWrapper":"DetachTrafficSourcesResult"
},
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p> <b>Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.</b> </p> <p>Detaches one or more traffic sources from the specified Auto Scaling group.</p>"
},
"DisableMetricsCollection":{
"name":"DisableMetricsCollection",
@ -667,7 +717,7 @@
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Disables group metrics for the specified Auto Scaling group.</p>"
"documentation":"<p>Disables group metrics collection for the specified Auto Scaling group.</p>"
},
"EnableMetricsCollection":{
"name":"EnableMetricsCollection",
@ -679,7 +729,7 @@
"errors":[
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Enables group metrics for the specified Auto Scaling group. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-monitoring.html\">Monitoring CloudWatch metrics for your Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Enables group metrics collection for the specified Auto Scaling group.</p> <p>You can use these metrics to track changes in an Auto Scaling group and to set alarms on threshold values. You can view group metrics using the Amazon EC2 Auto Scaling console or the CloudWatch console. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html\">Monitor CloudWatch metrics for your Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"EnterStandby":{
"name":"EnterStandby",
@ -803,7 +853,7 @@
{"shape":"LimitExceededFault"},
{"shape":"ResourceContentionFault"}
],
"documentation":"<p>Creates or updates a scheduled scaling action for an Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html\">Scheduled scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>You can view the scheduled actions for an Auto Scaling group using the <a>DescribeScheduledActions</a> API call. If you are no longer using a scheduled action, you can delete it by calling the <a>DeleteScheduledAction</a> API.</p>"
"documentation":"<p>Creates or updates a scheduled scaling action for an Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html\">Scheduled scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>You can view the scheduled actions for an Auto Scaling group using the <a>DescribeScheduledActions</a> API call. If you are no longer using a scheduled action, you can delete it by calling the <a>DeleteScheduledAction</a> API.</p> <p>If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns an error message.</p>"
},
"PutWarmPool":{
"name":"PutWarmPool",
@ -953,7 +1003,7 @@
{"shape":"ResourceContentionFault"},
{"shape":"ServiceLinkedRoleFailure"}
],
"documentation":"<p> <b>We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.</b> </p> <p>Updates the configuration for the specified Auto Scaling group.</p> <p>To update an Auto Scaling group, specify the name of the group and the parameter that you want to change. Any parameters that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns. </p> <p>If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application.</p> <p>Note the following about changing <code>DesiredCapacity</code>, <code>MaxSize</code>, or <code>MinSize</code>:</p> <ul> <li> <p>If a scale-in activity occurs as a result of a new <code>DesiredCapacity</code> value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate.</p> </li> <li> <p>If you specify a new value for <code>MinSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MinSize</code> is larger than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MinSize</code> value.</p> </li> <li> <p>If you specify a new value for <code>MaxSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MaxSize</code> is smaller than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MaxSize</code> value.</p> </li> </ul> <p>To see which parameters have been set, call the <a>DescribeAutoScalingGroups</a> API. To view the scaling policies for an Auto Scaling group, call the <a>DescribePolicies</a> API. If the group has scaling policies, you can update them by calling the <a>PutScalingPolicy</a> API.</p>"
"documentation":"<p> <b>We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.</b> </p> <p>Updates the configuration for the specified Auto Scaling group.</p> <p>To update an Auto Scaling group, specify the name of the group and the property that you want to change. Any properties that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns. </p> <p>If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application.</p> <p>Note the following about changing <code>DesiredCapacity</code>, <code>MaxSize</code>, or <code>MinSize</code>:</p> <ul> <li> <p>If a scale-in activity occurs as a result of a new <code>DesiredCapacity</code> value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate.</p> </li> <li> <p>If you specify a new value for <code>MinSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MinSize</code> is larger than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MinSize</code> value.</p> </li> <li> <p>If you specify a new value for <code>MaxSize</code> without specifying a value for <code>DesiredCapacity</code>, and the new <code>MaxSize</code> is smaller than the current size of the group, this sets the group's <code>DesiredCapacity</code> to the new <code>MaxSize</code> value.</p> </li> </ul> <p>To see which properties have been set, call the <a>DescribeAutoScalingGroups</a> API. To view the scaling policies for an Auto Scaling group, call the <a>DescribePolicies</a> API. If the group has scaling policies, you can update them by calling the <a>PutScalingPolicy</a> API.</p>"
}
},
"shapes":{
@ -1163,6 +1213,17 @@
"type":"list",
"member":{"shape":"Alarm"}
},
"AllowedInstanceType":{
"type":"string",
"max":30,
"min":1,
"pattern":"[a-zA-Z0-9\\.\\*]+"
},
"AllowedInstanceTypes":{
"type":"list",
"member":{"shape":"AllowedInstanceType"},
"max":400
},
"AlreadyExistsFault":{
"type":"structure",
"members":{
@ -1218,7 +1279,7 @@
},
"TargetGroupARNs":{
"shape":"TargetGroupARNs",
"documentation":"<p>The Amazon Resource Names (ARN) of the target groups. You can specify up to 10 target groups. To get the ARN of a target group, use the Elastic Load Balancing <a href=\"https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html\">DescribeTargetGroups</a> API operation.</p>"
"documentation":"<p>The Amazon Resource Names (ARNs) of the target groups. You can specify up to 10 target groups. To get the ARN of a target group, use the Elastic Load Balancing <a href=\"https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html\">DescribeTargetGroups</a> API operation.</p>"
}
}
},
@ -1244,6 +1305,28 @@
}
}
},
"AttachTrafficSourcesResultType":{
"type":"structure",
"members":{
}
},
"AttachTrafficSourcesType":{
"type":"structure",
"required":[
"AutoScalingGroupName",
"TrafficSources"
],
"members":{
"AutoScalingGroupName":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The name of the Auto Scaling group.</p>"
},
"TrafficSources":{
"shape":"TrafficSources",
"documentation":"<p>The unique identifiers of one or more traffic sources. You can specify up to 10 traffic sources.</p> <p>Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. Amazon EC2 Auto Scaling registers the running instances with the attached target groups. The target groups receive incoming traffic and route requests to one or more registered targets.</p>"
}
}
},
"AutoScalingGroup":{
"type":"structure",
"required":[
@ -1311,7 +1394,7 @@
},
"HealthCheckType":{
"shape":"XmlStringMaxLen32",
"documentation":"<p>The service to use for the health checks. The valid values are <code>EC2</code> and <code>ELB</code>. If you configure an Auto Scaling group to use <code>ELB</code> health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks.</p>"
"documentation":"<p>Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on.</p> <p>The valid values are <code>EC2</code> (default), <code>ELB</code>, and <code>VPC_LATTICE</code>. The <code>VPC_LATTICE</code> health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.</p>"
},
"HealthCheckGracePeriod":{
"shape":"HealthCheckGracePeriod",
@ -1388,6 +1471,10 @@
"DefaultInstanceWarmup":{
"shape":"DefaultInstanceWarmup",
"documentation":"<p>The duration of the default instance warmup, in seconds.</p>"
},
"TrafficSources":{
"shape":"TrafficSources",
"documentation":"<p>The unique identifiers of the traffic sources.</p>"
}
},
"documentation":"<p>Describes an Auto Scaling group.</p>"
@ -1404,7 +1491,7 @@
"members":{
"AutoScalingGroupNames":{
"shape":"AutoScalingGroupNames",
"documentation":"<p>The names of the Auto Scaling groups. By default, you can only specify up to 50 names. You can optionally increase this limit using the <code>MaxRecords</code> parameter.</p> <p>If you omit this parameter, all Auto Scaling groups are described.</p>"
"documentation":"<p>The names of the Auto Scaling groups. By default, you can only specify up to 50 names. You can optionally increase this limit using the <code>MaxRecords</code> property.</p> <p>If you omit this property, all Auto Scaling groups are described.</p>"
},
"NextToken":{
"shape":"XmlString",
@ -1473,7 +1560,7 @@
},
"LifecycleState":{
"shape":"XmlStringMaxLen32",
"documentation":"<p>The lifecycle state for the instance. The <code>Quarantined</code> state is not used. For information about lifecycle states, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html\">Instance lifecycle</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p> <p>Valid Values: <code>Pending</code> | <code>Pending:Wait</code> | <code>Pending:Proceed</code> | <code>Quarantined</code> | <code>InService</code> | <code>Terminating</code> | <code>Terminating:Wait</code> | <code>Terminating:Proceed</code> | <code>Terminated</code> | <code>Detaching</code> | <code>Detached</code> | <code>EnteringStandby</code> | <code>Standby</code> | <code>Warmed:Pending</code> | <code>Warmed:Pending:Wait</code> | <code>Warmed:Pending:Proceed</code> | <code>Warmed:Terminating</code> | <code>Warmed:Terminating:Wait</code> | <code>Warmed:Terminating:Proceed</code> | <code>Warmed:Terminated</code> | <code>Warmed:Stopped</code> | <code>Warmed:Running</code> </p>"
"documentation":"<p>The lifecycle state for the instance. The <code>Quarantined</code> state is not used. For information about lifecycle states, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html\">Instance lifecycle</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p> <p>Valid values: <code>Pending</code> | <code>Pending:Wait</code> | <code>Pending:Proceed</code> | <code>Quarantined</code> | <code>InService</code> | <code>Terminating</code> | <code>Terminating:Wait</code> | <code>Terminating:Proceed</code> | <code>Terminated</code> | <code>Detaching</code> | <code>Detached</code> | <code>EnteringStandby</code> | <code>Standby</code> | <code>Warmed:Pending</code> | <code>Warmed:Pending:Wait</code> | <code>Warmed:Pending:Proceed</code> | <code>Warmed:Terminating</code> | <code>Warmed:Terminating:Wait</code> | <code>Warmed:Terminating:Proceed</code> | <code>Warmed:Terminated</code> | <code>Warmed:Stopped</code> | <code>Warmed:Running</code> </p>"
},
"HealthStatus":{
"shape":"XmlStringMaxLen32",
@ -1625,19 +1712,19 @@
"members":{
"VirtualName":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The name of the virtual device (for example, <code>ephemeral0</code>).</p> <p>You can specify either <code>VirtualName</code> or <code>Ebs</code>, but not both.</p>"
"documentation":"<p>The name of the instance store volume (virtual device) to attach to an instance at launch. The name must be in the form ephemeral<i>X</i> where <i>X</i> is a number starting from zero (0), for example, <code>ephemeral0</code>.</p>"
},
"DeviceName":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The device name exposed to the EC2 instance (for example, <code>/dev/sdh</code> or <code>xvdh</code>). For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html\">Device Naming on Linux Instances</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>The device name assigned to the volume (for example, <code>/dev/sdh</code> or <code>xvdh</code>). For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html\">Device naming on Linux instances</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <note> <p>To define a block device mapping, set the device name and exactly one of the following properties: <code>Ebs</code>, <code>NoDevice</code>, or <code>VirtualName</code>.</p> </note>"
},
"Ebs":{
"shape":"Ebs",
"documentation":"<p>Parameters used to automatically set up EBS volumes when an instance is launched.</p> <p>You can specify either <code>VirtualName</code> or <code>Ebs</code>, but not both.</p>"
"documentation":"<p>Information to attach an EBS volume to an instance at launch.</p>"
},
"NoDevice":{
"shape":"NoDevice",
"documentation":"<p>Setting this value to <code>true</code> suppresses the specified device included in the block device mapping of the AMI.</p> <p>If <code>NoDevice</code> is <code>true</code> for the root device, instances might fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances.</p> <p>If you specify <code>NoDevice</code>, you cannot specify <code>Ebs</code>.</p>"
"documentation":"<p>Setting this value to <code>true</code> prevents a volume that is included in the block device mapping of the AMI from being mapped to the specified device name at launch.</p> <p>If <code>NoDevice</code> is <code>true</code> for the root device, instances might fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances.</p>"
}
},
"documentation":"<p>Describes a block device mapping.</p>"
@ -1732,7 +1819,7 @@
},
"LifecycleActionResult":{
"shape":"LifecycleActionResult",
"documentation":"<p>The action for the group to take. This parameter can be either <code>CONTINUE</code> or <code>ABANDON</code>.</p>"
"documentation":"<p>The action for the group to take. You can specify either <code>CONTINUE</code> or <code>ABANDON</code>.</p>"
},
"InstanceId":{
"shape":"XmlStringMaxLen19",
@ -1764,7 +1851,7 @@
"members":{
"AutoScalingGroupName":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The name of the Auto Scaling group. This name must be unique per Region per account.</p>"
"documentation":"<p>The name of the Auto Scaling group. This name must be unique per Region per account.</p> <p>The name can contain any ASCII character 33 to 126 including most punctuation characters, digits, and upper and lowercased letters.</p> <note> <p>You cannot use a colon (:) in the name.</p> </note>"
},
"LaunchConfigurationName":{
"shape":"XmlStringMaxLen255",
@ -1772,11 +1859,11 @@
},
"LaunchTemplate":{
"shape":"LaunchTemplateSpecification",
"documentation":"<p>Parameters used to specify the launch template and version to use to launch instances. </p> <p>Conditional: You must specify either a launch template (<code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>) or a launch configuration (<code>LaunchConfigurationName</code> or <code>InstanceId</code>).</p> <note> <p>The launch template that is specified must be configured for use with an Auto Scaling group. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html\">Creating a launch template for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> </note>"
"documentation":"<p>Information used to specify the launch template and version to use to launch instances. </p> <p>Conditional: You must specify either a launch template (<code>LaunchTemplate</code> or <code>MixedInstancesPolicy</code>) or a launch configuration (<code>LaunchConfigurationName</code> or <code>InstanceId</code>).</p> <note> <p>The launch template that is specified must be configured for use with an Auto Scaling group. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html\">Creating a launch template for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> </note>"
},
"MixedInstancesPolicy":{
"shape":"MixedInstancesPolicy",
"documentation":"<p>An embedded object that specifies a mixed instances policy.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html\">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>The mixed instances policy. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html\">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"InstanceId":{
"shape":"XmlStringMaxLen19",
@ -1800,35 +1887,35 @@
},
"AvailabilityZones":{
"shape":"AvailabilityZones",
"documentation":"<p>A list of Availability Zones where instances in the Auto Scaling group can be created. This parameter is optional if you specify one or more subnets for <code>VPCZoneIdentifier</code>.</p> <p>Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into EC2-Classic.</p>"
"documentation":"<p>A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the <code>VPCZoneIdentifier</code> property, or for attaching a network interface when an existing network interface ID is specified in a launch template.</p>"
},
"LoadBalancerNames":{
"shape":"LoadBalancerNames",
"documentation":"<p>A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the <code>TargetGroupARNs</code> property instead.</p>"
"documentation":"<p>A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancer, specify the <code>TargetGroupARNs</code> property instead.</p>"
},
"TargetGroupARNs":{
"shape":"TargetGroupARNs",
"documentation":"<p>The Amazon Resource Names (ARN) of the target groups to associate with the Auto Scaling group. Instances are registered as targets in a target group, and traffic is routed to the target group. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Elastic Load Balancing and Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html\">Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"HealthCheckType":{
"shape":"XmlStringMaxLen32",
"documentation":"<p>The service to use for the health checks. The valid values are <code>EC2</code> (default) and <code>ELB</code>. If you configure an Auto Scaling group to use load balancer (ELB) health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html\">Health checks for Auto Scaling instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html\">Health checks for Auto Scaling instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>The valid values are <code>EC2</code> (default), <code>ELB</code>, and <code>VPC_LATTICE</code>. The <code>VPC_LATTICE</code> health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.</p>"
},
"HealthCheckGracePeriod":{
"shape":"HealthCheckGracePeriod",
"documentation":"<p> <i/> </p> <p>The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed Elastic Load Balancing or custom health check. This is useful if your instances do not immediately pass these health checks after they enter the <code>InService</code> state. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period\">Health check grace period</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Default: <code>0</code> seconds</p>"
"documentation":"<p>The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the <code>InService</code> state. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/health-check-grace-period.html\">Set the health check grace period for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Default: <code>0</code> seconds</p>"
},
"PlacementGroup":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The name of an existing placement group into which to launch your instances. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html\">Placement groups</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <note> <p>A <i>cluster</i> placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group. </p> </note>"
"documentation":"<p>The name of the placement group into which to launch your instances. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html\">Placement groups</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <note> <p>A <i>cluster</i> placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group. </p> </note>"
},
"VPCZoneIdentifier":{
"shape":"XmlStringMaxLen2047",
"documentation":"<p>A comma-separated list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify for this parameter must reside in those Availability Zones.</p> <p>Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into a VPC.</p>"
"documentation":"<p>A comma-separated list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify must reside in those Availability Zones.</p>"
},
"TerminationPolicies":{
"shape":"TerminationPolicies",
"documentation":"<p>A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html\">Controlling which Auto Scaling instances terminate during scale in</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html\">Work with Amazon EC2 Auto Scaling termination policies</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Valid values: <code>Default</code> | <code>AllocationStrategy</code> | <code>ClosestToNextInstanceHour</code> | <code>NewestInstance</code> | <code>OldestInstance</code> | <code>OldestLaunchConfiguration</code> | <code>OldestLaunchTemplate</code> | <code>arn:aws:lambda:region:account-id:function:my-function:my-alias</code> </p>"
},
"NewInstancesProtectedFromScaleIn":{
"shape":"InstanceProtected",
@ -1836,19 +1923,19 @@
},
"CapacityRebalance":{
"shape":"CapacityRebalanceEnabled",
"documentation":"<p>Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html\">Amazon EC2 Auto Scaling Capacity Rebalancing</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html\">Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions</a> in the in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"LifecycleHookSpecificationList":{
"shape":"LifecycleHookSpecifications",
"documentation":"<p>One or more lifecycle hooks for the group, which specify actions to perform when Amazon EC2 Auto Scaling launches or terminates instances.</p>"
"documentation":"<p>One or more lifecycle hooks to add to the Auto Scaling group before instances are launched.</p>"
},
"Tags":{
"shape":"Tags",
"documentation":"<p>One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html\">Tagging Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html\">Tag Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"ServiceLinkedRoleARN":{
"shape":"ResourceName",
"documentation":"<p>The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named <code>AWSServiceRoleForAutoScaling</code>, which it creates if it does not exist. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html\">Service-linked roles</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named <code>AWSServiceRoleForAutoScaling</code>, which it creates if it does not exist. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html\">Service-linked roles</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"MaxInstanceLifetime":{
"shape":"MaxInstanceLifetime",
@ -1865,6 +1952,10 @@
"DefaultInstanceWarmup":{
"shape":"DefaultInstanceWarmup",
"documentation":"<p>The amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the <code>InService</code> state. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html\">Set the default instance warmup for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <important> <p>To manage your warm-up settings at the group level, we recommend that you set the default instance warmup, <i>even if its value is set to 0 seconds</i>. This also optimizes the performance of scaling policies that scale continuously, such as target tracking and step scaling policies. </p> <p>If you need to remove a value that you previously set, include the property but specify <code>-1</code> for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a minimum value of <code>0</code>.</p> </important> <p>Default: None </p>"
},
"TrafficSources":{
"shape":"TrafficSources",
"documentation":"<p> <b>Reserved for use with Amazon VPC Lattice, which is in preview release and is subject to change. Do not use this parameter for production workloads. It is also subject to change.</b> </p> <p>The unique identifiers of one or more traffic sources.</p> <p>Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. Amazon EC2 Auto Scaling registers the running instances with the attached target groups. The target groups receive incoming traffic and route requests to one or more registered targets.</p>"
}
}
},
@ -1878,23 +1969,23 @@
},
"ImageId":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The ID of the Amazon Machine Image (AMI) that was assigned during registration. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html\">Finding an AMI</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>If you do not specify <code>InstanceId</code>, you must specify <code>ImageId</code>.</p>"
"documentation":"<p>The ID of the Amazon Machine Image (AMI) that was assigned during registration. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html\">Finding a Linux AMI</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>If you specify <code>InstanceId</code>, an <code>ImageId</code> is not required.</p>"
},
"KeyName":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The name of the key pair. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\">Amazon EC2 Key Pairs</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>The name of the key pair. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\">Amazon EC2 key pairs and Linux instances</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
},
"SecurityGroups":{
"shape":"SecurityGroups",
"documentation":"<p>A list that contains the security groups to assign to the instances in the Auto Scaling group.</p> <p>[EC2-VPC] Specify the security group IDs. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html\">Security Groups for Your VPC</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p> <p>[EC2-Classic] Specify either the security group names or the security group IDs. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html\">Amazon EC2 Security Groups</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>A list that contains the security group IDs to assign to the instances in the Auto Scaling group. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html\">Control traffic to resources using security groups</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
},
"ClassicLinkVPCId":{
"shape":"XmlStringMaxLen255",
"documentation":"<p> <i>EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.</i> </p> <p>The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html\">ClassicLink</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>Available for backward compatibility.</p>"
},
"ClassicLinkVPCSecurityGroups":{
"shape":"ClassicLinkVPCSecurityGroups",
"documentation":"<p> <i>EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.</i> </p> <p>The IDs of one or more security groups for the specified ClassicLink-enabled VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html\">ClassicLink</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>If you specify the <code>ClassicLinkVPCId</code> parameter, you must specify this parameter.</p>"
"documentation":"<p>Available for backward compatibility.</p>"
},
"UserData":{
"shape":"XmlStringUserData",
@ -1902,23 +1993,23 @@
},
"InstanceId":{
"shape":"XmlStringMaxLen19",
"documentation":"<p>The ID of the instance to use to create the launch configuration. The new launch configuration derives attributes from the instance, except for the block device mapping.</p> <p>To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-lc-with-instanceID.html\">Creating a launch configuration using an EC2 instance</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>If you do not specify <code>InstanceId</code>, you must specify both <code>ImageId</code> and <code>InstanceType</code>.</p>"
"documentation":"<p>The ID of the instance to use to create the launch configuration. The new launch configuration derives attributes from the instance, except for the block device mapping.</p> <p>To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-lc-with-instanceID.html\">Creating a launch configuration using an EC2 instance</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"InstanceType":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>Specifies the instance type of the EC2 instance.</p> <p>For information about available instance types, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes\">Available Instance Types</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>If you do not specify <code>InstanceId</code>, you must specify <code>InstanceType</code>.</p>"
"documentation":"<p>Specifies the instance type of the EC2 instance. For information about available instance types, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes\">Available instance types</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>If you specify <code>InstanceId</code>, an <code>InstanceType</code> is not required.</p>"
},
"KernelId":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The ID of the kernel associated with the AMI.</p>"
"documentation":"<p>The ID of the kernel associated with the AMI.</p> <note> <p>We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html\">User provided kernels</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> </note>"
},
"RamdiskId":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The ID of the RAM disk to select.</p>"
"documentation":"<p>The ID of the RAM disk to select.</p> <note> <p>We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedKernels.html\">User provided kernels</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> </note>"
},
"BlockDeviceMappings":{
"shape":"BlockDeviceMappings",
"documentation":"<p>A block device mapping, which specifies the block devices for the instance. You can specify virtual devices and EBS volumes. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html\">Block Device Mapping</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>The block device mapping entries that define the block devices to attach to the instances at launch. By default, the block devices specified in the block device mapping for the AMI are used. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html\">Block device mappings</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
},
"InstanceMonitoring":{
"shape":"InstanceMonitoring",
@ -1926,11 +2017,11 @@
},
"SpotPrice":{
"shape":"SpotPrice",
"documentation":"<p>The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html\">Requesting Spot Instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <note> <p>When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price.</p> </note>"
"documentation":"<p>The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-template-spot-instances.html\">Request Spot Instances for fault-tolerant and flexible applications</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Valid Range: Minimum value of 0.001</p> <note> <p>When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price.</p> </note>"
},
"IamInstanceProfile":{
"shape":"XmlStringMaxLen1600",
"documentation":"<p>The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html\">IAM role for applications that run on Amazon EC2 instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html\">IAM role for applications that run on Amazon EC2 instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"EbsOptimized":{
"shape":"EbsOptimized",
@ -1938,11 +2029,11 @@
},
"AssociatePublicIpAddress":{
"shape":"AssociatePublicIpAddress",
"documentation":"<p>For Auto Scaling groups that are running in a virtual private cloud (VPC), specifies whether to assign a public IP address to the group's instances. If you specify <code>true</code>, each instance in the Auto Scaling group receives a unique public IP address. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html\">Launching Auto Scaling instances in a VPC</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>If you specify this parameter, you must specify at least one subnet for <code>VPCZoneIdentifier</code> when you create your group.</p> <note> <p>If the instance is launched into a default subnet, the default is to assign a public IP address, unless you disabled the option to assign a public IP address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IP address, unless you enabled the option to assign a public IP address on the subnet.</p> </note>"
"documentation":"<p>Specifies whether to assign a public IPv4 address to the group's instances. If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet.</p> <p>If you specify <code>true</code>, each instance in the Auto Scaling group receives a unique public IPv4 address. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html\">Launching Auto Scaling instances in a VPC</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>If you specify this property, you must specify at least one subnet for <code>VPCZoneIdentifier</code> when you create your group.</p>"
},
"PlacementTenancy":{
"shape":"XmlStringMaxLen64",
"documentation":"<p>The tenancy of the instance. An instance with <code>dedicated</code> tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC.</p> <p>To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to <code>default</code>), you must set the value of this parameter to <code>dedicated</code>.</p> <p>If you specify <code>PlacementTenancy</code>, you must specify at least one subnet for <code>VPCZoneIdentifier</code> when you create your group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html\">Configuring instance tenancy with Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Valid Values: <code>default</code> | <code>dedicated</code> </p>"
"documentation":"<p>The tenancy of the instance, either <code>default</code> or <code>dedicated</code>. An instance with <code>dedicated</code> tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to <code>default</code>), you must set the value of this property to <code>dedicated</code>. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html\">Configuring instance tenancy with Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>If you specify <code>PlacementTenancy</code>, you must specify at least one subnet for <code>VPCZoneIdentifier</code> when you create your group.</p> <p>Valid values: <code>default</code> | <code>dedicated</code> </p>"
},
"MetadataOptions":{
"shape":"InstanceMetadataOptions",
@ -1962,11 +2053,6 @@
},
"CustomizedMetricSpecification":{
"type":"structure",
"required":[
"MetricName",
"Namespace",
"Statistic"
],
"members":{
"MetricName":{
"shape":"MetricName",
@ -1987,9 +2073,13 @@
"Unit":{
"shape":"MetricUnit",
"documentation":"<p>The unit of the metric. For a complete list of the units that CloudWatch supports, see the <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html\">MetricDatum</a> data type in the <i>Amazon CloudWatch API Reference</i>.</p>"
},
"Metrics":{
"shape":"TargetTrackingMetricDataQueries",
"documentation":"<p>The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions.</p>"
}
},
"documentation":"<p>Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Amazon EC2 Auto Scaling.</p> <p>To create your customized metric specification:</p> <ul> <li> <p>Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html\">Publish custom metrics</a> in the <i>Amazon CloudWatch User Guide</i>.</p> </li> <li> <p>Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases.</p> </li> </ul> <p>For more information about the CloudWatch terminology below, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html\">Amazon CloudWatch concepts</a>.</p> <note> <p>Each individual service provides information about the metrics, namespace, and dimensions they use. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html\">Amazon Web Services services that publish CloudWatch metrics</a> in the <i>Amazon CloudWatch User Guide</i>.</p> </note>"
"documentation":"<p>Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Amazon EC2 Auto Scaling.</p> <p>To create your customized metric specification:</p> <ul> <li> <p>Add values for each required property from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html\">Publish custom metrics</a> in the <i>Amazon CloudWatch User Guide</i>.</p> </li> <li> <p>Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases.</p> </li> </ul> <p>For more information about the CloudWatch terminology below, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html\">Amazon CloudWatch concepts</a>.</p> <note> <p>Each individual service provides information about the metrics, namespace, and dimensions they use. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html\">Amazon Web Services services that publish CloudWatch metrics</a> in the <i>Amazon CloudWatch User Guide</i>.</p> </note>"
},
"DefaultInstanceWarmup":{"type":"integer"},
"DeleteAutoScalingGroupType":{
@ -2002,7 +2092,7 @@
},
"ForceDelete":{
"shape":"ForceDelete",
"documentation":"<p>Specifies that the group is to be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This parameter also deletes any outstanding lifecycle actions associated with the group.</p>"
"documentation":"<p>Specifies that the group is to be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This action also deletes any outstanding lifecycle actions associated with the group.</p>"
}
}
},
@ -2140,7 +2230,7 @@
"members":{
"InstanceIds":{
"shape":"InstanceIds",
"documentation":"<p>The IDs of the instances. If you omit this parameter, all Auto Scaling instances are described. If you specify an ID that does not exist, it is ignored with no error.</p> <p>Array Members: Maximum number of 50 items.</p>"
"documentation":"<p>The IDs of the instances. If you omit this property, all Auto Scaling instances are described. If you specify an ID that does not exist, it is ignored with no error.</p> <p>Array Members: Maximum number of 50 items.</p>"
},
"MaxRecords":{
"shape":"MaxRecords",
@ -2166,7 +2256,7 @@
"members":{
"InstanceRefreshes":{
"shape":"InstanceRefreshes",
"documentation":"<p>The instance refreshes for the specified group.</p>"
"documentation":"<p>The instance refreshes for the specified group, sorted by creation timestamp in descending order.</p>"
},
"NextToken":{
"shape":"XmlString",
@ -2224,7 +2314,7 @@
},
"LifecycleHookNames":{
"shape":"LifecycleHookNames",
"documentation":"<p>The names of one or more lifecycle hooks. If you omit this parameter, all lifecycle hooks are described.</p>"
"documentation":"<p>The names of one or more lifecycle hooks. If you omit this property, all lifecycle hooks are described.</p>"
}
}
},
@ -2295,7 +2385,7 @@
"members":{
"Metrics":{
"shape":"MetricCollectionTypes",
"documentation":"<p>One or more metrics.</p>"
"documentation":"<p>The metrics.</p>"
},
"Granularities":{
"shape":"MetricGranularityTypes",
@ -2343,7 +2433,7 @@
},
"PolicyNames":{
"shape":"PolicyNames",
"documentation":"<p>The names of one or more policies. If you omit this parameter, all policies are described. If a group name is provided, the results are limited to that group. If you specify an unknown policy name, it is ignored with no error.</p> <p>Array Members: Maximum number of 50 items.</p>"
"documentation":"<p>The names of one or more policies. If you omit this property, all policies are described. If a group name is provided, the results are limited to that group. If you specify an unknown policy name, it is ignored with no error.</p> <p>Array Members: Maximum number of 50 items.</p>"
},
"PolicyTypes":{
"shape":"PolicyTypes",
@ -2364,7 +2454,7 @@
"members":{
"ActivityIds":{
"shape":"ActivityIds",
"documentation":"<p>The activity IDs of the desired scaling activities. If you omit this parameter, all activities for the past six weeks are described. If unknown activities are requested, they are ignored with no error. If you specify an Auto Scaling group, the results are limited to that group.</p> <p>Array Members: Maximum number of 50 IDs.</p>"
"documentation":"<p>The activity IDs of the desired scaling activities. If you omit this property, all activities for the past six weeks are described. If unknown activities are requested, they are ignored with no error. If you specify an Auto Scaling group, the results are limited to that group.</p> <p>Array Members: Maximum number of 50 IDs.</p>"
},
"AutoScalingGroupName":{
"shape":"XmlStringMaxLen255",
@ -2393,15 +2483,15 @@
},
"ScheduledActionNames":{
"shape":"ScheduledActionNames",
"documentation":"<p>The names of one or more scheduled actions. If you omit this parameter, all scheduled actions are described. If you specify an unknown scheduled action, it is ignored with no error.</p> <p>Array Members: Maximum number of 50 actions.</p>"
"documentation":"<p>The names of one or more scheduled actions. If you omit this property, all scheduled actions are described. If you specify an unknown scheduled action, it is ignored with no error.</p> <p>Array Members: Maximum number of 50 actions.</p>"
},
"StartTime":{
"shape":"TimestampType",
"documentation":"<p>The earliest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.</p>"
"documentation":"<p>The earliest scheduled start time to return. If scheduled action names are provided, this property is ignored.</p>"
},
"EndTime":{
"shape":"TimestampType",
"documentation":"<p>The latest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.</p>"
"documentation":"<p>The latest scheduled start time to return. If scheduled action names are provided, this property is ignored.</p>"
},
"NextToken":{
"shape":"XmlString",
@ -2439,6 +2529,44 @@
}
}
},
"DescribeTrafficSourcesRequest":{
"type":"structure",
"required":[
"AutoScalingGroupName",
"TrafficSourceType"
],
"members":{
"AutoScalingGroupName":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The name of the Auto Scaling group.</p>"
},
"TrafficSourceType":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The type of traffic source you are describing. Currently, the only valid value is <code>vpc-lattice</code>.</p>"
},
"NextToken":{
"shape":"XmlString",
"documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
},
"MaxRecords":{
"shape":"MaxRecords",
"documentation":"<p>The maximum number of items to return with this call. The maximum value is <code>50</code>.</p>"
}
}
},
"DescribeTrafficSourcesResponse":{
"type":"structure",
"members":{
"TrafficSources":{
"shape":"TrafficSourceStates",
"documentation":"<p>Information about the traffic sources.</p>"
},
"NextToken":{
"shape":"XmlString",
"documentation":"<p>This string indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.</p>"
}
}
},
"DescribeWarmPoolAnswer":{
"type":"structure",
"members":{
@ -2452,7 +2580,7 @@
},
"NextToken":{
"shape":"XmlString",
"documentation":"<p>The token for the next set of items to return. (You received this token from a previous call.)</p>"
"documentation":"<p>This string indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the <code>NextToken</code> value when requesting the next set of items. This value is null when there are no more items to return.</p>"
}
}
},
@ -2556,6 +2684,28 @@
}
}
},
"DetachTrafficSourcesResultType":{
"type":"structure",
"members":{
}
},
"DetachTrafficSourcesType":{
"type":"structure",
"required":[
"AutoScalingGroupName",
"TrafficSources"
],
"members":{
"AutoScalingGroupName":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The name of the Auto Scaling group.</p>"
},
"TrafficSources":{
"shape":"TrafficSources",
"documentation":"<p>The unique identifiers of one or more traffic sources you are detaching. You can specify up to 10 traffic sources.</p> <p>Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. When you detach a target group, it enters the <code>Removing</code> state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the target group using the <a>DescribeTrafficSources</a> API call. The instances continue to run.</p>"
}
}
},
"DisableMetricsCollectionQuery":{
"type":"structure",
"required":["AutoScalingGroupName"],
@ -2566,7 +2716,7 @@
},
"Metrics":{
"shape":"Metrics",
"documentation":"<p>Specifies one or more of the following metrics:</p> <ul> <li> <p> <code>GroupMinSize</code> </p> </li> <li> <p> <code>GroupMaxSize</code> </p> </li> <li> <p> <code>GroupDesiredCapacity</code> </p> </li> <li> <p> <code>GroupInServiceInstances</code> </p> </li> <li> <p> <code>GroupPendingInstances</code> </p> </li> <li> <p> <code>GroupStandbyInstances</code> </p> </li> <li> <p> <code>GroupTerminatingInstances</code> </p> </li> <li> <p> <code>GroupTotalInstances</code> </p> </li> <li> <p> <code>GroupInServiceCapacity</code> </p> </li> <li> <p> <code>GroupPendingCapacity</code> </p> </li> <li> <p> <code>GroupStandbyCapacity</code> </p> </li> <li> <p> <code>GroupTerminatingCapacity</code> </p> </li> <li> <p> <code>GroupTotalCapacity</code> </p> </li> <li> <p> <code>WarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>WarmPoolWarmedCapacity</code> </p> </li> <li> <p> <code>WarmPoolPendingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTerminatingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTotalCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolTotalCapacity</code> </p> </li> </ul> <p>If you omit this parameter, all metrics are disabled. </p>"
"documentation":"<p>Identifies the metrics to disable.</p> <p>You can specify one or more of the following metrics:</p> <ul> <li> <p> <code>GroupMinSize</code> </p> </li> <li> <p> <code>GroupMaxSize</code> </p> </li> <li> <p> <code>GroupDesiredCapacity</code> </p> </li> <li> <p> <code>GroupInServiceInstances</code> </p> </li> <li> <p> <code>GroupPendingInstances</code> </p> </li> <li> <p> <code>GroupStandbyInstances</code> </p> </li> <li> <p> <code>GroupTerminatingInstances</code> </p> </li> <li> <p> <code>GroupTotalInstances</code> </p> </li> <li> <p> <code>GroupInServiceCapacity</code> </p> </li> <li> <p> <code>GroupPendingCapacity</code> </p> </li> <li> <p> <code>GroupStandbyCapacity</code> </p> </li> <li> <p> <code>GroupTerminatingCapacity</code> </p> </li> <li> <p> <code>GroupTotalCapacity</code> </p> </li> <li> <p> <code>WarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>WarmPoolWarmedCapacity</code> </p> </li> <li> <p> <code>WarmPoolPendingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTerminatingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTotalCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolTotalCapacity</code> </p> </li> </ul> <p>If you omit this property, all metrics are disabled.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics\">Auto Scaling group metrics</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
}
}
},
@ -2584,7 +2734,7 @@
},
"VolumeType":{
"shape":"BlockDeviceEbsVolumeType",
"documentation":"<p>The volume type. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html\">Amazon EBS volume types</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>Valid Values: <code>standard</code> | <code>io1</code> | <code>gp2</code> | <code>st1</code> | <code>sc1</code> | <code>gp3</code> </p>"
"documentation":"<p>The volume type. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html\">Amazon EBS volume types</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>Valid values: <code>standard</code> | <code>io1</code> | <code>gp2</code> | <code>st1</code> | <code>sc1</code> | <code>gp3</code> </p>"
},
"DeleteOnTermination":{
"shape":"BlockDeviceEbsDeleteOnTermination",
@ -2596,7 +2746,7 @@
},
"Encrypted":{
"shape":"BlockDeviceEbsEncrypted",
"documentation":"<p>Specifies whether the volume should be encrypted. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances\">Supported instance types</a>. If your AMI uses encrypted volumes, you can also only launch it on supported instance types.</p> <note> <p>If you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot. Also, you cannot specify a KMS key ID when using a launch configuration.</p> <p>If you enable encryption by default, the EBS volumes that you create are always encrypted, either using the Amazon Web Services managed KMS key or a customer-managed KMS key, regardless of whether the snapshot was encrypted. </p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-data-protection.html#encryption\">Using Amazon Web Services KMS keys to encrypt Amazon EBS volumes</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> </note>"
"documentation":"<p>Specifies whether the volume should be encrypted. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances\">Supported instance types</a>. If your AMI uses encrypted volumes, you can also only launch it on supported instance types.</p> <note> <p>If you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot. Also, you cannot specify a KMS key ID when using a launch configuration.</p> <p>If you enable encryption by default, the EBS volumes that you create are always encrypted, either using the Amazon Web Services managed KMS key or a customer-managed KMS key, regardless of whether the snapshot was encrypted. </p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-data-protection.html#encryption\">Use Amazon Web Services KMS keys to encrypt Amazon EBS volumes</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> </note>"
},
"Throughput":{
"shape":"BlockDeviceEbsThroughput",
@ -2619,11 +2769,11 @@
},
"Metrics":{
"shape":"Metrics",
"documentation":"<p>Specifies which group-level metrics to start collecting. You can specify one or more of the following metrics:</p> <ul> <li> <p> <code>GroupMinSize</code> </p> </li> <li> <p> <code>GroupMaxSize</code> </p> </li> <li> <p> <code>GroupDesiredCapacity</code> </p> </li> <li> <p> <code>GroupInServiceInstances</code> </p> </li> <li> <p> <code>GroupPendingInstances</code> </p> </li> <li> <p> <code>GroupStandbyInstances</code> </p> </li> <li> <p> <code>GroupTerminatingInstances</code> </p> </li> <li> <p> <code>GroupTotalInstances</code> </p> </li> </ul> <p>The instance weighting feature supports the following additional metrics: </p> <ul> <li> <p> <code>GroupInServiceCapacity</code> </p> </li> <li> <p> <code>GroupPendingCapacity</code> </p> </li> <li> <p> <code>GroupStandbyCapacity</code> </p> </li> <li> <p> <code>GroupTerminatingCapacity</code> </p> </li> <li> <p> <code>GroupTotalCapacity</code> </p> </li> </ul> <p>The warm pools feature supports the following additional metrics: </p> <ul> <li> <p> <code>WarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>WarmPoolWarmedCapacity</code> </p> </li> <li> <p> <code>WarmPoolPendingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTerminatingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTotalCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolTotalCapacity</code> </p> </li> </ul> <p>If you omit this parameter, all metrics are enabled. </p>"
"documentation":"<p>Identifies the metrics to enable.</p> <p>You can specify one or more of the following metrics:</p> <ul> <li> <p> <code>GroupMinSize</code> </p> </li> <li> <p> <code>GroupMaxSize</code> </p> </li> <li> <p> <code>GroupDesiredCapacity</code> </p> </li> <li> <p> <code>GroupInServiceInstances</code> </p> </li> <li> <p> <code>GroupPendingInstances</code> </p> </li> <li> <p> <code>GroupStandbyInstances</code> </p> </li> <li> <p> <code>GroupTerminatingInstances</code> </p> </li> <li> <p> <code>GroupTotalInstances</code> </p> </li> <li> <p> <code>GroupInServiceCapacity</code> </p> </li> <li> <p> <code>GroupPendingCapacity</code> </p> </li> <li> <p> <code>GroupStandbyCapacity</code> </p> </li> <li> <p> <code>GroupTerminatingCapacity</code> </p> </li> <li> <p> <code>GroupTotalCapacity</code> </p> </li> <li> <p> <code>WarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>WarmPoolWarmedCapacity</code> </p> </li> <li> <p> <code>WarmPoolPendingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTerminatingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTotalCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolTotalCapacity</code> </p> </li> </ul> <p>If you specify <code>Granularity</code> and don't specify any metrics, all metrics are enabled.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics\">Auto Scaling group metrics</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"Granularity":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The granularity to associate with the metrics to collect. The only valid value is <code>1Minute</code>.</p>"
"documentation":"<p>The frequency at which Amazon EC2 Auto Scaling sends aggregated data to CloudWatch. The only valid value is <code>1Minute</code>.</p>"
}
}
},
@ -2632,14 +2782,14 @@
"members":{
"Metric":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>One of the following metrics:</p> <ul> <li> <p> <code>GroupMinSize</code> </p> </li> <li> <p> <code>GroupMaxSize</code> </p> </li> <li> <p> <code>GroupDesiredCapacity</code> </p> </li> <li> <p> <code>GroupInServiceInstances</code> </p> </li> <li> <p> <code>GroupPendingInstances</code> </p> </li> <li> <p> <code>GroupStandbyInstances</code> </p> </li> <li> <p> <code>GroupTerminatingInstances</code> </p> </li> <li> <p> <code>GroupTotalInstances</code> </p> </li> <li> <p> <code>GroupInServiceCapacity</code> </p> </li> <li> <p> <code>GroupPendingCapacity</code> </p> </li> <li> <p> <code>GroupStandbyCapacity</code> </p> </li> <li> <p> <code>GroupTerminatingCapacity</code> </p> </li> <li> <p> <code>GroupTotalCapacity</code> </p> </li> <li> <p> <code>WarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>WarmPoolWarmedCapacity</code> </p> </li> <li> <p> <code>WarmPoolPendingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTerminatingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTotalCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolTotalCapacity</code> </p> </li> </ul>"
"documentation":"<p>One of the following metrics:</p> <ul> <li> <p> <code>GroupMinSize</code> </p> </li> <li> <p> <code>GroupMaxSize</code> </p> </li> <li> <p> <code>GroupDesiredCapacity</code> </p> </li> <li> <p> <code>GroupInServiceInstances</code> </p> </li> <li> <p> <code>GroupPendingInstances</code> </p> </li> <li> <p> <code>GroupStandbyInstances</code> </p> </li> <li> <p> <code>GroupTerminatingInstances</code> </p> </li> <li> <p> <code>GroupTotalInstances</code> </p> </li> <li> <p> <code>GroupInServiceCapacity</code> </p> </li> <li> <p> <code>GroupPendingCapacity</code> </p> </li> <li> <p> <code>GroupStandbyCapacity</code> </p> </li> <li> <p> <code>GroupTerminatingCapacity</code> </p> </li> <li> <p> <code>GroupTotalCapacity</code> </p> </li> <li> <p> <code>WarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>WarmPoolWarmedCapacity</code> </p> </li> <li> <p> <code>WarmPoolPendingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTerminatingCapacity</code> </p> </li> <li> <p> <code>WarmPoolTotalCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolDesiredCapacity</code> </p> </li> <li> <p> <code>GroupAndWarmPoolTotalCapacity</code> </p> </li> </ul> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-cloudwatch-monitoring.html#as-group-metrics\">Auto Scaling group metrics</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"Granularity":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The granularity of the metric. The only valid value is <code>1Minute</code>.</p>"
}
},
"documentation":"<p>Describes an enabled metric.</p>"
"documentation":"<p>Describes an enabled Auto Scaling group metric.</p>"
},
"EnabledMetrics":{
"type":"list",
@ -2771,7 +2921,7 @@
"documentation":"<p>One or more filter values. Filter values are case-sensitive. </p> <p>If you specify multiple values for a filter, the values are automatically logically joined with an <code>OR</code>, and the request returns all results that match any of the specified values. For example, specify \"tag:environment\" for the filter name and \"production,development\" for the filter values to find Auto Scaling groups with the tag \"environment=production\" or \"environment=development\".</p>"
}
},
"documentation":"<p>Describes a filter that is used to return a more specific list of results from a describe operation.</p> <p>If you specify multiple filters, the filters are automatically logically joined with an <code>AND</code>, and the request returns only the results that match all of the specified filters. </p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html\">Tagging Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Describes a filter that is used to return a more specific list of results from a describe operation.</p> <p>If you specify multiple filters, the filters are automatically logically joined with an <code>AND</code>, and the request returns only the results that match all of the specified filters. </p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html\">Tag Auto Scaling groups and instances</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"Filters":{
"type":"list",
@ -3086,11 +3236,11 @@
},
"MemoryGiBPerVCpu":{
"shape":"MemoryGiBPerVCpuRequest",
"documentation":"<p>The minimum and maximum amount of memory per vCPU for an instance type, in GiB.</p> <p>Default: No minimum or maximum</p>"
"documentation":"<p>The minimum and maximum amount of memory per vCPU for an instance type, in GiB.</p> <p>Default: No minimum or maximum limits</p>"
},
"ExcludedInstanceTypes":{
"shape":"ExcludedInstanceTypes",
"documentation":"<p>Lists which instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (<code>*</code>). The following are examples: <code>c5*</code>, <code>m5a.*</code>, <code>r*</code>, <code>*3*</code>. </p> <p>For example, if you specify <code>c5*</code>, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify <code>m5a.*</code>, you are excluding all the M5a instance types, but not the M5n instance types.</p> <p>Default: No excluded instance types</p>"
"documentation":"<p>The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (<code>*</code>), to exclude an instance family, type, size, or generation. The following are examples: <code>m5.8xlarge</code>, <code>c5*.*</code>, <code>m5a.*</code>, <code>r*</code>, <code>*3*</code>. </p> <p>For example, if you specify <code>c5*</code>, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify <code>m5a.*</code>, Amazon EC2 Auto Scaling will exclude all the M5a instance types, but not the M5n instance types.</p> <note> <p>If you specify <code>ExcludedInstanceTypes</code>, you can't specify <code>AllowedInstanceTypes</code>.</p> </note> <p>Default: No excluded instance types</p>"
},
"InstanceGenerations":{
"shape":"InstanceGenerations",
@ -3098,11 +3248,11 @@
},
"SpotMaxPricePercentageOverLowestPrice":{
"shape":"NullablePositiveInteger",
"documentation":"<p>The price protection threshold for Spot Instances. This is the maximum youll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as <code>999999</code>. </p> <p>If you set <code>DesiredCapacityType</code> to <code>vcpu</code> or <code>memory-mib</code>, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. </p> <p>Default: <code>100</code> </p>"
"documentation":"<p>The price protection threshold for Spot Instances. This is the maximum youll pay for a Spot Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as <code>999999</code>. </p> <p>If you set <code>DesiredCapacityType</code> to <code>vcpu</code> or <code>memory-mib</code>, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. </p> <p>Default: <code>100</code> </p>"
},
"OnDemandMaxPricePercentageOverLowestPrice":{
"shape":"NullablePositiveInteger",
"documentation":"<p>The price protection threshold for On-Demand Instances. This is the maximum youll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as <code>999999</code>. </p> <p>If you set <code>DesiredCapacityType</code> to <code>vcpu</code> or <code>memory-mib</code>, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. </p> <p>Default: <code>20</code> </p>"
"documentation":"<p>The price protection threshold for On-Demand Instances. This is the maximum youll pay for an On-Demand Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as <code>999999</code>. </p> <p>If you set <code>DesiredCapacityType</code> to <code>vcpu</code> or <code>memory-mib</code>, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price. </p> <p>Default: <code>20</code> </p>"
},
"BareMetal":{
"shape":"BareMetal",
@ -3118,7 +3268,7 @@
},
"NetworkInterfaceCount":{
"shape":"NetworkInterfaceCountRequest",
"documentation":"<p>The minimum and maximum number of network interfaces for an instance type.</p> <p>Default: No minimum or maximum</p>"
"documentation":"<p>The minimum and maximum number of network interfaces for an instance type.</p> <p>Default: No minimum or maximum limits</p>"
},
"LocalStorage":{
"shape":"LocalStorage",
@ -3126,15 +3276,15 @@
},
"LocalStorageTypes":{
"shape":"LocalStorageTypes",
"documentation":"<p>Indicates the type of local storage that is required.</p> <ul> <li> <p>For instance types with hard disk drive (HDD) storage, specify <code>hdd</code>.</p> </li> <li> <p>For instance types with solid state drive (SSD) storage, specify <code>sdd</code>.</p> </li> </ul> <p>Default: Any local storage type</p>"
"documentation":"<p>Indicates the type of local storage that is required.</p> <ul> <li> <p>For instance types with hard disk drive (HDD) storage, specify <code>hdd</code>.</p> </li> <li> <p>For instance types with solid state drive (SSD) storage, specify <code>ssd</code>.</p> </li> </ul> <p>Default: Any local storage type</p>"
},
"TotalLocalStorageGB":{
"shape":"TotalLocalStorageGBRequest",
"documentation":"<p>The minimum and maximum total local storage size for an instance type, in GB.</p> <p>Default: No minimum or maximum</p>"
"documentation":"<p>The minimum and maximum total local storage size for an instance type, in GB.</p> <p>Default: No minimum or maximum limits</p>"
},
"BaselineEbsBandwidthMbps":{
"shape":"BaselineEbsBandwidthMbpsRequest",
"documentation":"<p>The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html\">Amazon EBSoptimized instances</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>Default: No minimum or maximum</p>"
"documentation":"<p>The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html\">Amazon EBSoptimized instances</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> <p>Default: No minimum or maximum limits</p>"
},
"AcceleratorTypes":{
"shape":"AcceleratorTypes",
@ -3142,7 +3292,7 @@
},
"AcceleratorCount":{
"shape":"AcceleratorCountRequest",
"documentation":"<p>The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) for an instance type.</p> <p>To exclude accelerator-enabled instance types, set <code>Max</code> to <code>0</code>.</p> <p>Default: No minimum or maximum</p>"
"documentation":"<p>The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) for an instance type.</p> <p>To exclude accelerator-enabled instance types, set <code>Max</code> to <code>0</code>.</p> <p>Default: No minimum or maximum limits</p>"
},
"AcceleratorManufacturers":{
"shape":"AcceleratorManufacturers",
@ -3154,10 +3304,18 @@
},
"AcceleratorTotalMemoryMiB":{
"shape":"AcceleratorTotalMemoryMiBRequest",
"documentation":"<p>The minimum and maximum total memory size for the accelerators on an instance type, in MiB.</p> <p>Default: No minimum or maximum</p>"
"documentation":"<p>The minimum and maximum total memory size for the accelerators on an instance type, in MiB.</p> <p>Default: No minimum or maximum limits</p>"
},
"NetworkBandwidthGbps":{
"shape":"NetworkBandwidthGbpsRequest",
"documentation":"<p>The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).</p> <p>Default: No minimum or maximum limits</p>"
},
"AllowedInstanceTypes":{
"shape":"AllowedInstanceTypes",
"documentation":"<p>The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.</p> <p>You can use strings with one or more wild cards, represented by an asterisk (<code>*</code>), to allow an instance type, size, or generation. The following are examples: <code>m5.8xlarge</code>, <code>c5*.*</code>, <code>m5a.*</code>, <code>r*</code>, <code>*3*</code>.</p> <p>For example, if you specify <code>c5*</code>, Amazon EC2 Auto Scaling will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify <code>m5a.*</code>, Amazon EC2 Auto Scaling will allow all the M5a instance types, but not the M5n instance types.</p> <note> <p>If you specify <code>AllowedInstanceTypes</code>, you can't specify <code>ExcludedInstanceTypes</code>.</p> </note> <p>Default: All instance types</p>"
}
},
"documentation":"<p>When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values.</p> <p>Represents requirements for the types of instances that can be launched. You must specify <code>VCpuCount</code> and <code>MemoryMiB</code>, but all other parameters are optional. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html\">Creating an Auto Scaling group using attribute-based instance type selection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>The attributes for the instance types for a mixed instances policy. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.</p> <p>When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.</p> <p>To limit the list of instance types from which Amazon EC2 Auto Scaling can identify matching instance types, you can use one of the following parameters, but not both in the same request:</p> <ul> <li> <p> <code>AllowedInstanceTypes</code> - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.</p> </li> <li> <p> <code>ExcludedInstanceTypes</code> - The instance types to exclude from the list, even if they match your specified attributes.</p> </li> </ul> <note> <p>You must specify <code>VCpuCount</code> and <code>MemoryMiB</code>. All other attributes are optional. Any unspecified optional attribute is set to its default.</p> </note> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html\">Creating an Auto Scaling group using attribute-based instance type selection</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. For help determining which instance types match your attributes before you apply them to your Auto Scaling group, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-get-instance-types-from-instance-requirements\">Preview instance types with specified attributes</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
},
"InstanceReusePolicy":{
"type":"structure",
@ -3178,30 +3336,30 @@
"members":{
"OnDemandAllocationStrategy":{
"shape":"XmlString",
"documentation":"<p>The order of the launch template overrides to use in fulfilling On-Demand capacity. </p> <p>If you specify <code>lowest-price</code>, Amazon EC2 Auto Scaling uses price to determine the order, launching the lowest price first. </p> <p>If you specify <code>prioritized</code>, Amazon EC2 Auto Scaling uses the priority that you assigned to each launch template override, launching the highest priority first. If all your On-Demand capacity cannot be fulfilled using your highest priority instance, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on.</p> <p>Default: <code>lowest-price</code> for Auto Scaling groups that specify <a>InstanceRequirements</a> in the overrides and <code>prioritized</code> for Auto Scaling groups that don't.</p>"
"documentation":"<p>The allocation strategy to apply to your On-Demand Instances when they are launched. Possible instance types are determined by the launch template overrides that you specify.</p> <p>The following lists the valid values:</p> <dl> <dt>lowest-price</dt> <dd> <p>Uses price to determine which instance types are the highest priority, launching the lowest priced instance types within an Availability Zone first. This is the default value for Auto Scaling groups that specify <a>InstanceRequirements</a>. </p> </dd> <dt>prioritized</dt> <dd> <p>You set the order of instance types for the launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling launches your highest priority instance types first. If all your On-Demand capacity cannot be fulfilled using your highest priority instance type, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on. This is the default value for Auto Scaling groups that don't specify <a>InstanceRequirements</a> and cannot be used for groups that do.</p> </dd> </dl>"
},
"OnDemandBaseCapacity":{
"shape":"OnDemandBaseCapacity",
"documentation":"<p>The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is launched first as your group scales.</p> <p>If you specify weights for the instance types in the overrides, the base capacity is measured in the same unit of measurement as the instance types. If you specify <a>InstanceRequirements</a> in the overrides, the base capacity is measured in the same unit of measurement as your group's desired capacity.</p> <p>Default: <code>0</code> </p>"
"documentation":"<p>The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is launched first as your group scales.</p> <p>This number has the same unit of measurement as the group's desired capacity. If you change the default unit of measurement (number of instances) by specifying weighted capacity values in your launch template overrides list, or by changing the default desired capacity type setting of the group, you must specify this number using the same unit of measurement.</p> <p>Default: 0</p>"
},
"OnDemandPercentageAboveBaseCapacity":{
"shape":"OnDemandPercentageAboveBaseCapacity",
"documentation":"<p>Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond <code>OnDemandBaseCapacity</code>. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). If set to 100, only On-Demand Instances are used.</p> <p>Default: <code>100</code> </p>"
"documentation":"<p>Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond <code>OnDemandBaseCapacity</code>. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). If set to 100, only On-Demand Instances are used.</p> <p>Default: 100</p>"
},
"SpotAllocationStrategy":{
"shape":"XmlString",
"documentation":"<p>Indicates how to allocate instances across Spot Instance pools. </p> <p>If the allocation strategy is <code>lowest-price</code>, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify. </p> <p>If the allocation strategy is <code>capacity-optimized</code> (recommended), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity. Alternatively, you can use <code>capacity-optimized-prioritized</code> and set the order of instance types in the list of launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best-effort basis but optimizes for capacity first. </p> <p>Default: <code>lowest-price</code> </p>"
"documentation":"<p>The allocation strategy to apply to your Spot Instances when they are launched. Possible instance types are determined by the launch template overrides that you specify.</p> <p>The following lists the valid values:</p> <dl> <dt>capacity-optimized</dt> <dd> <p>Requests Spot Instances using pools that are optimally chosen based on the available Spot capacity. This strategy has the lowest risk of interruption. To give certain instance types a higher chance of launching first, use <code>capacity-optimized-prioritized</code>.</p> </dd> <dt>capacity-optimized-prioritized</dt> <dd> <p>You set the order of instance types for the launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best effort basis but optimizes for capacity first. Note that if the On-Demand allocation strategy is set to <code>prioritized</code>, the same priority is applied when fulfilling On-Demand capacity. This is not a valid value for Auto Scaling groups that specify <a>InstanceRequirements</a>.</p> </dd> <dt>lowest-price</dt> <dd> <p>Requests Spot Instances using the lowest priced pools within an Availability Zone, across the number of Spot pools that you specify for the <code>SpotInstancePools</code> property. To ensure that your desired capacity is met, you might receive Spot Instances from several pools. This is the default value, but it might lead to high interruption rates because this strategy only considers instance price and not available capacity.</p> </dd> <dt>price-capacity-optimized (recommended)</dt> <dd> <p>The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price.</p> </dd> </dl>"
},
"SpotInstancePools":{
"shape":"SpotInstancePools",
"documentation":"<p>The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the Spot allocation strategy is <code>lowest-price</code>. Value must be in the range of 120.</p> <p>Default: <code>2</code> </p>"
"documentation":"<p>The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the <code>SpotAllocationStrategy</code> is <code>lowest-price</code>. Value must be in the range of 120.</p> <p>Default: 2</p>"
},
"SpotMaxPrice":{
"shape":"MixedInstanceSpotPrice",
"documentation":"<p>The maximum price per unit hour that you are willing to pay for a Spot Instance. If you keep the value at its default (unspecified), Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot price. To remove a value that you previously set, include the property but specify an empty string (\"\") for the value.</p>"
"documentation":"<p>The maximum price per unit hour that you are willing to pay for a Spot Instance. If your maximum price is lower than the Spot price for the instance types that you selected, your Spot Instances are not launched. We do not recommend specifying a maximum price because it can lead to increased interruptions. When Spot Instances launch, you pay the current Spot price. To remove a maximum price that you previously set, include the property but specify an empty string (\"\") for the value.</p> <important> <p>If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify one.</p> </important> <p>Valid Range: Minimum value of 0.001</p>"
}
},
"documentation":"<p>Describes an instances distribution for an Auto Scaling group.</p>"
"documentation":"<p>Use this structure to specify the distribution of On-Demand Instances and Spot Instances and the allocation strategies used to fulfill On-Demand and Spot capacities for a mixed instances policy.</p>"
},
"InstancesToUpdate":{
"type":"integer",
@ -3247,7 +3405,7 @@
},
"ImageId":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html\">Finding an AMI</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html\">Find a Linux AMI</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
},
"KeyName":{
"shape":"XmlStringMaxLen255",
@ -3259,11 +3417,11 @@
},
"ClassicLinkVPCId":{
"shape":"XmlStringMaxLen255",
"documentation":"<p> <i>EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.</i> </p> <p>The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.</p>"
"documentation":"<p>Available for backward compatibility.</p>"
},
"ClassicLinkVPCSecurityGroups":{
"shape":"ClassicLinkVPCSecurityGroups",
"documentation":"<p> <i>EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.</i> </p> <p>The IDs of one or more security groups for the VPC specified in <code>ClassicLinkVPCId</code>.</p>"
"documentation":"<p>Available for backward compatibility.</p>"
},
"UserData":{
"shape":"XmlStringUserData",
@ -3271,7 +3429,7 @@
},
"InstanceType":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The instance type for the instances.</p> <p>For information about available instance types, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes\">Available Instance Types</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>The instance type for the instances. For information about available instance types, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes\">Available instance types</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
},
"KernelId":{
"shape":"XmlStringMaxLen255",
@ -3283,7 +3441,7 @@
},
"BlockDeviceMappings":{
"shape":"BlockDeviceMappings",
"documentation":"<p>A block device mapping, which specifies the block devices for the instance. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html\">Block Device Mapping</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
"documentation":"<p>The block device mapping entries that define the block devices to attach to the instances at launch. By default, the block devices specified in the block device mapping for the AMI are used. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html\">Block Device Mapping</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
},
"InstanceMonitoring":{
"shape":"InstanceMonitoring",
@ -3307,7 +3465,7 @@
},
"AssociatePublicIpAddress":{
"shape":"AssociatePublicIpAddress",
"documentation":"<p>For Auto Scaling groups that are running in a VPC, specifies whether to assign a public IP address to the group's instances. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html\">Launching Auto Scaling instances in a VPC</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Specifies whether to assign a public IPv4 address to the group's instances. If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html\">Launching Auto Scaling instances in a VPC</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"PlacementTenancy":{
"shape":"XmlStringMaxLen64",
@ -3339,7 +3497,7 @@
"members":{
"LaunchConfigurationNames":{
"shape":"LaunchConfigurationNames",
"documentation":"<p>The launch configuration names. If you omit this parameter, all launch configurations are described.</p> <p>Array Members: Maximum number of 50 items.</p>"
"documentation":"<p>The launch configuration names. If you omit this property, all launch configurations are described.</p> <p>Array Members: Maximum number of 50 items.</p>"
},
"NextToken":{
"shape":"XmlString",
@ -3374,14 +3532,14 @@
"members":{
"LaunchTemplateSpecification":{
"shape":"LaunchTemplateSpecification",
"documentation":"<p>The launch template to use.</p>"
"documentation":"<p>The launch template.</p>"
},
"Overrides":{
"shape":"Overrides",
"documentation":"<p>Any properties that you specify override the same properties in the launch template. If not provided, Amazon EC2 Auto Scaling uses the instance type or instance type requirements specified in the launch template when it launches an instance.</p> <p>The overrides can include either one or more instance types or a set of instance requirements, but not both.</p>"
"documentation":"<p>Any properties that you specify override the same properties in the launch template.</p>"
}
},
"documentation":"<p>Describes a launch template and overrides. You specify these properties as part of a mixed instances policy. </p>"
"documentation":"<p>Use this structure to specify the launch templates and instance types (overrides) for a mixed instances policy.</p>"
},
"LaunchTemplateName":{
"type":"string",
@ -3394,22 +3552,22 @@
"members":{
"InstanceType":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The instance type, such as <code>m3.xlarge</code>. You must use an instance type that is supported in your requested Region and Availability Zones. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html\">Instance types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
"documentation":"<p>The instance type, such as <code>m3.xlarge</code>. You must specify an instance type that is supported in your requested Region and Availability Zones. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html\">Instance types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>You can specify up to 40 instance types per Auto Scaling group.</p>"
},
"WeightedCapacity":{
"shape":"XmlStringMaxLen32",
"documentation":"<p>The number of capacity units provided by the instance type specified in <code>InstanceType</code> in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a <code>WeightedCapacity</code> of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html\">Configuring instance weighting for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. Value must be in the range of 1999.</p>"
"documentation":"<p>If you provide a list of instance types to use, you can specify the number of capacity units provided by each instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a <code>WeightedCapacity</code> of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html\">Configuring instance weighting for Amazon EC2 Auto Scaling</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. Value must be in the range of 1999.</p> <p>If you specify a value for <code>WeightedCapacity</code> for one instance type, you must specify a value for <code>WeightedCapacity</code> for all of them.</p> <important> <p>Every Auto Scaling group has three size parameters (<code>DesiredCapacity</code>, <code>MaxSize</code>, and <code>MinSize</code>). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances. </p> </important>"
},
"LaunchTemplateSpecification":{
"shape":"LaunchTemplateSpecification",
"documentation":"<p>Provides a launch template for the specified instance type or instance requirements. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed instances policy. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html\">Specifying a different launch template for an instance type</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
"documentation":"<p>Provides a launch template for the specified instance type or set of instance requirements. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's specified in the <code>LaunchTemplate</code> definition. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html\">Specifying a different launch template for an instance type</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p> <p>You can specify up to 20 launch templates per Auto Scaling group. The launch templates specified in the overrides and in the <code>LaunchTemplate</code> definition count towards this limit.</p>"
},
"InstanceRequirements":{
"shape":"InstanceRequirements",
"documentation":"<p>The instance requirements. When you specify instance requirements, Amazon EC2 Auto Scaling finds instance types that satisfy your requirements, and then uses your On-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of specific instance types. </p>"
"documentation":"<p>The instance requirements. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.</p> <p>You can specify up to four separate sets of instance requirements per Auto Scaling group. This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group. To do this, create the AMIs and create a new launch template for each AMI. Then, create a compatible set of instance requirements for each launch template. </p> <note> <p>If you specify <code>InstanceRequirements</code>, you can't specify <code>InstanceType</code>.</p> </note>"
}
},
"documentation":"<p>Describes an override for a launch template. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-configuring-overrides.html\">Configuring overrides</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>. </p>"
"documentation":"<p>Use this structure to let Amazon EC2 Auto Scaling do the following when the Auto Scaling group has a mixed instances policy:</p> <ul> <li> <p>Override the instance type that is specified in the launch template.</p> </li> <li> <p>Use multiple instance types.</p> </li> </ul> <p>Specify the instance types that you want, or define your instance requirements instead and let Amazon EC2 Auto Scaling provision the available instance types that meet your requirements. This can provide Amazon EC2 Auto Scaling with a larger selection of instance types to choose from when fulfilling Spot and On-Demand capacities. You can view which instance types are matched before you apply the instance requirements to your Auto Scaling group.</p> <p>After you define your instance requirements, you don't have to keep updating these settings to get new EC2 instance types automatically. Amazon EC2 Auto Scaling uses the instance requirements of the Auto Scaling group to determine whether a new EC2 instance type can be used.</p>"
},
"LaunchTemplateSpecification":{
"type":"structure",
@ -3448,11 +3606,11 @@
},
"LifecycleTransition":{
"shape":"LifecycleTransition",
"documentation":"<p>The state of the EC2 instance to which to attach the lifecycle hook. The following are possible values:</p> <ul> <li> <p>autoscaling:EC2_INSTANCE_LAUNCHING</p> </li> <li> <p>autoscaling:EC2_INSTANCE_TERMINATING</p> </li> </ul>"
"documentation":"<p>The lifecycle transition.</p> <p>Valid values: <code>autoscaling:EC2_INSTANCE_LAUNCHING</code> | <code>autoscaling:EC2_INSTANCE_TERMINATING</code> </p>"
},
"NotificationTargetARN":{
"shape":"NotificationTargetResourceName",
"documentation":"<p>The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.</p>"
"documentation":"<p>The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook.</p>"
},
"RoleARN":{
"shape":"XmlStringMaxLen255",
@ -3464,7 +3622,7 @@
},
"HeartbeatTimeout":{
"shape":"HeartbeatTimeout",
"documentation":"<p>The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the <code>DefaultResult</code> parameter.</p>"
"documentation":"<p>The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the <code>DefaultResult</code> property.</p>"
},
"GlobalTimeout":{
"shape":"GlobalTimeout",
@ -3472,7 +3630,7 @@
},
"DefaultResult":{
"shape":"LifecycleActionResult",
"documentation":"<p>Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The possible values are <code>CONTINUE</code> and <code>ABANDON</code>.</p>"
"documentation":"<p>The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs.</p> <p>Valid values: <code>CONTINUE</code> | <code>ABANDON</code> </p>"
}
},
"documentation":"<p>Describes a lifecycle hook. A lifecycle hook lets you create solutions that are aware of events in the Auto Scaling instance lifecycle, and then perform a custom action on instances when the corresponding lifecycle event occurs.</p>"
@ -3495,7 +3653,7 @@
},
"LifecycleTransition":{
"shape":"LifecycleTransition",
"documentation":"<p>The state of the EC2 instance to which you want to attach the lifecycle hook. The valid values are:</p> <ul> <li> <p>autoscaling:EC2_INSTANCE_LAUNCHING</p> </li> <li> <p>autoscaling:EC2_INSTANCE_TERMINATING</p> </li> </ul>"
"documentation":"<p>The lifecycle transition. For Auto Scaling groups, there are two major lifecycle transitions.</p> <ul> <li> <p>To create a lifecycle hook for scale-out events, specify <code>autoscaling:EC2_INSTANCE_LAUNCHING</code>.</p> </li> <li> <p>To create a lifecycle hook for scale-in events, specify <code>autoscaling:EC2_INSTANCE_TERMINATING</code>.</p> </li> </ul>"
},
"NotificationMetadata":{
"shape":"XmlStringMaxLen1023",
@ -3503,19 +3661,19 @@
},
"HeartbeatTimeout":{
"shape":"HeartbeatTimeout",
"documentation":"<p>The maximum time, in seconds, that can elapse before the lifecycle hook times out.</p> <p>If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the <code>DefaultResult</code> parameter. You can prevent the lifecycle hook from timing out by calling <a>RecordLifecycleActionHeartbeat</a>.</p>"
"documentation":"<p>The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from <code>30</code> to <code>7200</code> seconds. The default value is <code>3600</code> seconds (1 hour).</p>"
},
"DefaultResult":{
"shape":"LifecycleActionResult",
"documentation":"<p>Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are <code>CONTINUE</code> and <code>ABANDON</code>. The default value is <code>ABANDON</code>.</p>"
"documentation":"<p>The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. The default value is <code>ABANDON</code>.</p> <p>Valid values: <code>CONTINUE</code> | <code>ABANDON</code> </p>"
},
"NotificationTargetARN":{
"shape":"NotificationTargetResourceName",
"documentation":"<p>The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.</p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook. You can specify an Amazon SNS topic or an Amazon SQS queue.</p>"
},
"RoleARN":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.</p> <p>Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. Required for new lifecycle hooks, but optional when updating existing hooks.</p>"
"documentation":"<p>The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. For information about creating this role, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html#lifecycle-hook-notification-target\">Configure a notification target for a lifecycle hook</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue.</p>"
}
},
"documentation":"<p>Describes information used to specify a lifecycle hook for an Auto Scaling group.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html\">Amazon EC2 Auto Scaling lifecycle hooks</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
@ -3865,16 +4023,30 @@
"members":{
"LaunchTemplate":{
"shape":"LaunchTemplate",
"documentation":"<p>Specifies the launch template to use and the instance types (overrides) that are used to launch EC2 instances to fulfill On-Demand and Spot capacities. Required when creating a mixed instances policy.</p>"
"documentation":"<p>One or more launch templates and the instance types (overrides) that are used to launch EC2 instances to fulfill On-Demand and Spot capacities.</p>"
},
"InstancesDistribution":{
"shape":"InstancesDistribution",
"documentation":"<p>Specifies the instances distribution.</p>"
"documentation":"<p>The instances distribution.</p>"
}
},
"documentation":"<p>Describes a mixed instances policy. A mixed instances policy contains the instance types that Amazon EC2 Auto Scaling can launch and other information that Amazon EC2 Auto Scaling can use to launch instances and help optimize your costs. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html\">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Use this structure to launch multiple instance types and On-Demand Instances and Spot Instances within a single Auto Scaling group.</p> <p>A mixed instances policy contains information that Amazon EC2 Auto Scaling can use to launch instances and help optimize your costs. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html\">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"MonitoringEnabled":{"type":"boolean"},
"NetworkBandwidthGbpsRequest":{
"type":"structure",
"members":{
"Min":{
"shape":"NullablePositiveDouble",
"documentation":"<p>The minimum amount of network bandwidth, in gigabits per second (Gbps).</p>"
},
"Max":{
"shape":"NullablePositiveDouble",
"documentation":"<p>The maximum amount of network bandwidth, in gigabits per second (Gbps).</p>"
}
},
"documentation":"<p>Specifies the minimum and maximum for the <code>NetworkBandwidthGbps</code> object when you specify <a>InstanceRequirements</a> for an Auto Scaling group.</p> <note> <p>Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth\">Available instance bandwidth</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p> </note>"
},
"NetworkInterfaceCountRequest":{
"type":"structure",
"members":{
@ -4246,7 +4418,7 @@
},
"LifecycleTransition":{
"shape":"LifecycleTransition",
"documentation":"<p>The instance state to which you want to attach the lifecycle hook. The valid values are:</p> <ul> <li> <p>autoscaling:EC2_INSTANCE_LAUNCHING</p> </li> <li> <p>autoscaling:EC2_INSTANCE_TERMINATING</p> </li> </ul> <p>Required for new lifecycle hooks, but optional when updating existing hooks.</p>"
"documentation":"<p>The lifecycle transition. For Auto Scaling groups, there are two major lifecycle transitions.</p> <ul> <li> <p>To create a lifecycle hook for scale-out events, specify <code>autoscaling:EC2_INSTANCE_LAUNCHING</code>.</p> </li> <li> <p>To create a lifecycle hook for scale-in events, specify <code>autoscaling:EC2_INSTANCE_TERMINATING</code>.</p> </li> </ul> <p>Required for new lifecycle hooks, but optional when updating existing hooks.</p>"
},
"RoleARN":{
"shape":"XmlStringMaxLen255",
@ -4254,7 +4426,7 @@
},
"NotificationTargetARN":{
"shape":"NotificationTargetResourceName",
"documentation":"<p>The ARN of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic.</p> <p>If you specify an empty string, this overrides the current ARN.</p> <p>This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key-value pair format when sending notifications to an Amazon SNS topic.</p> <p>When you specify a notification target, Amazon EC2 Auto Scaling sends it a test message. Test messages contain the following additional key-value pair: <code>\"Event\": \"autoscaling:TEST_NOTIFICATION\"</code>.</p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in a wait state for the lifecycle hook. You can specify either an Amazon SNS topic or an Amazon SQS queue.</p> <p>If you specify an empty string, this overrides the current ARN.</p> <p>This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key-value pair format when sending notifications to an Amazon SNS topic.</p> <p>When you specify a notification target, Amazon EC2 Auto Scaling sends it a test message. Test messages contain the following additional key-value pair: <code>\"Event\": \"autoscaling:TEST_NOTIFICATION\"</code>.</p>"
},
"NotificationMetadata":{
"shape":"XmlStringMaxLen1023",
@ -4262,11 +4434,11 @@
},
"HeartbeatTimeout":{
"shape":"HeartbeatTimeout",
"documentation":"<p>The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from <code>30</code> to <code>7200</code> seconds. The default value is <code>3600</code> seconds (1 hour).</p> <p>If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the <code>DefaultResult</code> parameter. You can prevent the lifecycle hook from timing out by calling the <a>RecordLifecycleActionHeartbeat</a> API.</p>"
"documentation":"<p>The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from <code>30</code> to <code>7200</code> seconds. The default value is <code>3600</code> seconds (1 hour).</p>"
},
"DefaultResult":{
"shape":"LifecycleActionResult",
"documentation":"<p>Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. This parameter can be either <code>CONTINUE</code> or <code>ABANDON</code>. The default value is <code>ABANDON</code>.</p>"
"documentation":"<p>The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. The default value is <code>ABANDON</code>.</p> <p>Valid values: <code>CONTINUE</code> | <code>ABANDON</code> </p>"
}
}
},
@ -4345,7 +4517,7 @@
},
"TargetTrackingConfiguration":{
"shape":"TargetTrackingConfiguration",
"documentation":"<p>A target tracking scaling policy. Provides support for predefined or custom metrics.</p> <p>The following predefined metrics are available:</p> <ul> <li> <p> <code>ASGAverageCPUUtilization</code> </p> </li> <li> <p> <code>ASGAverageNetworkIn</code> </p> </li> <li> <p> <code>ASGAverageNetworkOut</code> </p> </li> <li> <p> <code>ALBRequestCountPerTarget</code> </p> </li> </ul> <p>If you specify <code>ALBRequestCountPerTarget</code> for the metric, you must specify the <code>ResourceLabel</code> parameter with the <code>PredefinedMetricSpecification</code>.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TargetTrackingConfiguration.html\">TargetTrackingConfiguration</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>.</p> <p>Required if the policy type is <code>TargetTrackingScaling</code>.</p>"
"documentation":"<p>A target tracking scaling policy. Provides support for predefined or custom metrics.</p> <p>The following predefined metrics are available:</p> <ul> <li> <p> <code>ASGAverageCPUUtilization</code> </p> </li> <li> <p> <code>ASGAverageNetworkIn</code> </p> </li> <li> <p> <code>ASGAverageNetworkOut</code> </p> </li> <li> <p> <code>ALBRequestCountPerTarget</code> </p> </li> </ul> <p>If you specify <code>ALBRequestCountPerTarget</code> for the metric, you must specify the <code>ResourceLabel</code> property with the <code>PredefinedMetricSpecification</code>.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TargetTrackingConfiguration.html\">TargetTrackingConfiguration</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>.</p> <p>Required if the policy type is <code>TargetTrackingScaling</code>.</p>"
},
"Enabled":{
"shape":"ScalingPolicyEnabled",
@ -4374,15 +4546,15 @@
},
"Time":{
"shape":"TimestampType",
"documentation":"<p>This parameter is no longer used.</p>"
"documentation":"<p>This property is no longer used.</p>"
},
"StartTime":{
"shape":"TimestampType",
"documentation":"<p>The date and time for this action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT only and in quotes (for example, <code>\"2019-06-01T00:00:00Z\"</code>).</p> <p>If you specify <code>Recurrence</code> and <code>StartTime</code>, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence.</p> <p>If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns an error message.</p>"
"documentation":"<p>The date and time for this action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT only and in quotes (for example, <code>\"2021-06-01T00:00:00Z\"</code>).</p> <p>If you specify <code>Recurrence</code> and <code>StartTime</code>, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence.</p>"
},
"EndTime":{
"shape":"TimestampType",
"documentation":"<p>The date and time for the recurring schedule to end, in UTC.</p>"
"documentation":"<p>The date and time for the recurring schedule to end, in UTC. For example, <code>\"2021-06-01T00:00:00Z\"</code>.</p>"
},
"Recurrence":{
"shape":"XmlStringMaxLen255",
@ -4398,7 +4570,7 @@
},
"DesiredCapacity":{
"shape":"AutoScalingGroupDesiredCapacity",
"documentation":"<p>The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. It can scale beyond this capacity if you add more scaling conditions. </p>"
"documentation":"<p>The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. It can scale beyond this capacity if you add more scaling conditions. </p> <note> <p>You must specify at least one of the following properties: <code>MaxSize</code>, <code>MinSize</code>, or <code>DesiredCapacity</code>. </p> </note>"
},
"TimeZone":{
"shape":"XmlStringMaxLen255",
@ -4659,7 +4831,7 @@
},
"ScalingProcesses":{
"shape":"ProcessNames",
"documentation":"<p>One or more of the following processes:</p> <ul> <li> <p> <code>Launch</code> </p> </li> <li> <p> <code>Terminate</code> </p> </li> <li> <p> <code>AddToLoadBalancer</code> </p> </li> <li> <p> <code>AlarmNotification</code> </p> </li> <li> <p> <code>AZRebalance</code> </p> </li> <li> <p> <code>HealthCheck</code> </p> </li> <li> <p> <code>InstanceRefresh</code> </p> </li> <li> <p> <code>ReplaceUnhealthy</code> </p> </li> <li> <p> <code>ScheduledActions</code> </p> </li> </ul> <p>If you omit this parameter, all processes are specified.</p>"
"documentation":"<p>One or more of the following processes:</p> <ul> <li> <p> <code>Launch</code> </p> </li> <li> <p> <code>Terminate</code> </p> </li> <li> <p> <code>AddToLoadBalancer</code> </p> </li> <li> <p> <code>AlarmNotification</code> </p> </li> <li> <p> <code>AZRebalance</code> </p> </li> <li> <p> <code>HealthCheck</code> </p> </li> <li> <p> <code>InstanceRefresh</code> </p> </li> <li> <p> <code>ReplaceUnhealthy</code> </p> </li> <li> <p> <code>ScheduledActions</code> </p> </li> </ul> <p>If you omit this property, all processes are specified.</p>"
}
}
},
@ -4697,7 +4869,7 @@
},
"Time":{
"shape":"TimestampType",
"documentation":"<p>This parameter is no longer used.</p>"
"documentation":"<p>This property is no longer used.</p>"
},
"StartTime":{
"shape":"TimestampType",
@ -4917,7 +5089,7 @@
},
"ScalingAdjustment":{
"shape":"PolicyIncrement",
"documentation":"<p>The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity.</p>"
"documentation":"<p>The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity.</p> <p>The amount by which to scale. The adjustment is based on the value that you specified in the <code>AdjustmentType</code> property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity. </p>"
}
},
"documentation":"<p>Describes information used to create a step adjustment for a step scaling policy.</p> <p>For the following examples, suppose that you have an alarm with a breach threshold of 50:</p> <ul> <li> <p>To trigger the adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10.</p> </li> <li> <p>To trigger the adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0.</p> </li> </ul> <p>There are a few rules for the step adjustments for your step policy:</p> <ul> <li> <p>The ranges of your step adjustments can't overlap or have a gap.</p> </li> <li> <p>At most, one step adjustment can have a null lower bound. If one step adjustment has a negative lower bound, then there must be a step adjustment with a null lower bound.</p> </li> <li> <p>At most, one step adjustment can have a null upper bound. If one step adjustment has a positive upper bound, then there must be a step adjustment with a null upper bound.</p> </li> <li> <p>The upper and lower bound can't be null in the same step adjustment.</p> </li> </ul> <p>For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-steps\">Step adjustments</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
@ -5057,6 +5229,56 @@
},
"documentation":"<p>Represents a target tracking scaling policy configuration to use with Amazon EC2 Auto Scaling.</p>"
},
"TargetTrackingMetricDataQueries":{
"type":"list",
"member":{"shape":"TargetTrackingMetricDataQuery"}
},
"TargetTrackingMetricDataQuery":{
"type":"structure",
"required":["Id"],
"members":{
"Id":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>A short name that identifies the object's results in the response. This name must be unique among all <code>TargetTrackingMetricDataQuery</code> objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter. </p>"
},
"Expression":{
"shape":"XmlStringMaxLen2047",
"documentation":"<p>The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the <code>Id</code> of the other metrics to refer to those metrics, and can also use the <code>Id</code> of other expressions to use the result of those expressions. </p> <p>Conditional: Within each <code>TargetTrackingMetricDataQuery</code> object, you must specify either <code>Expression</code> or <code>MetricStat</code>, but not both.</p>"
},
"MetricStat":{
"shape":"TargetTrackingMetricStat",
"documentation":"<p>Information about the metric data to return.</p> <p>Conditional: Within each <code>TargetTrackingMetricDataQuery</code> object, you must specify either <code>Expression</code> or <code>MetricStat</code>, but not both.</p>"
},
"Label":{
"shape":"XmlStringMetricLabel",
"documentation":"<p>A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.</p>"
},
"ReturnData":{
"shape":"ReturnData",
"documentation":"<p>Indicates whether to return the timestamps and raw data values of this metric. </p> <p>If you use any math expressions, specify <code>true</code> for this value for only the final math expression that the metric specification is based on. You must specify <code>false</code> for <code>ReturnData</code> for all the other metrics and expressions used in the metric specification.</p> <p>If you are only retrieving metrics and not performing any math expressions, do not specify anything for <code>ReturnData</code>. This sets it to its default (<code>true</code>).</p>"
}
},
"documentation":"<p>The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.</p>"
},
"TargetTrackingMetricStat":{
"type":"structure",
"required":[
"Metric",
"Stat"
],
"members":{
"Metric":{"shape":"Metric"},
"Stat":{
"shape":"XmlStringMetricStat",
"documentation":"<p>The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic\">Statistics</a> in the <i>Amazon CloudWatch User Guide</i>.</p> <p>The most commonly used metrics for scaling is <code>Average</code> </p>"
},
"Unit":{
"shape":"MetricUnit",
"documentation":"<p>The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html\">MetricDatum</a> data type in the <i>Amazon CloudWatch API Reference</i>.</p>"
}
},
"documentation":"<p>This structure defines the CloudWatch metric to return, along with the statistic, period, and unit.</p> <p>For more information about the CloudWatch terminology below, see <a href=\"https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html\">Amazon CloudWatch concepts</a> in the <i>Amazon CloudWatch User Guide</i>.</p>"
},
"TerminateInstanceInAutoScalingGroupType":{
"type":"structure",
"required":[
@ -5093,6 +5315,38 @@
},
"documentation":"<p>Specifies the minimum and maximum for the <code>TotalLocalStorageGB</code> object when you specify <a>InstanceRequirements</a> for an Auto Scaling group.</p>"
},
"TrafficSourceIdentifier":{
"type":"structure",
"members":{
"Identifier":{
"shape":"XmlStringMaxLen511",
"documentation":"<p>The unique identifier of the traffic source.</p>"
}
},
"documentation":"<p>Describes the identifier of a traffic source.</p> <p>Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group.</p>"
},
"TrafficSourceState":{
"type":"structure",
"members":{
"TrafficSource":{
"shape":"XmlStringMaxLen511",
"documentation":"<p>The unique identifier of the traffic source. Currently, this is the Amazon Resource Name (ARN) for a VPC Lattice target group.</p>"
},
"State":{
"shape":"XmlStringMaxLen255",
"documentation":"<p>The following are the possible states for a VPC Lattice target group:</p> <ul> <li> <p> <code>Adding</code> - The Auto Scaling instances are being registered with the target group.</p> </li> <li> <p> <code>Added</code> - All Auto Scaling instances are registered with the target group.</p> </li> <li> <p> <code>InService</code> - At least one Auto Scaling instance passed the <code>VPC_LATTICE</code> health check.</p> </li> <li> <p> <code>Removing</code> - The Auto Scaling instances are being deregistered from the target group. If connection draining is enabled, VPC Lattice waits for in-flight requests to complete before deregistering the instances.</p> </li> <li> <p> <code>Removed</code> - All Auto Scaling instances are deregistered from the target group.</p> </li> </ul>"
}
},
"documentation":"<p>Describes the state of a traffic source.</p>"
},
"TrafficSourceStates":{
"type":"list",
"member":{"shape":"TrafficSourceState"}
},
"TrafficSources":{
"type":"list",
"member":{"shape":"TrafficSourceIdentifier"}
},
"UpdateAutoScalingGroupType":{
"type":"structure",
"required":["AutoScalingGroupName"],
@ -5111,7 +5365,7 @@
},
"MixedInstancesPolicy":{
"shape":"MixedInstancesPolicy",
"documentation":"<p>An embedded object that specifies a mixed instances policy. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html\">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>The mixed instances policy. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html\">Auto Scaling groups with multiple instance types and purchase options</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"MinSize":{
"shape":"AutoScalingGroupMinSize",
@ -5135,11 +5389,11 @@
},
"HealthCheckType":{
"shape":"XmlStringMaxLen32",
"documentation":"<p>The service to use for the health checks. The valid values are <code>EC2</code> and <code>ELB</code>. If you configure an Auto Scaling group to use <code>ELB</code> health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks.</p>"
"documentation":"<p>Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on.</p> <p>The valid values are <code>EC2</code> (default), <code>ELB</code>, and <code>VPC_LATTICE</code>. The <code>VPC_LATTICE</code> health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.</p>"
},
"HealthCheckGracePeriod":{
"shape":"HealthCheckGracePeriod",
"documentation":"<p>The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed Elastic Load Balancing or custom health check. This is useful if your instances do not immediately pass these health checks after they enter the <code>InService</code> state. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period\">Health check grace period</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the <code>InService</code> state. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/health-check-grace-period.html\">Set the health check grace period for an Auto Scaling group</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"PlacementGroup":{
"shape":"XmlStringMaxLen255",
@ -5147,11 +5401,11 @@
},
"VPCZoneIdentifier":{
"shape":"XmlStringMaxLen2047",
"documentation":"<p>A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify for this parameter must reside in those Availability Zones.</p>"
"documentation":"<p>A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify <code>VPCZoneIdentifier</code> with <code>AvailabilityZones</code>, the subnets that you specify must reside in those Availability Zones.</p>"
},
"TerminationPolicies":{
"shape":"TerminationPolicies",
"documentation":"<p>A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html\">Controlling which Auto Scaling instances terminate during scale in</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html\">Work with Amazon EC2 Auto Scaling termination policies</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p> <p>Valid values: <code>Default</code> | <code>AllocationStrategy</code> | <code>ClosestToNextInstanceHour</code> | <code>NewestInstance</code> | <code>OldestInstance</code> | <code>OldestLaunchConfiguration</code> | <code>OldestLaunchTemplate</code> | <code>arn:aws:lambda:region:account-id:function:my-function:my-alias</code> </p>"
},
"NewInstancesProtectedFromScaleIn":{
"shape":"InstanceProtected",
@ -5167,7 +5421,7 @@
},
"CapacityRebalance":{
"shape":"CapacityRebalanceEnabled",
"documentation":"<p>Enables or disables Capacity Rebalancing. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html\">Amazon EC2 Auto Scaling Capacity Rebalancing</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
"documentation":"<p>Enables or disables Capacity Rebalancing. For more information, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html\">Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions</a> in the <i>Amazon EC2 Auto Scaling User Guide</i>.</p>"
},
"Context":{
"shape":"Context",
@ -5314,5 +5568,5 @@
"pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*"
}
},
"documentation":"<fullname>Amazon EC2 Auto Scaling</fullname> <p>Amazon EC2 Auto Scaling is designed to automatically launch or terminate EC2 instances based on user-defined scaling policies, scheduled actions, and health checks.</p> <p>For more information about Amazon EC2 Auto Scaling, see the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html\">Amazon EC2 Auto Scaling User Guide</a>. For information about granting IAM users required permissions for calls to Amazon EC2 Auto Scaling, see <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/ec2-auto-scaling-api-permissions.html\">Granting IAM users required permissions for Amazon EC2 Auto Scaling resources</a> in the <i>Amazon EC2 Auto Scaling API Reference</i>.</p>"
"documentation":"<fullname>Amazon EC2 Auto Scaling</fullname> <p>Amazon EC2 Auto Scaling is designed to automatically launch and terminate EC2 instances based on user-defined scaling policies, scheduled actions, and health checks.</p> <p>For more information, see the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/userguide/\">Amazon EC2 Auto Scaling User Guide</a> and the <a href=\"https://docs.aws.amazon.com/autoscaling/ec2/APIReference/Welcome.html\">Amazon EC2 Auto Scaling API Reference</a>.</p>"
}

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backup-gateway-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backup-gateway-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backup-gateway.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://backup-gateway.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -24,7 +24,8 @@
"errors":[
{"shape":"ValidationException"},
{"shape":"ConflictException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Associates a backup gateway with your server. After you complete the association process, you can back up and restore your VMs through the gateway.</p>"
},
@ -38,7 +39,8 @@
"output":{"shape":"CreateGatewayOutput"},
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Creates a backup gateway. After you create a gateway, you can associate it with a server using the <code>AssociateGatewayToServer</code> operation.</p>"
},
@ -53,7 +55,8 @@
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Deletes a backup gateway.</p>",
"idempotent":true
@ -70,7 +73,8 @@
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"AccessDeniedException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Deletes a hypervisor.</p>",
"idempotent":true
@ -87,10 +91,43 @@
{"shape":"ValidationException"},
{"shape":"ConflictException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Disassociates a backup gateway from the specified server. After the disassociation process finishes, the gateway can no longer access the virtual machines on the server.</p>"
},
"GetGateway":{
"name":"GetGateway",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetGatewayInput"},
"output":{"shape":"GetGatewayOutput"},
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>By providing the ARN (Amazon Resource Name), this API returns the gateway.</p>"
},
"GetVirtualMachine":{
"name":"GetVirtualMachine",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetVirtualMachineInput"},
"output":{"shape":"GetVirtualMachineOutput"},
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>By providing the ARN (Amazon Resource Name), this API returns the virtual machine.</p>"
},
"ImportHypervisorConfiguration":{
"name":"ImportHypervisorConfiguration",
"http":{
@ -102,7 +139,8 @@
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"AccessDeniedException"}
{"shape":"AccessDeniedException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Connect to a hypervisor by importing its configuration.</p>"
},
@ -116,7 +154,8 @@
"output":{"shape":"ListGatewaysOutput"},
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Lists backup gateways owned by an Amazon Web Services account in an Amazon Web Services Region. The returned list is ordered by gateway Amazon Resource Name (ARN).</p>"
},
@ -130,7 +169,8 @@
"output":{"shape":"ListHypervisorsOutput"},
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Lists your hypervisors.</p>"
},
@ -145,7 +185,8 @@
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Lists the tags applied to the resource identified by its Amazon Resource Name (ARN).</p>"
},
@ -159,7 +200,8 @@
"output":{"shape":"ListVirtualMachinesOutput"},
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
{"shape":"InternalServerException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Lists your virtual machines.</p>"
},
@ -175,7 +217,8 @@
{"shape":"ValidationException"},
{"shape":"ConflictException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Set the maintenance start time for a gateway.</p>"
},
@ -190,7 +233,8 @@
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Tag the resource.</p>"
},
@ -206,7 +250,8 @@
{"shape":"ValidationException"},
{"shape":"ConflictException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Tests your hypervisor configuration to validate that backup gateway can connect with the hypervisor and its resources.</p>"
},
@ -221,7 +266,8 @@
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Removes tags from the resource.</p>"
},
@ -237,10 +283,27 @@
{"shape":"ValidationException"},
{"shape":"ConflictException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Updates a gateway's name. Specify which gateway to update using the Amazon Resource Name (ARN) of the gateway in your request.</p>"
},
"UpdateGatewaySoftwareNow":{
"name":"UpdateGatewaySoftwareNow",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"UpdateGatewaySoftwareNowInput"},
"output":{"shape":"UpdateGatewaySoftwareNowOutput"},
"errors":[
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Updates the gateway virtual machine (VM) software. The request immediately triggers the software update.</p> <note> <p>When you make this request, you get a <code>200 OK</code> success response immediately. However, it might take some time for the update to complete.</p> </note>"
},
"UpdateHypervisor":{
"name":"UpdateHypervisor",
"http":{
@ -253,7 +316,8 @@
{"shape":"ValidationException"},
{"shape":"InternalServerException"},
{"shape":"AccessDeniedException"},
{"shape":"ResourceNotFoundException"}
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"}
],
"documentation":"<p>Updates a hypervisor metadata, including its host, username, and password. Specify which hypervisor to update using the Amazon Resource Name (ARN) of the hypervisor in your request.</p>"
}
@ -453,6 +517,44 @@
"min":50,
"pattern":"^arn:(aws|aws-cn|aws-us-gov):backup-gateway(:[a-zA-Z-0-9]+){3}\\/[a-zA-Z-0-9]+$"
},
"GatewayDetails":{
"type":"structure",
"members":{
"GatewayArn":{
"shape":"GatewayArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and Amazon Web Services Region.</p>"
},
"GatewayDisplayName":{
"shape":"Name",
"documentation":"<p>The display name of the gateway.</p>"
},
"GatewayType":{
"shape":"GatewayType",
"documentation":"<p>The type of the gateway type.</p>"
},
"HypervisorId":{
"shape":"HypervisorId",
"documentation":"<p>The hypervisor ID of the gateway.</p>"
},
"LastSeenTime":{
"shape":"Time",
"documentation":"<p>Details showing the last time Backup gateway communicated with the cloud, in Unix format and UTC time.</p>"
},
"MaintenanceStartTime":{
"shape":"MaintenanceStartTime",
"documentation":"<p>Returns your gateway's weekly maintenance start time including the day and time of the week. Note that values are in terms of the gateway's time zone. Can be weekly or monthly.</p>"
},
"NextUpdateAvailabilityTime":{
"shape":"Time",
"documentation":"<p>Details showing the next update availability time of the gateway.</p>"
},
"VpcEndpoint":{
"shape":"VpcEndpoint",
"documentation":"<p>The DNS name for the virtual private cloud (VPC) endpoint the gateway uses to connect to the cloud for backup gateway.</p>"
}
},
"documentation":"<p>The details of gateway.</p>"
},
"GatewayType":{
"type":"string",
"enum":["BACKUP_VM"]
@ -461,6 +563,44 @@
"type":"list",
"member":{"shape":"Gateway"}
},
"GetGatewayInput":{
"type":"structure",
"required":["GatewayArn"],
"members":{
"GatewayArn":{
"shape":"GatewayArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the gateway.</p>"
}
}
},
"GetGatewayOutput":{
"type":"structure",
"members":{
"Gateway":{
"shape":"GatewayDetails",
"documentation":"<p>By providing the ARN (Amazon Resource Name), this API returns the gateway.</p>"
}
}
},
"GetVirtualMachineInput":{
"type":"structure",
"required":["ResourceArn"],
"members":{
"ResourceArn":{
"shape":"ResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the virtual machine.</p>"
}
}
},
"GetVirtualMachineOutput":{
"type":"structure",
"members":{
"VirtualMachine":{
"shape":"VirtualMachineDetails",
"documentation":"<p>This object contains the basic attributes of <code>VirtualMachine</code> contained by the output of <code>GetVirtualMachine</code> </p>"
}
}
},
"Host":{
"type":"string",
"max":128,
@ -656,6 +796,10 @@
"ListVirtualMachinesInput":{
"type":"structure",
"members":{
"HypervisorArn":{
"shape":"ServerArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the hypervisor connected to your virtual machine.</p>"
},
"MaxResults":{
"shape":"MaxResults",
"documentation":"<p>The maximum number of virtual machines to list.</p>"
@ -679,6 +823,32 @@
}
}
},
"MaintenanceStartTime":{
"type":"structure",
"required":[
"HourOfDay",
"MinuteOfHour"
],
"members":{
"DayOfMonth":{
"shape":"DayOfMonth",
"documentation":"<p>The day of the month component of the maintenance start time represented as an ordinal number from 1 to 28, where 1 represents the first day of the month and 28 represents the last day of the month.</p>"
},
"DayOfWeek":{
"shape":"DayOfWeek",
"documentation":"<p>An ordinal number between 0 and 6 that represents the day of the week, where 0 represents Sunday and 6 represents Saturday. The day of week is in the time zone of the gateway.</p>"
},
"HourOfDay":{
"shape":"HourOfDay",
"documentation":"<p>The hour component of the maintenance start time represented as <i>hh</i>, where <i>hh</i> is the hour (0 to 23). The hour of the day is in the time zone of the gateway.</p>"
},
"MinuteOfHour":{
"shape":"MinuteOfHour",
"documentation":"<p>The minute component of the maintenance start time represented as <i>mm</i>, where <i>mm</i> is the minute (0 to 59). The minute of the hour is in the time zone of the gateway.</p>"
}
},
"documentation":"<p>This is your gateway's weekly maintenance start time including the day and time of the week. Note that values are in terms of the gateway's time zone. Can be weekly or monthly.</p>"
},
"MaxResults":{
"type":"integer",
"box":true,
@ -791,7 +961,7 @@
},
"Value":{
"shape":"TagValue",
"documentation":"<p>The key part of a value's key-value pair.</p>"
"documentation":"<p>The value part of a tag's key-value pair.</p>"
}
},
"documentation":"<p>A key-value pair you can use to manage, filter, and search for your resources. Allowed characters include UTF-8 letters, numbers, spaces, and the following characters: + - = . _ : /.</p>"
@ -872,6 +1042,19 @@
"members":{
}
},
"ThrottlingException":{
"type":"structure",
"required":["ErrorCode"],
"members":{
"ErrorCode":{
"shape":"string",
"documentation":"<p>Error: TPS has been limited to protect against intentional or unintentional high request volumes.</p>"
},
"Message":{"shape":"string"}
},
"documentation":"<p>TPS has been limited to protect against intentional or unintentional high request volumes.</p>",
"exception":true
},
"Time":{"type":"timestamp"},
"UntagResourceInput":{
"type":"structure",
@ -922,6 +1105,25 @@
}
}
},
"UpdateGatewaySoftwareNowInput":{
"type":"structure",
"required":["GatewayArn"],
"members":{
"GatewayArn":{
"shape":"GatewayArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the gateway to be updated.</p>"
}
}
},
"UpdateGatewaySoftwareNowOutput":{
"type":"structure",
"members":{
"GatewayArn":{
"shape":"GatewayArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the gateway you updated.</p>"
}
}
},
"UpdateHypervisorInput":{
"type":"structure",
"required":["HypervisorArn"],
@ -934,6 +1136,10 @@
"shape":"ServerArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the hypervisor to update.</p>"
},
"Name":{
"shape":"Name",
"documentation":"<p>The updated name for the hypervisor</p>"
},
"Password":{
"shape":"Password",
"documentation":"<p>The updated password for the hypervisor.</p>"
@ -997,15 +1203,50 @@
},
"ResourceArn":{
"shape":"ResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the virtual machine.</p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the virtual machine. For example, <code>arn:aws:backup-gateway:us-west-1:0000000000000:vm/vm-0000ABCDEFGIJKL</code>.</p>"
}
},
"documentation":"<p>A virtual machine that is on a hypervisor.</p>"
},
"VirtualMachineDetails":{
"type":"structure",
"members":{
"HostName":{
"shape":"Name",
"documentation":"<p>The host name of the virtual machine.</p>"
},
"HypervisorId":{
"shape":"string",
"documentation":"<p>The ID of the virtual machine's hypervisor.</p>"
},
"LastBackupDate":{
"shape":"Time",
"documentation":"<p>The most recent date a virtual machine was backed up, in Unix format and UTC time.</p>"
},
"Name":{
"shape":"Name",
"documentation":"<p>The name of the virtual machine.</p>"
},
"Path":{
"shape":"Path",
"documentation":"<p>The path of the virtual machine.</p>"
},
"ResourceArn":{
"shape":"ResourceArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the virtual machine. For example, <code>arn:aws:backup-gateway:us-west-1:0000000000000:vm/vm-0000ABCDEFGIJKL</code>.</p>"
}
},
"documentation":"<p>Your <code>VirtualMachine</code> objects, ordered by their Amazon Resource Names (ARNs).</p>"
},
"VirtualMachines":{
"type":"list",
"member":{"shape":"VirtualMachine"}
},
"VpcEndpoint":{
"type":"string",
"max":255,
"min":1
},
"string":{"type":"string"}
},
"documentation":"<p><fullname>Backup gateway</fullname> <p>Backup gateway connects Backup to your hypervisor, so you can create, store, and restore backups of your virtual machines (VMs) anywhere, whether on-premises or in the VMware Cloud (VMC) on Amazon Web Services.</p> <p>Add on-premises resources by connecting to a hypervisor through a gateway. Backup will automatically discover the resources in your hypervisor.</p> <p>Use Backup to assign virtual or on-premises resources to a backup plan, or run on-demand backups. Once you have backed up your resources, you can view them and restore them like any resource supported by Backup.</p> <p>To download the Amazon Web Services software to get started, navigate to the Backup console, choose <b>Gateways</b>, then choose <b>Create gateway</b>.</p></p>"

View file

@ -0,0 +1,315 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": true,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backup-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backup-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backup.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://backup.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -65,6 +65,18 @@
"output_token": "NextToken",
"limit_key": "MaxResults",
"result_key": "RestoreJobs"
},
"ListLegalHolds": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxResults",
"result_key": "LegalHolds"
},
"ListRecoveryPointsByLegalHold": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxResults",
"result_key": "RecoveryPoints"
}
}
}

View file

@ -11,6 +11,25 @@
"uid":"backup-2018-11-15"
},
"operations":{
"CancelLegalHold":{
"name":"CancelLegalHold",
"http":{
"method":"DELETE",
"requestUri":"/legal-holds/{legalHoldId}",
"responseCode":201
},
"input":{"shape":"CancelLegalHoldInput"},
"output":{"shape":"CancelLegalHoldOutput"},
"errors":[
{"shape":"InvalidParameterValueException"},
{"shape":"InvalidResourceStateException"},
{"shape":"MissingParameterValueException"},
{"shape":"ServiceUnavailableException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>This action removes the specified legal hold on a recovery point. This action can only be performed by a user with sufficient permissions.</p>",
"idempotent":true
},
"CreateBackupPlan":{
"name":"CreateBackupPlan",
"http":{
@ -83,6 +102,23 @@
"documentation":"<p>Creates a framework with one or more controls. A framework is a collection of controls that you can use to evaluate your backup practices. By using pre-built customizable controls to define your policies, you can evaluate whether your backup practices comply with your policies and which resources are not yet in compliance.</p>",
"idempotent":true
},
"CreateLegalHold":{
"name":"CreateLegalHold",
"http":{
"method":"POST",
"requestUri":"/legal-holds/"
},
"input":{"shape":"CreateLegalHoldInput"},
"output":{"shape":"CreateLegalHoldOutput"},
"errors":[
{"shape":"InvalidParameterValueException"},
{"shape":"MissingParameterValueException"},
{"shape":"ServiceUnavailableException"},
{"shape":"LimitExceededException"}
],
"documentation":"<p>This action creates a legal hold on a recovery point (backup). A legal hold is a restraint on altering or deleting a backup until an authorized user cancels the legal hold. Any actions to delete or disassociate a recovery point will fail with an error if one or more active legal holds are on the recovery point.</p>",
"idempotent":true
},
"CreateReportPlan":{
"name":"CreateReportPlan",
"http":{
@ -229,7 +265,7 @@
{"shape":"ServiceUnavailableException"},
{"shape":"InvalidRequestException"}
],
"documentation":"<p>Deletes the recovery point specified by a recovery point ID.</p> <p>If the recovery point ID belongs to a continuous backup, calling this endpoint deletes the existing continuous backup and stops future continuous backup.</p>",
"documentation":"<p>Deletes the recovery point specified by a recovery point ID.</p> <p>If the recovery point ID belongs to a continuous backup, calling this endpoint deletes the existing continuous backup and stops future continuous backup.</p> <p>When an IAM role's permissions are insufficient to call this API, the service sends back an HTTP 200 response with an empty HTTP body, but the recovery point is not deleted. Instead, it enters an <code>EXPIRED</code> state.</p> <p> <code>EXPIRED</code> recovery points can be deleted with this API once the IAM role has the <code>iam:CreateServiceLinkedRole</code> action. To learn more about adding this role, see <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/deleting-backups.html#deleting-backups-troubleshooting\"> Troubleshooting manual deletions</a>.</p> <p>If the user or role is deleted or the permission within the role is removed, the deletion will not be successful and will enter an <code>EXPIRED</code> state.</p>",
"idempotent":true
},
"DeleteReportPlan":{
@ -444,6 +480,23 @@
],
"documentation":"<p>Deletes the specified continuous backup recovery point from Backup and releases control of that continuous backup to the source service, such as Amazon RDS. The source service will continue to create and retain continuous backups using the lifecycle that you specified in your original backup plan.</p> <p>Does not support snapshot backup recovery points.</p>"
},
"DisassociateRecoveryPointFromParent":{
"name":"DisassociateRecoveryPointFromParent",
"http":{
"method":"DELETE",
"requestUri":"/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}/parentAssociation",
"responseCode":204
},
"input":{"shape":"DisassociateRecoveryPointFromParentInput"},
"errors":[
{"shape":"ResourceNotFoundException"},
{"shape":"InvalidParameterValueException"},
{"shape":"MissingParameterValueException"},
{"shape":"ServiceUnavailableException"},
{"shape":"InvalidRequestException"}
],
"documentation":"<p>This action to a specific child (nested) recovery point removes the relationship between the specified recovery point and its parent (composite) recovery point.</p>"
},
"ExportBackupPlanTemplate":{
"name":"ExportBackupPlanTemplate",
"http":{
@ -561,6 +614,23 @@
"documentation":"<p>Returns event notifications for the specified backup vault.</p>",
"idempotent":true
},
"GetLegalHold":{
"name":"GetLegalHold",
"http":{
"method":"GET",
"requestUri":"/legal-holds/{legalHoldId}/"
},
"input":{"shape":"GetLegalHoldInput"},
"output":{"shape":"GetLegalHoldOutput"},
"errors":[
{"shape":"InvalidParameterValueException"},
{"shape":"MissingParameterValueException"},
{"shape":"ServiceUnavailableException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>This action returns details for a specified legal hold. The details are the body of a legal hold in JSON format, in addition to metadata.</p>",
"idempotent":true
},
"GetRecoveryPointRestoreMetadata":{
"name":"GetRecoveryPointRestoreMetadata",
"http":{
@ -717,6 +787,21 @@
],
"documentation":"<p>Returns a list of all frameworks for an Amazon Web Services account and Amazon Web Services Region.</p>"
},
"ListLegalHolds":{
"name":"ListLegalHolds",
"http":{
"method":"GET",
"requestUri":"/legal-holds/"
},
"input":{"shape":"ListLegalHoldsInput"},
"output":{"shape":"ListLegalHoldsOutput"},
"errors":[
{"shape":"InvalidParameterValueException"},
{"shape":"ServiceUnavailableException"}
],
"documentation":"<p>This action returns metadata about active and previous legal holds.</p>",
"idempotent":true
},
"ListProtectedResources":{
"name":"ListProtectedResources",
"http":{
@ -749,6 +834,22 @@
"documentation":"<p>Returns detailed information about the recovery points stored in a backup vault.</p>",
"idempotent":true
},
"ListRecoveryPointsByLegalHold":{
"name":"ListRecoveryPointsByLegalHold",
"http":{
"method":"GET",
"requestUri":"/legal-holds/{legalHoldId}/recovery-points"
},
"input":{"shape":"ListRecoveryPointsByLegalHoldInput"},
"output":{"shape":"ListRecoveryPointsByLegalHoldOutput"},
"errors":[
{"shape":"InvalidParameterValueException"},
{"shape":"MissingParameterValueException"},
{"shape":"ServiceUnavailableException"}
],
"documentation":"<p>This action returns recovery point ARNs (Amazon Resource Names) of the specified legal hold.</p>",
"idempotent":true
},
"ListRecoveryPointsByResource":{
"name":"ListRecoveryPointsByResource",
"http":{
@ -776,7 +877,8 @@
"output":{"shape":"ListReportJobsOutput"},
"errors":[
{"shape":"InvalidParameterValueException"},
{"shape":"ServiceUnavailableException"}
{"shape":"ServiceUnavailableException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p>Returns details about your report jobs.</p>"
},
@ -963,7 +1065,7 @@
{"shape":"InvalidRequestException"},
{"shape":"ServiceUnavailableException"}
],
"documentation":"<p>Attempts to cancel a job to create a one-time backup of a resource.</p>"
"documentation":"<p>Attempts to cancel a job to create a one-time backup of a resource.</p> <p>This action is not supported for the following services: Amazon FSx for Windows File Server, Amazon FSx for Lustre, FSx for ONTAP , Amazon FSx for OpenZFS, Amazon DocumentDB (with MongoDB compatibility), Amazon RDS, Amazon Aurora, and Amazon Neptune.</p>"
},
"TagResource":{
"name":"TagResource",
@ -1065,7 +1167,7 @@
{"shape":"MissingParameterValueException"},
{"shape":"ServiceUnavailableException"}
],
"documentation":"<p>Sets the transition lifecycle of a recovery point.</p> <p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p> <p>This operation does not support continuous backups.</p>",
"documentation":"<p>Sets the transition lifecycle of a recovery point.</p> <p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p> <p>This operation does not support continuous backups.</p>",
"idempotent":true
},
"UpdateRegionSettings":{
@ -1232,10 +1334,23 @@
"BackupType":{
"shape":"string",
"documentation":"<p>Represents the type of backup for a backup job.</p>"
},
"ParentJobId":{
"shape":"string",
"documentation":"<p>This uniquely identifies a request to Backup to back up a resource. The return will be the parent (composite) job ID.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This is a boolean value indicating this is a parent (composite) backup job.</p>"
}
},
"documentation":"<p>Contains detailed information about a backup job.</p>"
},
"BackupJobChildJobsInState":{
"type":"map",
"key":{"shape":"BackupJobState"},
"value":{"shape":"Long"}
},
"BackupJobState":{
"type":"string",
"enum":[
@ -1246,7 +1361,8 @@
"ABORTED",
"COMPLETED",
"FAILED",
"EXPIRED"
"EXPIRED",
"PARTIAL"
]
},
"BackupJobsList":{
@ -1400,7 +1516,7 @@
},
"StartWindowMinutes":{
"shape":"WindowMinutes",
"documentation":"<p>A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional.</p>"
"documentation":"<p>A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional. If this value is included, it must be at least 60 minutes to avoid errors.</p>"
},
"CompletionWindowMinutes":{
"shape":"WindowMinutes",
@ -1408,7 +1524,7 @@
},
"Lifecycle":{
"shape":"Lifecycle",
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"RecoveryPointTags":{
"shape":"Tags",
@ -1450,7 +1566,7 @@
},
"StartWindowMinutes":{
"shape":"WindowMinutes",
"documentation":"<p>A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional.</p>"
"documentation":"<p>A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional. If this value is included, it must be at least 60 minutes to avoid errors.</p>"
},
"CompletionWindowMinutes":{
"shape":"WindowMinutes",
@ -1458,7 +1574,7 @@
},
"Lifecycle":{
"shape":"Lifecycle",
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"RecoveryPointTags":{
"shape":"Tags",
@ -1508,7 +1624,7 @@
},
"ListOfTags":{
"shape":"ListOfTags",
"documentation":"<p>A list of conditions that you define to assign resources to your backup plans using tags. For example, <code>\"StringEquals\": {\"Department\": \"accounting\"</code>. Condition operators are case sensitive.</p> <p> <code>ListOfTags</code> differs from <code>Conditions</code> as follows:</p> <ul> <li> <p>When you specify more than one condition, you assign all resources that match AT LEAST ONE condition (using OR logic).</p> </li> <li> <p> <code>ListOfTags</code> only supports <code>StringEquals</code>. <code>Conditions</code> supports <code>StringEquals</code>, <code>StringLike</code>, <code>StringNotEquals</code>, and <code>StringNotLike</code>. </p> </li> </ul>"
"documentation":"<p>A list of conditions that you define to assign resources to your backup plans using tags. For example, <code>\"StringEquals\": { \"ConditionKey\": \"aws:ResourceTag/CreatedByCryo\", \"ConditionValue\": \"true\" },</code>. Condition operators are case sensitive.</p> <p> <code>ListOfTags</code> differs from <code>Conditions</code> as follows:</p> <ul> <li> <p>When you specify more than one condition, you assign all resources that match AT LEAST ONE condition (using OR logic).</p> </li> <li> <p> <code>ListOfTags</code> only supports <code>StringEquals</code>. <code>Conditions</code> supports <code>StringEquals</code>, <code>StringLike</code>, <code>StringNotEquals</code>, and <code>StringNotLike</code>. </p> </li> </ul>"
},
"NotResources":{
"shape":"ResourceArns",
@ -1516,10 +1632,10 @@
},
"Conditions":{
"shape":"Conditions",
"documentation":"<p>A list of conditions that you define to assign resources to your backup plans using tags. For example, <code>\"StringEquals\": {\"Department\": \"accounting\"</code>. Condition operators are case sensitive.</p> <p> <code>Conditions</code> differs from <code>ListOfTags</code> as follows:</p> <ul> <li> <p>When you specify more than one condition, you only assign the resources that match ALL conditions (using AND logic).</p> </li> <li> <p> <code>Conditions</code> supports <code>StringEquals</code>, <code>StringLike</code>, <code>StringNotEquals</code>, and <code>StringNotLike</code>. <code>ListOfTags</code> only supports <code>StringEquals</code>.</p> </li> </ul>"
"documentation":"<p>A list of conditions that you define to assign resources to your backup plans using tags. For example, <code>\"StringEquals\": { \"ConditionKey\": \"aws:ResourceTag/CreatedByCryo\", \"ConditionValue\": \"true\" },</code>. Condition operators are case sensitive.</p> <p> <code>Conditions</code> differs from <code>ListOfTags</code> as follows:</p> <ul> <li> <p>When you specify more than one condition, you only assign the resources that match ALL conditions (using AND logic).</p> </li> <li> <p> <code>Conditions</code> supports <code>StringEquals</code>, <code>StringLike</code>, <code>StringNotEquals</code>, and <code>StringNotLike</code>. <code>ListOfTags</code> only supports <code>StringEquals</code>.</p> </li> </ul>"
}
},
"documentation":"<p>Used to specify a set of resources to a backup plan.</p>"
"documentation":"<p>Used to specify a set of resources to a backup plan.</p> <p>Specifying your desired <code>Conditions</code>, <code>ListOfTags</code>, <code>NotResources</code>, and/or <code>Resources</code> is recommended. If none of these are specified, Backup will attempt to select all supported and opted-in storage resources, which could have unintended cost implications.</p>"
},
"BackupSelectionName":{
"type":"string",
@ -1652,7 +1768,39 @@
"documentation":"<p>A timestamp that specifies when to delete a recovery point.</p>"
}
},
"documentation":"<p>Contains <code>DeleteAt</code> and <code>MoveToColdStorageAt</code> timestamps, which are used to specify a lifecycle for a recovery point.</p> <p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>Contains <code>DeleteAt</code> and <code>MoveToColdStorageAt</code> timestamps, which are used to specify a lifecycle for a recovery point.</p> <p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"CancelLegalHoldInput":{
"type":"structure",
"required":[
"LegalHoldId",
"CancelDescription"
],
"members":{
"LegalHoldId":{
"shape":"string",
"documentation":"<p>Legal hold ID required to remove the specified legal hold on a recovery point.</p>",
"location":"uri",
"locationName":"legalHoldId"
},
"CancelDescription":{
"shape":"string",
"documentation":"<p>String describing the reason for removing the legal hold.</p>",
"location":"querystring",
"locationName":"cancelDescription"
},
"RetainRecordInDays":{
"shape":"Long",
"documentation":"<p>The integer amount in days specifying amount of days after this API operation to remove legal hold.</p>",
"location":"querystring",
"locationName":"retainRecordInDays"
}
}
},
"CancelLegalHoldOutput":{
"type":"structure",
"members":{
}
},
"ComplianceResourceIdList":{
"type":"list",
@ -1858,17 +2006,43 @@
"ResourceType":{
"shape":"ResourceType",
"documentation":"<p>The type of Amazon Web Services resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.</p>"
},
"ParentJobId":{
"shape":"string",
"documentation":"<p>This uniquely identifies a request to Backup to copy a resource. The return will be the parent (composite) job ID.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This is a boolean value indicating this is a parent (composite) copy job.</p>"
},
"CompositeMemberIdentifier":{
"shape":"string",
"documentation":"<p>This is the identifier of a resource within a composite group, such as nested (child) recovery point belonging to a composite (parent) stack. The ID is transferred from the <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html#resources-section-structure-syntax\"> logical ID</a> within a stack.</p>"
},
"NumberOfChildJobs":{
"shape":"Long",
"documentation":"<p>This is the number of child (nested) copy jobs.</p>"
},
"ChildJobsInState":{
"shape":"CopyJobChildJobsInState",
"documentation":"<p>This returns the statistics of the included child (nested) copy jobs.</p>"
}
},
"documentation":"<p>Contains detailed information about a copy job.</p>"
},
"CopyJobChildJobsInState":{
"type":"map",
"key":{"shape":"CopyJobState"},
"value":{"shape":"Long"}
},
"CopyJobState":{
"type":"string",
"enum":[
"CREATED",
"RUNNING",
"COMPLETED",
"FAILED"
"FAILED",
"PARTIAL"
]
},
"CopyJobsList":{
@ -2042,6 +2216,68 @@
}
}
},
"CreateLegalHoldInput":{
"type":"structure",
"required":[
"Title",
"Description"
],
"members":{
"Title":{
"shape":"string",
"documentation":"<p>This is the string title of the legal hold.</p>"
},
"Description":{
"shape":"string",
"documentation":"<p>This is the string description of the legal hold.</p>"
},
"IdempotencyToken":{
"shape":"string",
"documentation":"<p>This is a user-chosen string used to distinguish between otherwise identical calls. Retrying a successful request with the same idempotency token results in a success message with no action taken.</p>"
},
"RecoveryPointSelection":{
"shape":"RecoveryPointSelection",
"documentation":"<p>This specifies criteria to assign a set of resources, such as resource types or backup vaults.</p>"
},
"Tags":{
"shape":"Tags",
"documentation":"<p>Optional tags to include. A tag is a key-value pair you can use to manage, filter, and search for your resources. Allowed characters include UTF-8 letters, numbers, spaces, and the following characters: + - = . _ : /. </p>"
}
}
},
"CreateLegalHoldOutput":{
"type":"structure",
"members":{
"Title":{
"shape":"string",
"documentation":"<p>This is the string title of the legal hold returned after creating the legal hold.</p>"
},
"Status":{
"shape":"LegalHoldStatus",
"documentation":"<p>This displays the status of the legal hold returned after creating the legal hold. Statuses can be <code>ACTIVE</code>, <code>PENDING</code>, <code>CANCELED</code>, <code>CANCELING</code>, or <code>FAILED</code>.</p>"
},
"Description":{
"shape":"string",
"documentation":"<p>This is the returned string description of the legal hold.</p>"
},
"LegalHoldId":{
"shape":"string",
"documentation":"<p>Legal hold ID returned for the specified legal hold on a recovery point.</p>"
},
"LegalHoldArn":{
"shape":"ARN",
"documentation":"<p>This is the ARN (Amazon Resource Number) of the created legal hold.</p>"
},
"CreationDate":{
"shape":"timestamp",
"documentation":"<p>Time in number format when legal hold was created.</p>"
},
"RecoveryPointSelection":{
"shape":"RecoveryPointSelection",
"documentation":"<p>This specifies criteria to assign a set of resources, such as resource types or backup vaults.</p>"
}
}
},
"CreateReportPlanInput":{
"type":"structure",
"required":[
@ -2095,6 +2331,24 @@
}
},
"CronExpression":{"type":"string"},
"DateRange":{
"type":"structure",
"required":[
"FromDate",
"ToDate"
],
"members":{
"FromDate":{
"shape":"timestamp",
"documentation":"<p>This value is the beginning date, inclusive.</p> <p>The date and time are in Unix format and Coordinated Universal Time (UTC), and it is accurate to milliseconds (milliseconds are optional).</p>"
},
"ToDate":{
"shape":"timestamp",
"documentation":"<p>This value is the end date, inclusive.</p> <p>The date and time are in Unix format and Coordinated Universal Time (UTC), and it is accurate to milliseconds (milliseconds are optional).</p>"
}
},
"documentation":"<p>This is a resource filter containing FromDate: DateTime and ToDate: DateTime. Both values are required. Future DateTime values are not permitted.</p> <p>The date and time are in Unix format and Coordinated Universal Time (UTC), and it is accurate to milliseconds ((milliseconds are optional). For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
},
"DeleteBackupPlanInput":{
"type":"structure",
"required":["BackupPlanId"],
@ -2354,6 +2608,22 @@
"BackupType":{
"shape":"string",
"documentation":"<p>Represents the actual backup type selected for a backup job. For example, if a successful Windows Volume Shadow Copy Service (VSS) backup was taken, <code>BackupType</code> returns <code>\"WindowsVSS\"</code>. If <code>BackupType</code> is empty, then the backup type was a regular backup.</p>"
},
"ParentJobId":{
"shape":"string",
"documentation":"<p>This returns the parent (composite) resource backup job ID.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This returns the boolean value that a backup job is a parent (composite) job.</p>"
},
"NumberOfChildJobs":{
"shape":"Long",
"documentation":"<p>This returns the number of child (nested) backup jobs.</p>"
},
"ChildJobsInState":{
"shape":"BackupJobChildJobsInState",
"documentation":"<p>This returns the statistics of the included child (nested) backup jobs.</p>"
}
}
},
@ -2468,7 +2738,7 @@
},
"CreationTime":{
"shape":"timestamp",
"documentation":"<p>The date and time that a framework is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
"documentation":"<p>The date and time that a framework is created, in ISO 8601 representation. The value of <code>CreationTime</code> is accurate to milliseconds. For example, 2020-07-10T15:00:00.000-08:00 represents the 10th of July 2020 at 3:00 PM 8 hours behind UTC.</p>"
},
"DeploymentStatus":{
"shape":"string",
@ -2589,7 +2859,7 @@
},
"Status":{
"shape":"RecoveryPointStatus",
"documentation":"<p>A status code specifying the state of the recovery point.</p> <p> <code>PARTIAL</code> status indicates Backup could not create the recovery point before the backup window closed. To increase your backup plan window using the API, see <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateBackupPlan.html\">UpdateBackupPlan</a>. You can also increase your backup plan window using the Console by choosing and editing your backup plan.</p> <p> <code>EXPIRED</code> status indicates that the recovery point has exceeded its retention period, but Backup lacks permission or is otherwise unable to delete it. To manually delete these recovery points, see <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/gs-cleanup-resources.html#cleanup-backups\"> Step 3: Delete the recovery points</a> in the <i>Clean up resources</i> section of <i>Getting started</i>.</p>"
"documentation":"<p>A status code specifying the state of the recovery point.</p> <p> <code>PARTIAL</code> status indicates Backup could not create the recovery point before the backup window closed. To increase your backup plan window using the API, see <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateBackupPlan.html\">UpdateBackupPlan</a>. You can also increase your backup plan window using the Console by choosing and editing your backup plan.</p> <p> <code>EXPIRED</code> status indicates that the recovery point has exceeded its retention period, but Backup lacks permission or is otherwise unable to delete it. To manually delete these recovery points, see <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/gs-cleanup-resources.html#cleanup-backups\"> Step 3: Delete the recovery points</a> in the <i>Clean up resources</i> section of <i>Getting started</i>.</p> <p> <code>STOPPED</code> status occurs on a continuous backup where a user has taken some action that causes the continuous backup to be disabled. This can be caused by the removal of permissions, turning off versioning, turning off events being sent to EventBridge, or disabling the EventBridge rules that are put in place by Backup.</p> <p>To resolve <code>STOPPED</code> status, ensure that all requested permissions are in place and that versioning is enabled on the S3 bucket. Once these conditions are met, the next instance of a backup rule running will result in a new continuous recovery point being created. The recovery points with STOPPED status do not need to be deleted.</p>"
},
"StatusMessage":{
"shape":"string",
@ -2613,7 +2883,7 @@
},
"Lifecycle":{
"shape":"Lifecycle",
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups that are transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups that are transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"EncryptionKeyArn":{
"shape":"ARN",
@ -2630,6 +2900,18 @@
"LastRestoreTime":{
"shape":"timestamp",
"documentation":"<p>The date and time that a recovery point was last restored, in Unix format and Coordinated Universal Time (UTC). The value of <code>LastRestoreTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
},
"ParentRecoveryPointArn":{
"shape":"ARN",
"documentation":"<p>This is an ARN that uniquely identifies a parent (composite) recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.</p>"
},
"CompositeMemberIdentifier":{
"shape":"string",
"documentation":"<p>This is the identifier of a resource within a composite group, such as nested (child) recovery point belonging to a composite (parent) stack. The ID is transferred from the <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html#resources-section-structure-syntax\"> logical ID</a> within a stack.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This returns the boolean value that a recovery point is a parent (composite) job.</p>"
}
}
},
@ -2762,6 +3044,27 @@
}
}
},
"DisassociateRecoveryPointFromParentInput":{
"type":"structure",
"required":[
"BackupVaultName",
"RecoveryPointArn"
],
"members":{
"BackupVaultName":{
"shape":"BackupVaultName",
"documentation":"<p>This is the name of a logical container where the child (nested) recovery point is stored. Backup vaults are identified by names that are unique to the account used to create them and the Amazon Web Services Region where they are created. They consist of lowercase letters, numbers, and hyphens.</p>",
"location":"uri",
"locationName":"backupVaultName"
},
"RecoveryPointArn":{
"shape":"ARN",
"documentation":"<p>This is the Amazon Resource Name (ARN) that uniquely identifies the child (nested) recovery point; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.</code> </p>",
"location":"uri",
"locationName":"recoveryPointArn"
}
}
},
"DisassociateRecoveryPointInput":{
"type":"structure",
"required":[
@ -2829,7 +3132,7 @@
},
"CreationTime":{
"shape":"timestamp",
"documentation":"<p>The date and time that a framework is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
"documentation":"<p>The date and time that a framework is created, in ISO 8601 representation. The value of <code>CreationTime</code> is accurate to milliseconds. For example, 2020-07-10T15:00:00.000-08:00 represents the 10th of July 2020 at 3:00 PM 8 hours behind UTC.</p>"
},
"DeploymentStatus":{
"shape":"string",
@ -3084,6 +3387,63 @@
}
}
},
"GetLegalHoldInput":{
"type":"structure",
"required":["LegalHoldId"],
"members":{
"LegalHoldId":{
"shape":"string",
"documentation":"<p>This is the ID required to use <code>GetLegalHold</code>. This unique ID is associated with a specific legal hold.</p>",
"location":"uri",
"locationName":"legalHoldId"
}
}
},
"GetLegalHoldOutput":{
"type":"structure",
"members":{
"Title":{
"shape":"string",
"documentation":"<p>This is the string title of the legal hold.</p>"
},
"Status":{
"shape":"LegalHoldStatus",
"documentation":"<p>This is the status of the legal hold. Statuses can be <code>ACTIVE</code>, <code>CREATING</code>, <code>CANCELED</code>, and <code>CANCELING</code>.</p>"
},
"Description":{
"shape":"string",
"documentation":"<p>This is the returned string description of the legal hold.</p>"
},
"CancelDescription":{
"shape":"string",
"documentation":"<p>String describing the reason for removing the legal hold.</p>"
},
"LegalHoldId":{
"shape":"string",
"documentation":"<p>This is the returned ID associated with a specified legal hold.</p>"
},
"LegalHoldArn":{
"shape":"ARN",
"documentation":"<p>This is the returned framework ARN for the specified legal hold. An Amazon Resource Name (ARN) uniquely identifies a resource. The format of the ARN depends on the resource type.</p>"
},
"CreationDate":{
"shape":"timestamp",
"documentation":"<p>Time in number format when legal hold was created.</p>"
},
"CancellationDate":{
"shape":"timestamp",
"documentation":"<p>Time in number when legal hold was cancelled.</p>"
},
"RetainRecordUntil":{
"shape":"timestamp",
"documentation":"<p>This is the date and time until which the legal hold record will be retained.</p>"
},
"RecoveryPointSelection":{
"shape":"RecoveryPointSelection",
"documentation":"<p>This specifies criteria to assign a set of resources, such as resource types or backup vaults.</p>"
}
}
},
"GetRecoveryPointRestoreMetadataInput":{
"type":"structure",
"required":[
@ -3192,6 +3552,53 @@
"exception":true
},
"IsEnabled":{"type":"boolean"},
"LegalHold":{
"type":"structure",
"members":{
"Title":{
"shape":"string",
"documentation":"<p>This is the title of a legal hold.</p>"
},
"Status":{
"shape":"LegalHoldStatus",
"documentation":"<p>This is the status of the legal hold. Statuses can be <code>ACTIVE</code>, <code>CREATING</code>, <code>CANCELED</code>, and <code>CANCELING</code>.</p>"
},
"Description":{
"shape":"string",
"documentation":"<p>This is the description of a legal hold.</p>"
},
"LegalHoldId":{
"shape":"string",
"documentation":"<p>ID of specific legal hold on one or more recovery points.</p>"
},
"LegalHoldArn":{
"shape":"ARN",
"documentation":"<p>This is an Amazon Resource Number (ARN) that uniquely identifies the legal hold; for example, <code>arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45</code>.</p>"
},
"CreationDate":{
"shape":"timestamp",
"documentation":"<p>This is the time in number format when legal hold was created.</p>"
},
"CancellationDate":{
"shape":"timestamp",
"documentation":"<p>This is the time in number format when legal hold was cancelled.</p>"
}
},
"documentation":"<p>A legal hold is an administrative tool that helps prevent backups from being deleted while under a hold. While the hold is in place, backups under a hold cannot be deleted and lifecycle policies that would alter the backup status (such as transition to cold storage) are delayed until the legal hold is removed. A backup can have more than one legal hold. Legal holds are applied to one or more backups (also known as recovery points). These backups can be filtered by resource types and by resource IDs.</p>"
},
"LegalHoldStatus":{
"type":"string",
"enum":[
"CREATING",
"ACTIVE",
"CANCELING",
"CANCELED"
]
},
"LegalHoldsList":{
"type":"list",
"member":{"shape":"LegalHold"}
},
"Lifecycle":{
"type":"structure",
"members":{
@ -3204,7 +3611,7 @@
"documentation":"<p>Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus <code>MoveToColdStorageAfterDays</code>.</p>"
}
},
"documentation":"<p>Contains an array of <code>Transition</code> objects specifying how long in days before a recovery point transitions to cold storage or is deleted.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, on the console, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>Contains an array of <code>Transition</code> objects specifying how long in days before a recovery point transitions to cold storage or is deleted.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, on the console, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"LimitExceededException":{
"type":"structure",
@ -3291,6 +3698,12 @@
"documentation":"<p>Returns only backup jobs completed before a date expressed in Unix format and Coordinated Universal Time (UTC).</p>",
"location":"querystring",
"locationName":"completeBefore"
},
"ByParentJobId":{
"shape":"string",
"documentation":"<p>This is a filter to list child (nested) jobs based on parent job ID.</p>",
"location":"querystring",
"locationName":"parentJobId"
}
}
},
@ -3545,6 +3958,12 @@
"documentation":"<p>Returns only copy jobs completed after a date expressed in Unix format and Coordinated Universal Time (UTC).</p>",
"location":"querystring",
"locationName":"completeAfter"
},
"ByParentJobId":{
"shape":"string",
"documentation":"<p>This is a filter to list child (nested) jobs based on parent job ID.</p>",
"location":"querystring",
"locationName":"parentJobId"
}
}
},
@ -3591,6 +4010,36 @@
}
}
},
"ListLegalHoldsInput":{
"type":"structure",
"members":{
"NextToken":{
"shape":"string",
"documentation":"<p>The next item following a partial list of returned resources. For example, if a request is made to return <code>maxResults</code> number of resources, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.</p>",
"location":"querystring",
"locationName":"nextToken"
},
"MaxResults":{
"shape":"MaxResults",
"documentation":"<p>The maximum number of resource list items to be returned.</p>",
"location":"querystring",
"locationName":"maxResults"
}
}
},
"ListLegalHoldsOutput":{
"type":"structure",
"members":{
"NextToken":{
"shape":"string",
"documentation":"<p>The next item following a partial list of returned resources. For example, if a request is made to return <code>maxResults</code> number of resources, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.</p>"
},
"LegalHolds":{
"shape":"LegalHoldsList",
"documentation":"<p>This is an array of returned legal holds, both active and previous.</p>"
}
}
},
"ListOfTags":{
"type":"list",
"member":{"shape":"Condition"}
@ -3676,6 +4125,12 @@
"documentation":"<p>Returns only recovery points that were created after the specified timestamp.</p>",
"location":"querystring",
"locationName":"createdAfter"
},
"ByParentRecoveryPointArn":{
"shape":"ARN",
"documentation":"<p>This returns only recovery points that match the specified parent (composite) recovery point Amazon Resource Name (ARN).</p>",
"location":"querystring",
"locationName":"parentRecoveryPointArn"
}
}
},
@ -3692,6 +4147,43 @@
}
}
},
"ListRecoveryPointsByLegalHoldInput":{
"type":"structure",
"required":["LegalHoldId"],
"members":{
"LegalHoldId":{
"shape":"string",
"documentation":"<p>This is the ID of the legal hold.</p>",
"location":"uri",
"locationName":"legalHoldId"
},
"NextToken":{
"shape":"string",
"documentation":"<p>This is the next item following a partial list of returned resources. For example, if a request is made to return <code>maxResults</code> number of resources, <code>NextToken</code> allows you to return more items in your list starting at the location pointed to by the next token.</p>",
"location":"querystring",
"locationName":"nextToken"
},
"MaxResults":{
"shape":"MaxResults",
"documentation":"<p>This is the maximum number of resource list items to be returned.</p>",
"location":"querystring",
"locationName":"maxResults"
}
}
},
"ListRecoveryPointsByLegalHoldOutput":{
"type":"structure",
"members":{
"RecoveryPoints":{
"shape":"RecoveryPointsList",
"documentation":"<p>This is a list of the recovery points returned by <code>ListRecoveryPointsByLegalHold</code>.</p>"
},
"NextToken":{
"shape":"string",
"documentation":"<p>This return is the next item following a partial list of returned resources.</p>"
}
}
},
"ListRecoveryPointsByResourceInput":{
"type":"structure",
"required":["ResourceArn"],
@ -4036,7 +4528,7 @@
},
"BackupVaultEvents":{
"shape":"BackupVaultEvents",
"documentation":"<p>An array of events that indicate the status of jobs to back up resources to the backup vault.</p> <p>For common use cases and code samples, see <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/sns-notifications.html\">Using Amazon SNS to track Backup events</a>.</p> <p>The following events are supported:</p> <ul> <li> <p> <code>BACKUP_JOB_STARTED</code> | <code>BACKUP_JOB_COMPLETED</code> </p> </li> <li> <p> <code>COPY_JOB_STARTED</code> | <code>COPY_JOB_SUCCESSFUL</code> | <code>COPY_JOB_FAILED</code> </p> </li> <li> <p> <code>RESTORE_JOB_STARTED</code> | <code>RESTORE_JOB_COMPLETED</code> | <code>RECOVERY_POINT_MODIFIED</code> </p> </li> <li> <p> <code>S3_BACKUP_OBJECT_FAILED</code> | <code>S3_RESTORE_OBJECT_FAILED</code> </p> </li> </ul> <note> <p>Ignore the list below because it includes deprecated events. Refer to the list above.</p> </note>"
"documentation":"<p>An array of events that indicate the status of jobs to back up resources to the backup vault.</p> <p>For common use cases and code samples, see <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/sns-notifications.html\">Using Amazon SNS to track Backup events</a>.</p> <p>The following events are supported:</p> <ul> <li> <p> <code>BACKUP_JOB_STARTED</code> | <code>BACKUP_JOB_COMPLETED</code> </p> </li> <li> <p> <code>COPY_JOB_STARTED</code> | <code>COPY_JOB_SUCCESSFUL</code> | <code>COPY_JOB_FAILED</code> </p> </li> <li> <p> <code>RESTORE_JOB_STARTED</code> | <code>RESTORE_JOB_COMPLETED</code> | <code>RECOVERY_POINT_MODIFIED</code> </p> </li> <li> <p> <code>S3_BACKUP_OBJECT_FAILED</code> | <code>S3_RESTORE_OBJECT_FAILED</code> </p> </li> </ul> <note> <p>The list below shows items that are deprecated events (for reference) and are no longer in use. They are no longer supported and will not return statuses or notifications. Refer to the list above for current supported events.</p> </note>"
}
}
},
@ -4101,7 +4593,7 @@
},
"Lifecycle":{
"shape":"Lifecycle",
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"EncryptionKeyArn":{
"shape":"ARN",
@ -4114,6 +4606,18 @@
"LastRestoreTime":{
"shape":"timestamp",
"documentation":"<p>The date and time a recovery point was last restored, in Unix format and Coordinated Universal Time (UTC). The value of <code>LastRestoreTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
},
"ParentRecoveryPointArn":{
"shape":"ARN",
"documentation":"<p>This is the Amazon Resource Name (ARN) of the parent (composite) recovery point.</p>"
},
"CompositeMemberIdentifier":{
"shape":"string",
"documentation":"<p>This is the identifier of a resource within a composite group, such as nested (child) recovery point belonging to a composite (parent) stack. The ID is transferred from the <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html#resources-section-structure-syntax\"> logical ID</a> within a stack.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This is a boolean value indicating this is a parent (composite) recovery point.</p>"
}
},
"documentation":"<p>Contains detailed information about the recovery points stored in a backup vault.</p>"
@ -4152,6 +4656,14 @@
"BackupVaultName":{
"shape":"BackupVaultName",
"documentation":"<p>The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Amazon Web Services Region where they are created. They consist of lowercase letters, numbers, and hyphens.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This is a boolean value indicating this is a parent (composite) recovery point.</p>"
},
"ParentRecoveryPointArn":{
"shape":"ARN",
"documentation":"<p>This is the Amazon Resource Name (ARN) of the parent (composite) recovery point.</p>"
}
},
"documentation":"<p>Contains detailed information about a saved recovery point.</p>"
@ -4182,6 +4694,31 @@
},
"documentation":"<p>Contains information about the backup plan and rule that Backup used to initiate the recovery point backup.</p>"
},
"RecoveryPointMember":{
"type":"structure",
"members":{
"RecoveryPointArn":{
"shape":"ARN",
"documentation":"<p>This is the Amazon Resource Name (ARN) of the parent (composite) recovery point.</p>"
}
},
"documentation":"<p>This is a recovery point which is a child (nested) recovery point of a parent (composite) recovery point. These recovery points can be disassociated from their parent (composite) recovery point, in which case they will no longer be a member.</p>"
},
"RecoveryPointSelection":{
"type":"structure",
"members":{
"VaultNames":{
"shape":"VaultNames",
"documentation":"<p>These are the names of the vaults in which the selected recovery points are contained.</p>"
},
"ResourceIdentifiers":{
"shape":"ResourceIdentifiers",
"documentation":"<p>These are the resources included in the resource selection (including type of resources and vaults).</p>"
},
"DateRange":{"shape":"DateRange"}
},
"documentation":"<p>This specifies criteria to assign a set of resources, such as resource types or backup vaults.</p>"
},
"RecoveryPointStatus":{
"type":"string",
"enum":[
@ -4191,6 +4728,10 @@
"EXPIRED"
]
},
"RecoveryPointsList":{
"type":"list",
"member":{"shape":"RecoveryPointMember"}
},
"ReportDeliveryChannel":{
"type":"structure",
"required":["S3BucketName"],
@ -4340,6 +4881,18 @@
"NumberOfFrameworks":{
"shape":"integer",
"documentation":"<p>The number of frameworks a report covers.</p>"
},
"Accounts":{
"shape":"stringList",
"documentation":"<p>These are the accounts to be included in the report.</p>"
},
"OrganizationUnits":{
"shape":"stringList",
"documentation":"<p>These are the Organizational Units to be included in the report.</p>"
},
"Regions":{
"shape":"stringList",
"documentation":"<p>These are the Regions to be included in the report.</p>"
}
},
"documentation":"<p>Contains detailed information about a report setting.</p>"
@ -4348,6 +4901,10 @@
"type":"list",
"member":{"shape":"ARN"}
},
"ResourceIdentifiers":{
"type":"list",
"member":{"shape":"string"}
},
"ResourceNotFoundException":{
"type":"structure",
"members":{
@ -4504,7 +5061,7 @@
},
"StartWindowMinutes":{
"shape":"WindowMinutes",
"documentation":"<p>A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional, and the default is 8 hours.</p>"
"documentation":"<p>A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional, and the default is 8 hours. If this value is included, it must be at least 60 minutes to avoid errors.</p>"
},
"CompleteWindowMinutes":{
"shape":"WindowMinutes",
@ -4512,7 +5069,7 @@
},
"Lifecycle":{
"shape":"Lifecycle",
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define. </p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. </p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"RecoveryPointTags":{
"shape":"Tags",
@ -4538,6 +5095,10 @@
"CreationDate":{
"shape":"timestamp",
"documentation":"<p>The date and time that a backup job is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This is a returned boolean value indicating this is a parent (composite) backup job.</p>"
}
}
},
@ -4583,6 +5144,10 @@
"CreationDate":{
"shape":"timestamp",
"documentation":"<p>The date and time that a copy job is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationDate</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
},
"IsParent":{
"shape":"boolean",
"documentation":"<p>This is a returned boolean value indicating this is a parent (composite) copy job.</p>"
}
}
},
@ -4616,8 +5181,7 @@
"type":"structure",
"required":[
"RecoveryPointArn",
"Metadata",
"IamRoleArn"
"Metadata"
],
"members":{
"RecoveryPointArn":{
@ -4630,7 +5194,7 @@
},
"IamRoleArn":{
"shape":"IAMRoleArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that Backup uses to create the target recovery point; for example, <code>arn:aws:iam::123456789012:role/S3Access</code>.</p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the IAM role that Backup uses to create the target resource; for example: <code>arn:aws:iam::123456789012:role/S3Access</code>.</p>"
},
"IdempotencyToken":{
"shape":"string",
@ -4804,7 +5368,7 @@
},
"CreationTime":{
"shape":"timestamp",
"documentation":"<p>The date and time that a framework is created, in Unix format and Coordinated Universal Time (UTC). The value of <code>CreationTime</code> is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.</p>"
"documentation":"<p>The date and time that a framework is created, in ISO 8601 representation. The value of <code>CreationTime</code> is accurate to milliseconds. For example, 2020-07-10T15:00:00.000-08:00 represents the 10th of July 2020 at 3:00 PM 8 hours behind UTC.</p>"
}
}
},
@ -4855,7 +5419,7 @@
},
"Lifecycle":{
"shape":"Lifecycle",
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
"documentation":"<p>The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.</p> <p>Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.</p> <p>Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource\"> Feature availability by resource</a> table. Backup ignores this expression for other resource types.</p>"
},
"CalculatedLifecycle":{
"shape":"CalculatedLifecycle",
@ -4922,6 +5486,10 @@
}
}
},
"VaultNames":{
"type":"list",
"member":{"shape":"string"}
},
"WindowMinutes":{"type":"long"},
"boolean":{"type":"boolean"},
"integer":{"type":"integer"},

View file

@ -0,0 +1,309 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backupstorage-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backupstorage-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://backupstorage.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://backupstorage.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -0,0 +1,3 @@
{
"pagination": {}
}

View file

@ -0,0 +1,924 @@
{
"version":"2.0",
"metadata":{
"apiVersion":"2018-04-10",
"endpointPrefix":"backupstorage",
"jsonVersion":"1.1",
"protocol":"rest-json",
"serviceFullName":"AWS Backup Storage",
"serviceId":"BackupStorage",
"signatureVersion":"v4",
"signingName":"backup-storage",
"uid":"backupstorage-2018-04-10"
},
"operations":{
"DeleteObject":{
"name":"DeleteObject",
"http":{
"method":"DELETE",
"requestUri":"/backup-jobs/{jobId}/object/{objectName}"
},
"input":{"shape":"DeleteObjectInput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ServiceInternalException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"},
{"shape":"AccessDeniedException"}
],
"documentation":"Delete Object from the incremental base Backup."
},
"GetChunk":{
"name":"GetChunk",
"http":{
"method":"GET",
"requestUri":"/restore-jobs/{jobId}/chunk/{chunkToken}"
},
"input":{"shape":"GetChunkInput"},
"output":{"shape":"GetChunkOutput"},
"errors":[
{"shape":"IllegalArgumentException"},
{"shape":"RetryableException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ServiceInternalException"},
{"shape":"ThrottlingException"},
{"shape":"KMSInvalidKeyUsageException"},
{"shape":"AccessDeniedException"}
],
"documentation":"Gets the specified object's chunk."
},
"GetObjectMetadata":{
"name":"GetObjectMetadata",
"http":{
"method":"GET",
"requestUri":"/restore-jobs/{jobId}/object/{objectToken}/metadata"
},
"input":{"shape":"GetObjectMetadataInput"},
"output":{"shape":"GetObjectMetadataOutput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ServiceInternalException"},
{"shape":"ResourceNotFoundException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"ThrottlingException"},
{"shape":"KMSInvalidKeyUsageException"},
{"shape":"AccessDeniedException"}
],
"documentation":"Get metadata associated with an Object."
},
"ListChunks":{
"name":"ListChunks",
"http":{
"method":"GET",
"requestUri":"/restore-jobs/{jobId}/chunks/{objectToken}/list"
},
"input":{"shape":"ListChunksInput"},
"output":{"shape":"ListChunksOutput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ServiceInternalException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"AccessDeniedException"}
],
"documentation":"List chunks in a given Object"
},
"ListObjects":{
"name":"ListObjects",
"http":{
"method":"GET",
"requestUri":"/restore-jobs/{jobId}/objects/list"
},
"input":{"shape":"ListObjectsInput"},
"output":{"shape":"ListObjectsOutput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ServiceInternalException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"ThrottlingException"},
{"shape":"ResourceNotFoundException"},
{"shape":"KMSInvalidKeyUsageException"},
{"shape":"AccessDeniedException"}
],
"documentation":"List all Objects in a given Backup."
},
"NotifyObjectComplete":{
"name":"NotifyObjectComplete",
"http":{
"method":"PUT",
"requestUri":"/backup-jobs/{jobId}/object/{uploadId}/complete"
},
"input":{"shape":"NotifyObjectCompleteInput"},
"output":{"shape":"NotifyObjectCompleteOutput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ServiceInternalException"},
{"shape":"NotReadableInputStreamException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"ThrottlingException"},
{"shape":"KMSInvalidKeyUsageException"},
{"shape":"AccessDeniedException"}
],
"documentation":"Complete upload",
"authtype":"v4-unsigned-body"
},
"PutChunk":{
"name":"PutChunk",
"http":{
"method":"PUT",
"requestUri":"/backup-jobs/{jobId}/chunk/{uploadId}/{chunkIndex}"
},
"input":{"shape":"PutChunkInput"},
"output":{"shape":"PutChunkOutput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ServiceInternalException"},
{"shape":"NotReadableInputStreamException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"ThrottlingException"},
{"shape":"KMSInvalidKeyUsageException"},
{"shape":"AccessDeniedException"}
],
"documentation":"Upload chunk.",
"authtype":"v4-unsigned-body"
},
"PutObject":{
"name":"PutObject",
"http":{
"method":"PUT",
"requestUri":"/backup-jobs/{jobId}/object/{objectName}/put-object"
},
"input":{"shape":"PutObjectInput"},
"output":{"shape":"PutObjectOutput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ServiceInternalException"},
{"shape":"NotReadableInputStreamException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"ThrottlingException"},
{"shape":"KMSInvalidKeyUsageException"},
{"shape":"AccessDeniedException"}
],
"documentation":"Upload object that can store object metadata String and data blob in single API call using inline chunk field.",
"authtype":"v4-unsigned-body"
},
"StartObject":{
"name":"StartObject",
"http":{
"method":"PUT",
"requestUri":"/backup-jobs/{jobId}/object/{objectName}"
},
"input":{"shape":"StartObjectInput"},
"output":{"shape":"StartObjectOutput"},
"errors":[
{"shape":"ServiceUnavailableException"},
{"shape":"ServiceInternalException"},
{"shape":"RetryableException"},
{"shape":"IllegalArgumentException"},
{"shape":"ResourceNotFoundException"},
{"shape":"DataAlreadyExistsException"},
{"shape":"ThrottlingException"},
{"shape":"AccessDeniedException"}
],
"documentation":"Start upload containing one or many chunks."
}
},
"shapes":{
"AccessDeniedException":{
"type":"structure",
"members":{
"Message":{"shape":"ServiceErrorMessage"}
},
"error":{"httpStatusCode":403},
"exception":true,
"synthetic":true
},
"BackupObject":{
"type":"structure",
"required":[
"Name",
"ObjectChecksum",
"ObjectChecksumAlgorithm",
"ObjectToken"
],
"members":{
"Name":{
"shape":"string",
"documentation":"Object name"
},
"ChunksCount":{
"shape":"OptionalLong",
"documentation":"Number of chunks in object"
},
"MetadataString":{
"shape":"string",
"documentation":"Metadata string associated with the Object"
},
"ObjectChecksum":{
"shape":"string",
"documentation":"Object checksum"
},
"ObjectChecksumAlgorithm":{
"shape":"SummaryChecksumAlgorithm",
"documentation":"Checksum algorithm"
},
"ObjectToken":{
"shape":"string",
"documentation":"Object token"
}
},
"documentation":"Object"
},
"Chunk":{
"type":"structure",
"required":[
"Index",
"Length",
"Checksum",
"ChecksumAlgorithm",
"ChunkToken"
],
"members":{
"Index":{
"shape":"long",
"documentation":"Chunk index"
},
"Length":{
"shape":"long",
"documentation":"Chunk length"
},
"Checksum":{
"shape":"string",
"documentation":"Chunk checksum"
},
"ChecksumAlgorithm":{
"shape":"DataChecksumAlgorithm",
"documentation":"Checksum algorithm"
},
"ChunkToken":{
"shape":"string",
"documentation":"Chunk token"
}
},
"documentation":"Chunk"
},
"ChunkList":{
"type":"list",
"member":{"shape":"Chunk"}
},
"DataAlreadyExistsException":{
"type":"structure",
"members":{
"Message":{"shape":"string"},
"Checksum":{
"shape":"string",
"documentation":"Data checksum used"
},
"ChecksumAlgorithm":{
"shape":"string",
"documentation":"Checksum algorithm used"
}
},
"documentation":"Non-retryable exception. Attempted to create already existing object or chunk. This message contains a checksum of already presented data.",
"error":{"httpStatusCode":400},
"exception":true
},
"DataChecksumAlgorithm":{
"type":"string",
"enum":["SHA256"]
},
"DeleteObjectInput":{
"type":"structure",
"required":[
"BackupJobId",
"ObjectName"
],
"members":{
"BackupJobId":{
"shape":"string",
"documentation":"Backup job Id for the in-progress backup.",
"location":"uri",
"locationName":"jobId"
},
"ObjectName":{
"shape":"string",
"documentation":"The name of the Object.",
"location":"uri",
"locationName":"objectName"
}
}
},
"GetChunkInput":{
"type":"structure",
"required":[
"StorageJobId",
"ChunkToken"
],
"members":{
"StorageJobId":{
"shape":"string",
"documentation":"Storage job id",
"location":"uri",
"locationName":"jobId"
},
"ChunkToken":{
"shape":"string",
"documentation":"Chunk token",
"location":"uri",
"locationName":"chunkToken"
}
}
},
"GetChunkOutput":{
"type":"structure",
"required":[
"Data",
"Length",
"Checksum",
"ChecksumAlgorithm"
],
"members":{
"Data":{
"shape":"PayloadBlob",
"documentation":"Chunk data"
},
"Length":{
"shape":"long",
"documentation":"Data length",
"location":"header",
"locationName":"x-amz-data-length"
},
"Checksum":{
"shape":"string",
"documentation":"Data checksum",
"location":"header",
"locationName":"x-amz-checksum"
},
"ChecksumAlgorithm":{
"shape":"DataChecksumAlgorithm",
"documentation":"Checksum algorithm",
"location":"header",
"locationName":"x-amz-checksum-algorithm"
}
},
"payload":"Data"
},
"GetObjectMetadataInput":{
"type":"structure",
"required":[
"StorageJobId",
"ObjectToken"
],
"members":{
"StorageJobId":{
"shape":"string",
"documentation":"Backup job id for the in-progress backup.",
"location":"uri",
"locationName":"jobId"
},
"ObjectToken":{
"shape":"string",
"documentation":"Object token.",
"location":"uri",
"locationName":"objectToken"
}
}
},
"GetObjectMetadataOutput":{
"type":"structure",
"members":{
"MetadataString":{
"shape":"string",
"documentation":"Metadata string.",
"location":"header",
"locationName":"x-amz-metadata-string"
},
"MetadataBlob":{
"shape":"PayloadBlob",
"documentation":"Metadata blob."
},
"MetadataBlobLength":{
"shape":"long",
"documentation":"The size of MetadataBlob.",
"location":"header",
"locationName":"x-amz-data-length"
},
"MetadataBlobChecksum":{
"shape":"string",
"documentation":"MetadataBlob checksum.",
"location":"header",
"locationName":"x-amz-checksum"
},
"MetadataBlobChecksumAlgorithm":{
"shape":"DataChecksumAlgorithm",
"documentation":"Checksum algorithm.",
"location":"header",
"locationName":"x-amz-checksum-algorithm"
}
},
"payload":"MetadataBlob"
},
"IllegalArgumentException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Non-retryable exception, indicates client error (wrong argument passed to API). See exception message for details.",
"error":{"httpStatusCode":400},
"exception":true
},
"KMSInvalidKeyUsageException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Non-retryable exception. Indicates the KMS key usage is incorrect. See exception message for details.",
"error":{"httpStatusCode":400},
"exception":true
},
"ListChunksInput":{
"type":"structure",
"required":[
"StorageJobId",
"ObjectToken"
],
"members":{
"StorageJobId":{
"shape":"string",
"documentation":"Storage job id",
"location":"uri",
"locationName":"jobId"
},
"ObjectToken":{
"shape":"string",
"documentation":"Object token",
"location":"uri",
"locationName":"objectToken"
},
"MaxResults":{
"shape":"MaxResults",
"documentation":"Maximum number of chunks",
"location":"querystring",
"locationName":"max-results"
},
"NextToken":{
"shape":"string",
"documentation":"Pagination token",
"location":"querystring",
"locationName":"next-token"
}
}
},
"ListChunksOutput":{
"type":"structure",
"required":["ChunkList"],
"members":{
"ChunkList":{
"shape":"ChunkList",
"documentation":"List of chunks"
},
"NextToken":{
"shape":"string",
"documentation":"Pagination token"
}
}
},
"ListObjectsInput":{
"type":"structure",
"required":["StorageJobId"],
"members":{
"StorageJobId":{
"shape":"string",
"documentation":"Storage job id",
"location":"uri",
"locationName":"jobId"
},
"StartingObjectName":{
"shape":"string",
"documentation":"Optional, specifies the starting Object name to list from. Ignored if NextToken is not NULL",
"location":"querystring",
"locationName":"starting-object-name"
},
"StartingObjectPrefix":{
"shape":"string",
"documentation":"Optional, specifies the starting Object prefix to list from. Ignored if NextToken is not NULL",
"location":"querystring",
"locationName":"starting-object-prefix"
},
"MaxResults":{
"shape":"MaxResults",
"documentation":"Maximum objects count",
"location":"querystring",
"locationName":"max-results"
},
"NextToken":{
"shape":"string",
"documentation":"Pagination token",
"location":"querystring",
"locationName":"next-token"
},
"CreatedBefore":{
"shape":"timestamp",
"documentation":"(Optional) Created before filter",
"location":"querystring",
"locationName":"created-before"
},
"CreatedAfter":{
"shape":"timestamp",
"documentation":"(Optional) Created after filter",
"location":"querystring",
"locationName":"created-after"
}
}
},
"ListObjectsOutput":{
"type":"structure",
"required":["ObjectList"],
"members":{
"ObjectList":{
"shape":"ObjectList",
"documentation":"Object list"
},
"NextToken":{
"shape":"string",
"documentation":"Pagination token"
}
}
},
"MaxResults":{
"type":"integer",
"max":100,
"min":1
},
"MetadataString":{
"type":"string",
"pattern":"^.{1,256}$"
},
"NotReadableInputStreamException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Retryalble exception. Indicated issues while reading an input stream due to the networking issues or connection drop on the client side.",
"error":{"httpStatusCode":400},
"exception":true
},
"NotifyObjectCompleteInput":{
"type":"structure",
"required":[
"BackupJobId",
"UploadId",
"ObjectChecksum",
"ObjectChecksumAlgorithm"
],
"members":{
"BackupJobId":{
"shape":"string",
"documentation":"Backup job Id for the in-progress backup",
"location":"uri",
"locationName":"jobId"
},
"UploadId":{
"shape":"string",
"documentation":"Upload Id for the in-progress upload",
"location":"uri",
"locationName":"uploadId"
},
"ObjectChecksum":{
"shape":"string",
"documentation":"Object checksum",
"location":"querystring",
"locationName":"checksum"
},
"ObjectChecksumAlgorithm":{
"shape":"SummaryChecksumAlgorithm",
"documentation":"Checksum algorithm",
"location":"querystring",
"locationName":"checksum-algorithm"
},
"MetadataString":{
"shape":"MetadataString",
"documentation":"Optional metadata associated with an Object. Maximum string length is 256 bytes.",
"location":"querystring",
"locationName":"metadata-string"
},
"MetadataBlob":{
"shape":"PayloadBlob",
"documentation":"Optional metadata associated with an Object. Maximum length is 4MB."
},
"MetadataBlobLength":{
"shape":"long",
"documentation":"The size of MetadataBlob.",
"location":"querystring",
"locationName":"metadata-blob-length"
},
"MetadataBlobChecksum":{
"shape":"string",
"documentation":"Checksum of MetadataBlob.",
"location":"querystring",
"locationName":"metadata-checksum"
},
"MetadataBlobChecksumAlgorithm":{
"shape":"DataChecksumAlgorithm",
"documentation":"Checksum algorithm.",
"location":"querystring",
"locationName":"metadata-checksum-algorithm"
}
},
"payload":"MetadataBlob"
},
"NotifyObjectCompleteOutput":{
"type":"structure",
"required":[
"ObjectChecksum",
"ObjectChecksumAlgorithm"
],
"members":{
"ObjectChecksum":{
"shape":"string",
"documentation":"Object checksum"
},
"ObjectChecksumAlgorithm":{
"shape":"SummaryChecksumAlgorithm",
"documentation":"Checksum algorithm"
}
}
},
"ObjectList":{
"type":"list",
"member":{"shape":"BackupObject"}
},
"OptionalLong":{"type":"long"},
"PayloadBlob":{
"type":"blob",
"streaming":true
},
"PutChunkInput":{
"type":"structure",
"required":[
"BackupJobId",
"UploadId",
"ChunkIndex",
"Data",
"Length",
"Checksum",
"ChecksumAlgorithm"
],
"members":{
"BackupJobId":{
"shape":"string",
"documentation":"Backup job Id for the in-progress backup.",
"location":"uri",
"locationName":"jobId"
},
"UploadId":{
"shape":"string",
"documentation":"Upload Id for the in-progress upload.",
"location":"uri",
"locationName":"uploadId"
},
"ChunkIndex":{
"shape":"long",
"documentation":"Describes this chunk's position relative to the other chunks",
"location":"uri",
"locationName":"chunkIndex"
},
"Data":{
"shape":"PayloadBlob",
"documentation":"Data to be uploaded"
},
"Length":{
"shape":"long",
"documentation":"Data length",
"location":"querystring",
"locationName":"length"
},
"Checksum":{
"shape":"string",
"documentation":"Data checksum",
"location":"querystring",
"locationName":"checksum"
},
"ChecksumAlgorithm":{
"shape":"DataChecksumAlgorithm",
"documentation":"Checksum algorithm",
"location":"querystring",
"locationName":"checksum-algorithm"
}
},
"payload":"Data"
},
"PutChunkOutput":{
"type":"structure",
"required":[
"ChunkChecksum",
"ChunkChecksumAlgorithm"
],
"members":{
"ChunkChecksum":{
"shape":"string",
"documentation":"Chunk checksum"
},
"ChunkChecksumAlgorithm":{
"shape":"DataChecksumAlgorithm",
"documentation":"Checksum algorithm"
}
}
},
"PutObjectInput":{
"type":"structure",
"required":[
"BackupJobId",
"ObjectName"
],
"members":{
"BackupJobId":{
"shape":"string",
"documentation":"Backup job Id for the in-progress backup.",
"location":"uri",
"locationName":"jobId"
},
"ObjectName":{
"shape":"string",
"documentation":"The name of the Object to be uploaded.",
"location":"uri",
"locationName":"objectName"
},
"MetadataString":{
"shape":"string",
"documentation":"Store user defined metadata like backup checksum, disk ids, restore metadata etc.",
"location":"querystring",
"locationName":"metadata-string"
},
"InlineChunk":{
"shape":"PayloadBlob",
"documentation":"Inline chunk data to be uploaded."
},
"InlineChunkLength":{
"shape":"long",
"documentation":"Length of the inline chunk data.",
"location":"querystring",
"locationName":"length"
},
"InlineChunkChecksum":{
"shape":"string",
"documentation":"Inline chunk checksum",
"location":"querystring",
"locationName":"checksum"
},
"InlineChunkChecksumAlgorithm":{
"shape":"string",
"documentation":"Inline chunk checksum algorithm",
"location":"querystring",
"locationName":"checksum-algorithm"
},
"ObjectChecksum":{
"shape":"string",
"documentation":"object checksum",
"location":"querystring",
"locationName":"object-checksum"
},
"ObjectChecksumAlgorithm":{
"shape":"SummaryChecksumAlgorithm",
"documentation":"object checksum algorithm",
"location":"querystring",
"locationName":"object-checksum-algorithm"
},
"ThrowOnDuplicate":{
"shape":"boolean",
"documentation":"Throw an exception if Object name is already exist.",
"location":"querystring",
"locationName":"throwOnDuplicate"
}
},
"payload":"InlineChunk"
},
"PutObjectOutput":{
"type":"structure",
"required":[
"InlineChunkChecksum",
"InlineChunkChecksumAlgorithm",
"ObjectChecksum",
"ObjectChecksumAlgorithm"
],
"members":{
"InlineChunkChecksum":{
"shape":"string",
"documentation":"Inline chunk checksum"
},
"InlineChunkChecksumAlgorithm":{
"shape":"DataChecksumAlgorithm",
"documentation":"Inline chunk checksum algorithm"
},
"ObjectChecksum":{
"shape":"string",
"documentation":"object checksum"
},
"ObjectChecksumAlgorithm":{
"shape":"SummaryChecksumAlgorithm",
"documentation":"object checksum algorithm"
}
}
},
"ResourceNotFoundException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Non-retryable exception. Attempted to make an operation on non-existing or expired resource.",
"error":{"httpStatusCode":404},
"exception":true
},
"RetryableException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Retryable exception. In general indicates internal failure that can be fixed by retry.",
"error":{"httpStatusCode":500},
"exception":true
},
"ServiceErrorMessage":{"type":"string"},
"ServiceInternalException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Deprecated. To be removed from the model.",
"error":{"httpStatusCode":500},
"exception":true,
"fault":true
},
"ServiceUnavailableException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Retryable exception, indicates internal server error.",
"error":{"httpStatusCode":503},
"exception":true,
"fault":true
},
"StartObjectInput":{
"type":"structure",
"required":[
"BackupJobId",
"ObjectName"
],
"members":{
"BackupJobId":{
"shape":"string",
"documentation":"Backup job Id for the in-progress backup",
"location":"uri",
"locationName":"jobId"
},
"ObjectName":{
"shape":"string",
"documentation":"Name for the object.",
"location":"uri",
"locationName":"objectName"
},
"ThrowOnDuplicate":{
"shape":"boolean",
"documentation":"Throw an exception if Object name is already exist."
}
}
},
"StartObjectOutput":{
"type":"structure",
"required":["UploadId"],
"members":{
"UploadId":{
"shape":"string",
"documentation":"Upload Id for a given upload."
}
}
},
"SummaryChecksumAlgorithm":{
"type":"string",
"enum":["SUMMARY"]
},
"ThrottlingException":{
"type":"structure",
"members":{
"Message":{"shape":"string"}
},
"documentation":"Increased rate over throttling limits. Can be retried with exponential backoff.",
"error":{"httpStatusCode":429},
"exception":true
},
"boolean":{"type":"boolean"},
"long":{"type":"long"},
"string":{"type":"string"},
"timestamp":{"type":"timestamp"}
},
"documentation":"The frontend service for Cryo Storage."
}

View file

@ -0,0 +1,365 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": false,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://batch-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
"aws",
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
}
]
}
],
"endpoint": {
"url": "https://fips.batch.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
"aws-us-gov",
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
}
]
}
],
"endpoint": {
"url": "https://batch.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [],
"endpoint": {
"url": "https://batch-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://batch.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://batch.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}

View file

@ -298,14 +298,22 @@
],
"image": "busybox",
"memory": 128,
"mountPoints": [
],
"resourceRequirements": [
{
"type": "MEMORY",
"value": "128"
},
{
"type": "VCPU",
"value": "1"
}
],
"ulimits": [
],
"vcpus": 1,
"volumes": [
]
@ -471,6 +479,29 @@
"title": "To list submitted jobs"
}
],
"ListTagsForResource": [
{
"input": {
"resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1"
},
"output": {
"tags": {
"Department": "Engineering",
"Stage": "Alpha",
"User": "JaneDoe"
}
},
"comments": {
"input": {
},
"output": {
}
},
"description": "This demonstrates calling the ListTagsForResource action.",
"id": "listtagsforresource-example-1591293003710",
"title": "ListTagsForResource Example"
}
],
"RegisterJobDefinition": [
{
"input": {
@ -481,8 +512,16 @@
"10"
],
"image": "busybox",
"memory": 128,
"vcpus": 1
"resourceRequirements": [
{
"type": "MEMORY",
"value": "128"
},
{
"type": "VCPU",
"value": "1"
}
]
},
"jobDefinitionName": "sleep10"
},
@ -500,6 +539,47 @@
"description": "This example registers a job definition for a simple container job.",
"id": "to-register-a-job-definition-1481154325325",
"title": "To register a job definition"
},
{
"input": {
"type": "container",
"containerProperties": {
"command": [
"sleep",
"30"
],
"image": "busybox",
"resourceRequirements": [
{
"type": "MEMORY",
"value": "128"
},
{
"type": "VCPU",
"value": "1"
}
]
},
"jobDefinitionName": "sleep30",
"tags": {
"Department": "Engineering",
"User": "JaneDoe"
}
},
"output": {
"jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1",
"jobDefinitionName": "sleep30",
"revision": 1
},
"comments": {
"input": {
},
"output": {
}
},
"description": "This demonstrates calling the RegisterJobDefinition action, including tags.",
"id": "registerjobdefinition-with-tags-1591290509028",
"title": "RegisterJobDefinition with tags"
}
],
"SubmitJob": [
@ -524,6 +604,27 @@
"title": "To submit a job to a queue"
}
],
"TagResource": [
{
"input": {
"resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1",
"tags": {
"Stage": "Alpha"
}
},
"output": {
},
"comments": {
"input": {
},
"output": {
}
},
"description": "This demonstrates calling the TagResource action.",
"id": "tagresource-example-1591291959952",
"title": "TagResource Example"
}
],
"TerminateJob": [
{
"input": {
@ -543,6 +644,27 @@
"title": "To terminate a job"
}
],
"UntagResource": [
{
"input": {
"resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1",
"tagKeys": [
"Stage"
]
},
"output": {
},
"comments": {
"input": {
},
"output": {
}
},
"description": "This demonstrates calling the UntagResource action.",
"id": "untagresource-example-1591292811042",
"title": "UntagResource Example"
}
],
"UpdateComputeEnvironment": [
{
"input": {

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,591 @@
{
"version": "1.0",
"parameters": {
"Region": {
"builtIn": "AWS::Region",
"required": true,
"documentation": "The AWS region used to dispatch the request.",
"type": "String"
},
"UseDualStack": {
"builtIn": "AWS::UseDualStack",
"required": true,
"default": false,
"documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
"type": "Boolean"
},
"UseFIPS": {
"builtIn": "AWS::UseFIPS",
"required": true,
"default": false,
"documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.",
"type": "Boolean"
},
"Endpoint": {
"builtIn": "SDK::Endpoint",
"required": false,
"documentation": "Override the endpoint used to send this request",
"type": "String"
}
},
"rules": [
{
"conditions": [
{
"fn": "aws.partition",
"argv": [
{
"ref": "Region"
}
],
"assign": "PartitionResult"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "isSet",
"argv": [
{
"ref": "Endpoint"
}
]
},
{
"fn": "parseURL",
"argv": [
{
"ref": "Endpoint"
}
],
"assign": "url"
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"error": "Invalid Configuration: FIPS and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
"type": "error"
},
{
"conditions": [],
"endpoint": {
"url": {
"ref": "Endpoint"
},
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"name"
]
},
"aws"
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor-fips.{Region}.api.aws",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingRegion": "us-east-1",
"signingName": "billingconductor"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor-fips.{Region}.amazonaws.com",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingRegion": "us-east-1",
"signingName": "billingconductor"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor.{Region}.api.aws",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingRegion": "us-east-1",
"signingName": "billingconductor"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor.us-east-1.amazonaws.com",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingRegion": "us-east-1",
"signingName": "billingconductor"
}
]
},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
},
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
},
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "FIPS and DualStack are enabled, but this partition does not support one or both",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseFIPS"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsFIPS"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor-fips.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
},
{
"conditions": [],
"error": "FIPS is enabled but this partition does not support FIPS",
"type": "error"
}
]
},
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
{
"ref": "UseDualStack"
},
true
]
}
],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "booleanEquals",
"argv": [
true,
{
"fn": "getAttr",
"argv": [
{
"ref": "PartitionResult"
},
"supportsDualStack"
]
}
]
}
],
"type": "tree",
"rules": [
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor.{Region}.{PartitionResult#dualStackDnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
},
{
"conditions": [],
"error": "DualStack is enabled but this partition does not support DualStack",
"type": "error"
}
]
},
{
"conditions": [],
"type": "tree",
"rules": [
{
"conditions": [
{
"fn": "stringEquals",
"argv": [
{
"ref": "Region"
},
"aws-global"
]
}
],
"endpoint": {
"url": "https://billingconductor.us-east-1.amazonaws.com",
"properties": {
"authSchemes": [
{
"name": "sigv4",
"signingRegion": "us-east-1",
"signingName": "billingconductor"
}
]
},
"headers": {}
},
"type": "endpoint"
},
{
"conditions": [],
"endpoint": {
"url": "https://billingconductor.{Region}.{PartitionResult#dnsSuffix}",
"properties": {},
"headers": {}
},
"type": "endpoint"
}
]
}
]
}
]
}

View file

@ -0,0 +1,5 @@
{
"version": "1.0",
"examples": {
}
}

View file

@ -69,6 +69,12 @@
],
"output_token": "NextToken",
"result_key": "AssociatedResources"
},
"ListCustomLineItemVersions": {
"input_token": "NextToken",
"limit_key": "MaxResults",
"output_token": "NextToken",
"result_key": "CustomLineItemVersions"
}
}
}

View file

@ -247,7 +247,7 @@
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
],
"documentation":"<p> Deletes the pricing rule identified by the input Amazon Resource Name (ARN). </p>",
"documentation":"<p> Deletes the pricing rule that's identified by the input Amazon Resource Name (ARN). </p>",
"idempotent":true
},
"DisassociateAccounts":{
@ -306,7 +306,7 @@
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p> <i> <b>Amazon Web Services Billing Conductor is in beta release and is subject to change. Your use of Amazon Web Services Billing Conductor is subject to the Beta Service Participation terms of the <a href=\"https://aws.amazon.com/service-terms/\">Amazon Web Services Service Terms</a> (Section 1.10).</b> </i> </p> <p> This is a paginated call to list linked accounts that are linked to the payer account for the specified time period. If no information is provided, the current billing period is used. The response will optionally include the billing group associated with the linked account.</p>"
"documentation":"<p> This is a paginated call to list linked accounts that are linked to the payer account for the specified time period. If no information is provided, the current billing period is used. The response will optionally include the billing group that's associated with the linked account.</p>"
},
"ListBillingGroupCostReports":{
"name":"ListBillingGroupCostReports",
@ -344,6 +344,23 @@
],
"documentation":"<p>A paginated call to retrieve a list of billing groups for the given billing period. If you don't provide a billing group, the current billing period is used.</p>"
},
"ListCustomLineItemVersions":{
"name":"ListCustomLineItemVersions",
"http":{
"method":"POST",
"requestUri":"/list-custom-line-item-versions",
"responseCode":200
},
"input":{"shape":"ListCustomLineItemVersionsInput"},
"output":{"shape":"ListCustomLineItemVersionsOutput"},
"errors":[
{"shape":"ThrottlingException"},
{"shape":"AccessDeniedException"},
{"shape":"ValidationException"},
{"shape":"InternalServerException"}
],
"documentation":"<p>A paginated call to get a list of all custom line item versions.</p>"
},
"ListCustomLineItems":{
"name":"ListCustomLineItems",
"http":{
@ -395,7 +412,7 @@
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p> A list of the pricing plans associated with a pricing rule. </p>"
"documentation":"<p> A list of the pricing plans that are associated with a pricing rule. </p>"
},
"ListPricingRules":{
"name":"ListPricingRules",
@ -430,7 +447,7 @@
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p> Lists the pricing rules associated with a pricing plan. </p>"
"documentation":"<p> Lists the pricing rules that are associated with a pricing plan. </p>"
},
"ListResourcesAssociatedToCustomLineItem":{
"name":"ListResourcesAssociatedToCustomLineItem",
@ -448,7 +465,7 @@
{"shape":"InternalServerException"},
{"shape":"ResourceNotFoundException"}
],
"documentation":"<p> List the resources associated to a custom line item. </p>"
"documentation":"<p> List the resources that are associated to a custom line item. </p>"
},
"ListTagsForResource":{
"name":"ListTagsForResource",
@ -623,7 +640,7 @@
"documentation":"<p> The Amazon Web Services account email. </p>"
}
},
"documentation":"<p> <i> <b>Amazon Web Services Billing Conductor is in beta release and is subject to change. Your use of Amazon Web Services Billing Conductor is subject to the Beta Service Participation terms of the <a href=\"https://aws.amazon.com/service-terms/\">Amazon Web Services Service Terms</a> (Section 1.10).</b> </i> </p> <p> A representation of a linked account. </p>"
"documentation":"<p> A representation of a linked account. </p>"
},
"AccountEmail":{
"type":"string",
@ -717,11 +734,11 @@
"members":{
"Message":{
"shape":"String",
"documentation":"<p> The reason the resource association failed. </p>"
"documentation":"<p> The reason why the resource association failed. </p>"
},
"Reason":{
"shape":"AssociateResourceErrorReason",
"documentation":"<p> A static error code that used to classify the type of failure. </p>"
"documentation":"<p> A static error code that's used to classify the type of failure. </p>"
}
},
"documentation":"<p> A representation of a resource association error. </p>"
@ -732,14 +749,15 @@
"INVALID_ARN",
"SERVICE_LIMIT_EXCEEDED",
"ILLEGAL_CUSTOMLINEITEM",
"INTERNAL_SERVER_EXCEPTION"
"INTERNAL_SERVER_EXCEPTION",
"INVALID_BILLING_PERIOD_RANGE"
]
},
"AssociateResourceResponseElement":{
"type":"structure",
"members":{
"Arn":{
"shape":"CustomLineItemArn",
"shape":"CustomLineItemAssociationElement",
"documentation":"<p> The resource ARN that was associated to the custom line item. </p>"
},
"Error":{
@ -755,7 +773,7 @@
},
"Association":{
"type":"string",
"pattern":"((arn:aws:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}|MONITORED|UNMONITORED)"
"pattern":"((arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}|MONITORED|UNMONITORED)"
},
"BatchAssociateResourcesToCustomLineItemInput":{
"type":"structure",
@ -819,9 +837,13 @@
}
}
},
"BillingEntity":{
"type":"string",
"pattern":"[a-zA-Z0-9 ]+"
},
"BillingGroupArn":{
"type":"string",
"pattern":"(arn:aws:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}"
"pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}"
},
"BillingGroupArnList":{
"type":"list",
@ -871,7 +893,7 @@
},
"BillingGroupFullArn":{
"type":"string",
"pattern":"arn:aws:billingconductor::[0-9]{12}:billinggroup/[0-9]{12}"
"pattern":"arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/[0-9]{12}"
},
"BillingGroupList":{
"type":"list",
@ -882,7 +904,7 @@
"members":{
"Name":{
"shape":"BillingGroupName",
"documentation":"<p>The billing group's name. </p>"
"documentation":"<p>The name of the billing group. </p>"
},
"Arn":{
"shape":"BillingGroupArn",
@ -890,7 +912,7 @@
},
"Description":{
"shape":"BillingGroupDescription",
"documentation":"<p>The billing group description. </p>"
"documentation":"<p>The description of the billing group. </p>"
},
"PrimaryAccountId":{
"shape":"AccountId",
@ -903,11 +925,11 @@
},
"CreationTime":{
"shape":"Instant",
"documentation":"<p> The time the billing group was created. </p>"
"documentation":"<p> The time when the billing group was created. </p>"
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the billing group was modified. </p>"
"documentation":"<p> The most recent time when the billing group was modified. </p>"
},
"Status":{
"shape":"BillingGroupStatus",
@ -951,7 +973,7 @@
"members":{
"PricingPlanArn":{
"shape":"PricingPlanFullArn",
"documentation":"<p> The Amazon Resource Name (ARN) of the pricing plan used to compute the Amazon Web Services charges for a billing group. </p>"
"documentation":"<p> The Amazon Resource Name (ARN) of the pricing plan that's used to compute the Amazon Web Services charges for a billing group. </p>"
}
},
"documentation":"<p> The preferences and settings that will be used to compute the Amazon Web Services charges for a billing group. </p>"
@ -972,6 +994,10 @@
"ResourceType":{
"shape":"String",
"documentation":"<p>Type of the resource in use. </p>"
},
"Reason":{
"shape":"ConflictExceptionReason",
"documentation":"<p>Reason for the inconsistent state. </p>"
}
},
"documentation":"<p>You can cause an inconsistent state by updating or deleting a resource. </p>",
@ -981,6 +1007,16 @@
},
"exception":true
},
"ConflictExceptionReason":{
"type":"string",
"enum":[
"RESOURCE_NAME_CONFLICT",
"PRICING_RULE_IN_PRICING_PLAN_CONFLICT",
"PRICING_PLAN_ATTACHED_TO_BILLING_GROUP_DELETE_CONFLICT",
"PRICING_RULE_ATTACHED_TO_PRICING_PLAN_DELETE_CONFLICT",
"WRITE_CONFLICT_RETRY"
]
},
"CreateBillingGroupInput":{
"type":"structure",
"required":[
@ -1014,7 +1050,7 @@
},
"Description":{
"shape":"BillingGroupDescription",
"documentation":"<p>The billing group description. </p>"
"documentation":"<p>The description of the billing group. </p>"
},
"Tags":{
"shape":"TagMap",
@ -1082,6 +1118,17 @@
}
}
},
"CreateFreeTierConfig":{
"type":"structure",
"required":["Activated"],
"members":{
"Activated":{
"shape":"TieringActivated",
"documentation":"<p> Activate or deactivate Amazon Web Services Free Tier. </p>"
}
},
"documentation":"<p> The possible Amazon Web Services Free Tier configurations. </p>"
},
"CreatePricingPlanInput":{
"type":"structure",
"required":["Name"],
@ -1095,11 +1142,11 @@
},
"Name":{
"shape":"PricingPlanName",
"documentation":"<p>The pricing plan name. The names must be unique to each pricing plan. </p>"
"documentation":"<p>The name of the pricing plan. The names must be unique to each pricing plan. </p>"
},
"Description":{
"shape":"PricingPlanDescription",
"documentation":"<p>The pricing plan description. </p>"
"documentation":"<p>The description of the pricing plan. </p>"
},
"PricingRuleArns":{
"shape":"PricingRuleArnsInput",
@ -1125,13 +1172,12 @@
"required":[
"Name",
"Scope",
"Type",
"ModifierPercentage"
"Type"
],
"members":{
"ClientToken":{
"shape":"ClientToken",
"documentation":"<p> The token that is needed to support idempotency. Idempotency isn't currently supported, but will be implemented in a future update. </p>",
"documentation":"<p> The token that's needed to support idempotency. Idempotency isn't currently supported, but will be implemented in a future update. </p>",
"idempotencyToken":true,
"location":"header",
"locationName":"X-Amzn-Client-Token"
@ -1146,7 +1192,7 @@
},
"Scope":{
"shape":"PricingRuleScope",
"documentation":"<p> The scope of pricing rule that indicates if it is globally applicable, or is service-specific. </p>"
"documentation":"<p> The scope of pricing rule that indicates if it's globally applicable, or it's service-specific. </p>"
},
"Type":{
"shape":"PricingRuleType",
@ -1154,7 +1200,7 @@
},
"ModifierPercentage":{
"shape":"ModifierPercentage",
"documentation":"<p> A percentage modifier applied on the public pricing rates. </p>"
"documentation":"<p> A percentage modifier that's applied on the public pricing rates. </p>"
},
"Service":{
"shape":"Service",
@ -1163,6 +1209,14 @@
"Tags":{
"shape":"TagMap",
"documentation":"<p> A map that contains tag keys and tag values that are attached to a pricing rule. </p>"
},
"BillingEntity":{
"shape":"BillingEntity",
"documentation":"<p> The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace. </p>"
},
"Tiering":{
"shape":"CreateTieringInput",
"documentation":"<p> The set of tiering configurations for the pricing rule. </p>"
}
}
},
@ -1175,6 +1229,17 @@
}
}
},
"CreateTieringInput":{
"type":"structure",
"required":["FreeTier"],
"members":{
"FreeTier":{
"shape":"CreateFreeTierConfig",
"documentation":"<p> The possible Amazon Web Services Free Tier configurations. </p>"
}
},
"documentation":"<p> The set of tiering configurations for the pricing rule. </p>"
},
"Currency":{"type":"string"},
"CurrencyCode":{
"type":"string",
@ -1185,7 +1250,7 @@
},
"CustomLineItemArn":{
"type":"string",
"pattern":"(arn:aws:billingconductor::[0-9]{12}:customlineitem/)?[a-zA-Z0-9]{10}"
"pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:customlineitem/)?[a-zA-Z0-9]{10}"
},
"CustomLineItemArns":{
"type":"list",
@ -1195,7 +1260,7 @@
},
"CustomLineItemAssociationElement":{
"type":"string",
"pattern":"(arn:aws:billingconductor::[0-9]{12}:(customlineitem|billinggroup)/)?[a-zA-Z0-9]{10,12}"
"pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:(customlineitem|billinggroup)/)?[a-zA-Z0-9]{10,12}"
},
"CustomLineItemAssociationsList":{
"type":"list",
@ -1217,10 +1282,7 @@
},
"CustomLineItemBillingPeriodRange":{
"type":"structure",
"required":[
"InclusiveStartBillingPeriod",
"ExclusiveEndBillingPeriod"
],
"required":["InclusiveStartBillingPeriod"],
"members":{
"InclusiveStartBillingPeriod":{
"shape":"BillingPeriod",
@ -1273,7 +1335,7 @@
"documentation":"<p> The custom line item's fixed charge value in USD. </p>"
}
},
"documentation":"<p> A representation of the charge details associated with a flat custom line item. </p>"
"documentation":"<p> A representation of the charge details that are associated with a flat custom line item. </p>"
},
"CustomLineItemList":{
"type":"list",
@ -1304,7 +1366,7 @@
},
"ProductCode":{
"shape":"CustomLineItemProductCode",
"documentation":"<p> The product code associated with the custom line item. </p>"
"documentation":"<p> The product code that's associated with the custom line item. </p>"
},
"BillingGroupArn":{
"shape":"BillingGroupArn",
@ -1316,7 +1378,7 @@
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the custom line item was modified. </p>"
"documentation":"<p> The most recent time when the custom line item was modified. </p>"
},
"AssociationSize":{
"shape":"NumberOfAssociations",
@ -1351,7 +1413,7 @@
"documentation":"<p> A list of resource ARNs to associate to the percentage custom line item. </p>"
}
},
"documentation":"<p> A representation of the charge details associated with a percentage custom line item. </p>"
"documentation":"<p> A representation of the charge details that are associated with a percentage custom line item. </p>"
},
"CustomLineItemPercentageChargeValue":{
"type":"double",
@ -1378,13 +1440,64 @@
"FEE"
]
},
"CustomLineItemVersionList":{
"type":"list",
"member":{"shape":"CustomLineItemVersionListElement"}
},
"CustomLineItemVersionListElement":{
"type":"structure",
"members":{
"Name":{
"shape":"CustomLineItemName",
"documentation":"<p>The name of the custom line item.</p>"
},
"ChargeDetails":{"shape":"ListCustomLineItemChargeDetails"},
"CurrencyCode":{
"shape":"CurrencyCode",
"documentation":"<p>The charge value currency of the custom line item.</p>"
},
"Description":{
"shape":"CustomLineItemDescription",
"documentation":"<p>The description of the custom line item.</p>"
},
"ProductCode":{
"shape":"CustomLineItemProductCode",
"documentation":"<p>The product code thats associated with the custom line item.</p>"
},
"BillingGroupArn":{
"shape":"BillingGroupArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the billing group that the custom line item applies to.</p>"
},
"CreationTime":{
"shape":"Instant",
"documentation":"<p>The time when the custom line item version was created.</p>"
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p>The most recent time that the custom line item version was modified.</p>"
},
"AssociationSize":{
"shape":"NumberOfAssociations",
"documentation":"<p>The number of resources that are associated with the custom line item.</p>"
},
"StartBillingPeriod":{
"shape":"BillingPeriod",
"documentation":"<p>The start billing period of the custom line item version.</p>"
},
"EndBillingPeriod":{
"shape":"BillingPeriod",
"documentation":"<p>The end billing period of the custom line item version.</p>"
}
},
"documentation":"<p>A representation of a custom line item version.</p>"
},
"DeleteBillingGroupInput":{
"type":"structure",
"required":["Arn"],
"members":{
"Arn":{
"shape":"BillingGroupArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the billing group you're deleting.</p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the billing group that you're deleting.</p>"
}
}
},
@ -1423,7 +1536,7 @@
"members":{
"Arn":{
"shape":"PricingPlanArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the pricing plan you're deleting. </p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the pricing plan that you're deleting. </p>"
}
}
},
@ -1442,7 +1555,7 @@
"members":{
"Arn":{
"shape":"PricingRuleArn",
"documentation":"<p> The Amazon Resource Name (ARN) of the pricing rule you are deleting. </p>"
"documentation":"<p> The Amazon Resource Name (ARN) of the pricing rule that you are deleting. </p>"
}
}
},
@ -1511,12 +1624,12 @@
"type":"structure",
"members":{
"Arn":{
"shape":"CustomLineItemArn",
"shape":"CustomLineItemAssociationElement",
"documentation":"<p> The resource ARN that was disassociated from the custom line item. </p>"
},
"Error":{
"shape":"AssociateResourceError",
"documentation":"<p> An <code>AssociateResourceError</code> shown if the resource disassociation fails. </p>"
"documentation":"<p> An <code>AssociateResourceError</code> that's shown if the resource disassociation fails. </p>"
}
},
"documentation":"<p> A resource disassociation result for a percentage custom line item. </p>"
@ -1525,6 +1638,17 @@
"type":"list",
"member":{"shape":"DisassociateResourceResponseElement"}
},
"FreeTierConfig":{
"type":"structure",
"required":["Activated"],
"members":{
"Activated":{
"shape":"TieringActivated",
"documentation":"<p> Activate or deactivate Amazon Web Services Free Tier application. </p>"
}
},
"documentation":"<p> The possible Amazon Web Services Free Tier configurations. </p>"
},
"Instant":{"type":"long"},
"InternalServerException":{
"type":"structure",
@ -1566,11 +1690,11 @@
},
"Filters":{
"shape":"ListAccountAssociationsFilter",
"documentation":"<p>The filter on the account ID of the linked account, or any of the following:</p> <p> <code>MONITORED</code>: linked accounts that are associated to billing groups.</p> <p> <code>UNMONITORED</code>: linked accounts that are not associated to billing groups.</p> <p> <code>Billing Group Arn</code>: linked accounts that are associated to the provided billing group Arn. </p>"
"documentation":"<p>The filter on the account ID of the linked account, or any of the following:</p> <p> <code>MONITORED</code>: linked accounts that are associated to billing groups.</p> <p> <code>UNMONITORED</code>: linked accounts that aren't associated to billing groups.</p> <p> <code>Billing Group Arn</code>: linked accounts that are associated to the provided billing group Arn. </p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p> The pagination token used on subsequent calls to retrieve accounts. </p>"
"documentation":"<p> The pagination token that's used on subsequent calls to retrieve accounts. </p>"
}
}
},
@ -1583,7 +1707,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p> The pagination token used on subsequent calls to get accounts. </p>"
"documentation":"<p> The pagination token that's used on subsequent calls to get accounts. </p>"
}
}
},
@ -1610,7 +1734,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token used on subsequent calls to get reports. </p>"
"documentation":"<p>The pagination token that's used on subsequent calls to get reports. </p>"
},
"Filters":{
"shape":"ListBillingGroupCostReportsFilter",
@ -1627,7 +1751,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token used on subsequent calls to get reports. </p>"
"documentation":"<p>The pagination token that's used on subsequent calls to get reports. </p>"
}
}
},
@ -1658,7 +1782,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token used on subsequent calls to get billing groups. </p>"
"documentation":"<p>The pagination token that's used on subsequent calls to get billing groups. </p>"
},
"Filters":{
"shape":"ListBillingGroupsFilter",
@ -1675,7 +1799,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token used on subsequent calls to get billing groups. </p>"
"documentation":"<p>The pagination token that's used on subsequent calls to get billing groups. </p>"
}
}
},
@ -1707,7 +1831,7 @@
"documentation":"<p> The custom line item's fixed charge value in USD. </p>"
}
},
"documentation":"<p> A representation of the charge details associated with a flat custom line item. </p>"
"documentation":"<p> A representation of the charge details that are associated with a flat custom line item. </p>"
},
"ListCustomLineItemPercentageChargeDetails":{
"type":"structure",
@ -1718,7 +1842,66 @@
"documentation":"<p> The custom line item's percentage value. This will be multiplied against the combined value of its associated resources to determine its charge value. </p>"
}
},
"documentation":"<p> A representation of the charge details associated with a percentage custom line item. </p>"
"documentation":"<p> A representation of the charge details that are associated with a percentage custom line item. </p>"
},
"ListCustomLineItemVersionsBillingPeriodRangeFilter":{
"type":"structure",
"members":{
"StartBillingPeriod":{
"shape":"BillingPeriod",
"documentation":"<p>The inclusive start billing period that defines a billing period range where a custom line item version is applied.</p>"
},
"EndBillingPeriod":{
"shape":"BillingPeriod",
"documentation":"<p>The exclusive end billing period that defines a billing period range where a custom line item version is applied.</p>"
}
},
"documentation":"<p>A billing period filter that specifies the custom line item versions to retrieve.</p>"
},
"ListCustomLineItemVersionsFilter":{
"type":"structure",
"members":{
"BillingPeriodRange":{
"shape":"ListCustomLineItemVersionsBillingPeriodRangeFilter",
"documentation":"<p>The billing period range in which the custom line item version is applied.</p>"
}
},
"documentation":"<p>A filter that specifies the billing period range where the custom line item versions reside.</p>"
},
"ListCustomLineItemVersionsInput":{
"type":"structure",
"required":["Arn"],
"members":{
"Arn":{
"shape":"CustomLineItemArn",
"documentation":"<p>The Amazon Resource Name (ARN) for the custom line item.</p>"
},
"MaxResults":{
"shape":"MaxCustomLineItemResults",
"documentation":"<p>The maximum number of custom line item versions to retrieve.</p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token that's used on subsequent calls to retrieve custom line item versions.</p>"
},
"Filters":{
"shape":"ListCustomLineItemVersionsFilter",
"documentation":"<p>A <code>ListCustomLineItemVersionsFilter</code> that specifies the billing period range in which the custom line item versions are applied.</p>"
}
}
},
"ListCustomLineItemVersionsOutput":{
"type":"structure",
"members":{
"CustomLineItemVersions":{
"shape":"CustomLineItemVersionList",
"documentation":"<p>A list of <code>CustomLineItemVersionListElements</code> that are received.</p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token that's used on subsequent calls to retrieve custom line item versions.</p>"
}
}
},
"ListCustomLineItemsFilter":{
"type":"structure",
@ -1746,12 +1929,12 @@
"documentation":"<p> The preferred billing period to get custom line items (FFLIs). </p>"
},
"MaxResults":{
"shape":"MaxBillingGroupResults",
"shape":"MaxCustomLineItemResults",
"documentation":"<p> The maximum number of billing groups to retrieve. </p>"
},
"NextToken":{
"shape":"Token",
"documentation":"<p> The pagination token used on subsequent calls to get custom line items (FFLIs). </p>"
"documentation":"<p> The pagination token that's used on subsequent calls to get custom line items (FFLIs). </p>"
},
"Filters":{
"shape":"ListCustomLineItemsFilter",
@ -1768,7 +1951,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p> The pagination token used on subsequent calls to get custom line items (FFLIs). </p>"
"documentation":"<p> The pagination token that's used on subsequent calls to get custom line items (FFLIs). </p>"
}
}
},
@ -1807,7 +1990,7 @@
},
"PricingPlanArns":{
"shape":"PricingPlanArns",
"documentation":"<p> The list containing pricing plans associated with the requested pricing rule. </p>"
"documentation":"<p> The list containing pricing plans that are associated with the requested pricing rule. </p>"
},
"NextToken":{
"shape":"Token",
@ -1842,7 +2025,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token used on subsequent call to get pricing plans. </p>"
"documentation":"<p>The pagination token that's used on subsequent call to get pricing plans. </p>"
}
}
},
@ -1859,7 +2042,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p>The pagination token used on subsequent calls to get pricing plans. </p>"
"documentation":"<p>The pagination token that's used on subsequent calls to get pricing plans. </p>"
}
}
},
@ -1898,7 +2081,7 @@
},
"PricingRuleArns":{
"shape":"PricingRuleArns",
"documentation":"<p> A list containing pricing rules associated with the requested pricing plan. </p>"
"documentation":"<p> A list containing pricing rules that are associated with the requested pricing plan. </p>"
},
"NextToken":{
"shape":"Token",
@ -1933,7 +2116,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p> The pagination token used on subsequent call to get pricing rules. </p>"
"documentation":"<p> The pagination token that's used on subsequent call to get pricing rules. </p>"
}
}
},
@ -1950,7 +2133,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p> The pagination token used on subsequent calls to get pricing rules. </p>"
"documentation":"<p> The pagination token that's used on subsequent calls to get pricing rules. </p>"
}
}
},
@ -1982,7 +2165,7 @@
},
"NextToken":{
"shape":"Token",
"documentation":"<p> (Optional) The pagination token returned by a previous request. </p>"
"documentation":"<p> (Optional) The pagination token that's returned by a previous request. </p>"
},
"Filters":{
"shape":"ListResourcesAssociatedToCustomLineItemFilter",
@ -2017,6 +2200,10 @@
"Relationship":{
"shape":"CustomLineItemRelationship",
"documentation":"<p> The type of relationship between the custom line item and the associated resource. </p>"
},
"EndBillingPeriod":{
"shape":"BillingPeriod",
"documentation":"<p>The end billing period of the associated resource.</p>"
}
},
"documentation":"<p> A representation of a resource association for a custom line item. </p>"
@ -2095,7 +2282,7 @@
},
"PricingPlanArn":{
"type":"string",
"pattern":"(arn:aws:billingconductor::[0-9]{12}:pricingplan/)?[a-zA-Z0-9]{10}"
"pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/)?[a-zA-Z0-9]{10}"
},
"PricingPlanArns":{
"type":"list",
@ -2111,7 +2298,7 @@
},
"PricingPlanFullArn":{
"type":"string",
"pattern":"arn:aws:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10}"
"pattern":"arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10}"
},
"PricingPlanList":{
"type":"list",
@ -2134,15 +2321,15 @@
},
"Size":{
"shape":"NumberOfAssociatedPricingRules",
"documentation":"<p> The pricing rules count currently associated with this pricing plan list element. </p>"
"documentation":"<p> The pricing rules count that's currently associated with this pricing plan list element. </p>"
},
"CreationTime":{
"shape":"Instant",
"documentation":"<p> The time the pricing plan was created. </p>"
"documentation":"<p> The time when the pricing plan was created. </p>"
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the pricing plan was modified. </p>"
"documentation":"<p> The most recent time when the pricing plan was modified. </p>"
}
},
"documentation":"<p>A representation of a pricing plan. </p>"
@ -2156,7 +2343,7 @@
},
"PricingRuleArn":{
"type":"string",
"pattern":"(arn:aws:billingconductor::[0-9]{12}:pricingrule/)?[a-zA-Z0-9]{10}"
"pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingrule/)?[a-zA-Z0-9]{10}"
},
"PricingRuleArns":{
"type":"list",
@ -2223,11 +2410,19 @@
},
"CreationTime":{
"shape":"Instant",
"documentation":"<p> The time the pricing rule was created. </p>"
"documentation":"<p> The time when the pricing rule was created. </p>"
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the pricing rule was modified. </p>"
"documentation":"<p> The most recent time when the pricing rule was modified. </p>"
},
"BillingEntity":{
"shape":"BillingEntity",
"documentation":"<p> The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace. </p>"
},
"Tiering":{
"shape":"Tiering",
"documentation":"<p> The set of tiering configurations for the pricing rule. </p>"
}
},
"documentation":"<p> A representation of a pricing rule. </p>"
@ -2243,14 +2438,16 @@
"type":"string",
"enum":[
"GLOBAL",
"SERVICE"
"SERVICE",
"BILLING_ENTITY"
]
},
"PricingRuleType":{
"type":"string",
"enum":[
"MARKUP",
"DISCOUNT"
"DISCOUNT",
"TIERING"
]
},
"ProformaCost":{"type":"string"},
@ -2386,6 +2583,21 @@
},
"exception":true
},
"Tiering":{
"type":"structure",
"required":["FreeTier"],
"members":{
"FreeTier":{
"shape":"FreeTierConfig",
"documentation":"<p> The possible Amazon Web Services Free Tier configurations. </p>"
}
},
"documentation":"<p> The set of tiering configurations for the pricing rule. </p>"
},
"TieringActivated":{
"type":"boolean",
"box":true
},
"Token":{"type":"string"},
"UntagResourceRequest":{
"type":"structure",
@ -2468,7 +2680,7 @@
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the billing group was modified. </p>"
"documentation":"<p> The most recent time when the billing group was modified. </p>"
},
"Status":{
"shape":"BillingGroupStatus",
@ -2503,7 +2715,7 @@
"documentation":"<p> The custom line item's new fixed charge value in USD. </p>"
}
},
"documentation":"<p> A representation of the new charge details associated with a flat custom line item. </p>"
"documentation":"<p> A representation of the new charge details that are associated with a flat custom line item. </p>"
},
"UpdateCustomLineItemInput":{
"type":"structure",
@ -2514,7 +2726,7 @@
"documentation":"<p> The ARN of the custom line item to be updated. </p>"
},
"Name":{
"shape":"BillingGroupName",
"shape":"CustomLineItemName",
"documentation":"<p> The new name for the custom line item. </p>"
},
"Description":{
@ -2553,7 +2765,7 @@
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the custom line item was modified. </p>"
"documentation":"<p> The most recent time when the custom line item was modified. </p>"
},
"AssociationSize":{
"shape":"NumberOfAssociations",
@ -2570,7 +2782,18 @@
"documentation":"<p> The custom line item's new percentage value. This will be multiplied against the combined value of its associated resources to determine its charge value. </p>"
}
},
"documentation":"<p> A representation of the new charge details associated with a percentage custom line item. </p>"
"documentation":"<p> A representation of the new charge details that are associated with a percentage custom line item. </p>"
},
"UpdateFreeTierConfig":{
"type":"structure",
"required":["Activated"],
"members":{
"Activated":{
"shape":"TieringActivated",
"documentation":"<p> Activate or deactivate application of Amazon Web Services Free Tier. </p>"
}
},
"documentation":"<p> The possible Amazon Web Services Free Tier configurations. </p>"
},
"UpdatePricingPlanInput":{
"type":"structure",
@ -2578,7 +2801,7 @@
"members":{
"Arn":{
"shape":"PricingPlanArn",
"documentation":"<p>The Amazon Resource Name (ARN) of the pricing plan you're updating. </p>"
"documentation":"<p>The Amazon Resource Name (ARN) of the pricing plan that you're updating. </p>"
},
"Name":{
"shape":"PricingPlanName",
@ -2586,7 +2809,7 @@
},
"Description":{
"shape":"PricingPlanDescription",
"documentation":"<p>The pricing plan description. </p>"
"documentation":"<p>The description of the pricing plan. </p>"
}
}
},
@ -2607,11 +2830,11 @@
},
"Size":{
"shape":"NumberOfAssociatedPricingRules",
"documentation":"<p> The pricing rules count currently associated with this pricing plan list. </p>"
"documentation":"<p> The pricing rules count that's currently associated with this pricing plan list. </p>"
},
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the pricing plan was modified. </p>"
"documentation":"<p> The most recent time when the pricing plan was modified. </p>"
}
}
},
@ -2638,6 +2861,10 @@
"ModifierPercentage":{
"shape":"ModifierPercentage",
"documentation":"<p> The new modifier to show pricing plan rates as a percentage. </p>"
},
"Tiering":{
"shape":"UpdateTieringInput",
"documentation":"<p> The set of tiering configurations for the pricing rule. </p>"
}
}
},
@ -2658,7 +2885,7 @@
},
"Scope":{
"shape":"PricingRuleScope",
"documentation":"<p> The scope of pricing rule that indicates if it is globally applicable, or is service-specific. </p>"
"documentation":"<p> The scope of pricing rule that indicates if it's globally applicable, or it's service-specific. </p>"
},
"Type":{
"shape":"PricingRuleType",
@ -2679,9 +2906,28 @@
"LastModifiedTime":{
"shape":"Instant",
"documentation":"<p> The most recent time the pricing rule was modified. </p>"
},
"BillingEntity":{
"shape":"BillingEntity",
"documentation":"<p> The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace. </p>"
},
"Tiering":{
"shape":"UpdateTieringInput",
"documentation":"<p> The set of tiering configurations for the pricing rule. </p>"
}
}
},
"UpdateTieringInput":{
"type":"structure",
"required":["FreeTier"],
"members":{
"FreeTier":{
"shape":"UpdateFreeTierConfig",
"documentation":"<p> The possible Amazon Web Services Free Tier configurations. </p>"
}
},
"documentation":"<p> The set of tiering configurations for the pricing rule. </p>"
},
"ValidationException":{
"type":"structure",
"required":["Message"],
@ -2771,9 +3017,18 @@
"MISSING_LINKED_ACCOUNT_IDS",
"MULTIPLE_LINKED_ACCOUNT_IDS",
"MISSING_PRICING_PLAN_ARN",
"MULTIPLE_PRICING_PLAN_ARN"
"MULTIPLE_PRICING_PLAN_ARN",
"ILLEGAL_CHILD_ASSOCIATE_RESOURCE",
"CUSTOM_LINE_ITEM_ASSOCIATION_EXISTS",
"INVALID_BILLING_GROUP",
"INVALID_BILLING_PERIOD_FOR_OPERATION",
"ILLEGAL_BILLING_ENTITY",
"ILLEGAL_MODIFIER_PERCENTAGE",
"ILLEGAL_TYPE",
"ILLEGAL_ENDED_BILLINGGROUP",
"ILLEGAL_TIERING_INPUT"
]
}
},
"documentation":"<p>Amazon Web Services Billing Conductor is a fully managed service that you can use to customize a <a href=\"https://docs.aws.amazon.com/enterprisebilling/6b7c01c5-b592-467e-9769-90052eaf359c/userguide/understanding-eb.html#eb-other-definitions\">pro forma</a> version of your billing data each month, to accurately show or chargeback your end customers. Amazon Web Services Billing Conductor doesn't change the way you're billed by Amazon Web Services each month by design. Instead, it provides you with a mechanism to configure, generate, and display rates to certain customers over a given billing period. You can also analyze the difference between the rates you apply to your accounting groupings relative to your actual rates from Amazon Web Services. As a result of your Amazon Web Services Billing Conductor configuration, the payer account can also see the custom rate applied on the billing details page of the <a href=\"https://console.aws.amazon.com/billing\">Amazon Web Services Billing console</a>, or configure a cost and usage report per billing group.</p> <p>This documentation shows how you can configure Amazon Web Services Billing Conductor using its API. For more information about using the <a href=\"https://console.aws.amazon.com/enterprisebilling/\">Amazon Web Services Billing Conductor</a> user interface, see the <a href=\"https://docs.aws.amazon.com/enterprisebilling/6b7c01c5-b592-467e-9769-90052eaf359c/userguide/what-is-enterprisebilling.html\"> Amazon Web Services Enterprise Billing Console User Guide</a>.</p>"
"documentation":"<p>Amazon Web Services Billing Conductor is a fully managed service that you can use to customize a <a href=\"https://docs.aws.amazon.com/billingconductor/latest/userguide/understanding-eb.html#eb-other-definitions\">pro forma</a> version of your billing data each month, to accurately show or chargeback your end customers. Amazon Web Services Billing Conductor doesn't change the way you're billed by Amazon Web Services each month by design. Instead, it provides you with a mechanism to configure, generate, and display rates to certain customers over a given billing period. You can also analyze the difference between the rates you apply to your accounting groupings relative to your actual rates from Amazon Web Services. As a result of your Amazon Web Services Billing Conductor configuration, the payer account can also see the custom rate applied on the billing details page of the <a href=\"https://console.aws.amazon.com/billing\">Amazon Web Services Billing console</a>, or configure a cost and usage report per billing group.</p> <p>This documentation shows how you can configure Amazon Web Services Billing Conductor using its API. For more information about using the <a href=\"https://console.aws.amazon.com/billingconductor/\">Amazon Web Services Billing Conductor</a> user interface, see the <a href=\"https://docs.aws.amazon.com/billingconductor/latest/userguide/what-is-billingconductor.html\"> Amazon Web Services Billing Conductor User Guide</a>.</p>"
}

Some files were not shown because too many files have changed in this diff Show more