From b491e450e3c9ba77c915d76b774243b298720582 Mon Sep 17 00:00:00 2001 From: Xia Zhao <78883180+xazhao@users.noreply.github.com> Date: Wed, 1 Mar 2023 17:49:49 -0800 Subject: [PATCH 01/32] chore: adding some type checks as constants (#2986) --- samtranslator/model/eventsources/pull.py | 30 ++++++------- samtranslator/model/eventsources/push.py | 12 +++--- samtranslator/model/sam_resources.py | 47 +++++++++++++-------- samtranslator/model/stepfunctions/events.py | 6 +-- samtranslator/model/types.py | 3 ++ tests/test_types.py | 8 ++-- 6 files changed, 60 insertions(+), 46 deletions(-) diff --git a/samtranslator/model/eventsources/pull.py b/samtranslator/model/eventsources/pull.py index 4c1c1c5d1..b4da8db2a 100644 --- a/samtranslator/model/eventsources/pull.py +++ b/samtranslator/model/eventsources/pull.py @@ -9,7 +9,7 @@ from samtranslator.model.iam import IAMRolePolicies from samtranslator.model.intrinsics import is_intrinsic from samtranslator.model.lambda_ import LambdaEventSourceMapping -from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type +from samtranslator.model.types import IS_BOOL, IS_DICT, IS_INT, IS_LIST, IS_STR, PassThrough from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.utils.types import Intrinsicable from samtranslator.validator.value_validator import sam_expect @@ -34,23 +34,23 @@ class PullEventSource(ResourceMacro, metaclass=ABCMeta): resource_type: str = None # type: ignore relative_id: str # overriding the Optional[str]: for event, relative id is not None property_types: Dict[str, PropertyType] = { - "BatchSize": PropertyType(False, is_type(int)), + "BatchSize": PropertyType(False, IS_INT), "StartingPosition": PassThroughProperty(False), "StartingPositionTimestamp": PassThroughProperty(False), - "Enabled": PropertyType(False, is_type(bool)), - "MaximumBatchingWindowInSeconds": PropertyType(False, is_type(int)), - "MaximumRetryAttempts": PropertyType(False, is_type(int)), - "BisectBatchOnFunctionError": PropertyType(False, is_type(bool)), - "MaximumRecordAgeInSeconds": PropertyType(False, is_type(int)), + "Enabled": PropertyType(False, IS_BOOL), + "MaximumBatchingWindowInSeconds": PropertyType(False, IS_INT), + "MaximumRetryAttempts": PropertyType(False, IS_INT), + "BisectBatchOnFunctionError": PropertyType(False, IS_BOOL), + "MaximumRecordAgeInSeconds": PropertyType(False, IS_INT), "DestinationConfig": PropertyType(False, IS_DICT), - "ParallelizationFactor": PropertyType(False, is_type(int)), - "Topics": PropertyType(False, is_type(list)), - "Queues": PropertyType(False, is_type(list)), - "SourceAccessConfigurations": PropertyType(False, is_type(list)), + "ParallelizationFactor": PropertyType(False, IS_INT), + "Topics": PropertyType(False, IS_LIST), + "Queues": PropertyType(False, IS_LIST), + "SourceAccessConfigurations": PropertyType(False, IS_LIST), "SecretsManagerKmsKeyId": PropertyType(False, IS_STR), - "TumblingWindowInSeconds": PropertyType(False, is_type(int)), - "FunctionResponseTypes": PropertyType(False, is_type(list)), - "KafkaBootstrapServers": PropertyType(False, is_type(list)), + "TumblingWindowInSeconds": PropertyType(False, IS_INT), + "FunctionResponseTypes": PropertyType(False, IS_LIST), + "KafkaBootstrapServers": PropertyType(False, IS_LIST), "FilterCriteria": PropertyType(False, IS_DICT), "ConsumerGroupId": PropertyType(False, IS_STR), "ScalingConfig": PropertyType(False, IS_DICT), @@ -424,7 +424,7 @@ class MQ(PullEventSource): property_types: Dict[str, PropertyType] = { **PullEventSource.property_types, "Broker": PassThroughProperty(True), - "DynamicPolicyName": Property(False, is_type(bool)), + "DynamicPolicyName": Property(False, IS_BOOL), } Broker: PassThrough diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index 274f98156..56dd07ac5 100644 --- a/samtranslator/model/eventsources/push.py +++ b/samtranslator/model/eventsources/push.py @@ -19,7 +19,7 @@ from samtranslator.model.sns import SNSSubscription from samtranslator.model.sqs import SQSQueue, SQSQueuePolicies, SQSQueuePolicy from samtranslator.model.tags.resource_tagging import get_tag_list -from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, dict_of, is_type, list_of, one_of +from samtranslator.model.types import IS_BOOL, IS_DICT, IS_INT, IS_LIST, IS_STR, PassThrough, dict_of, list_of, one_of from samtranslator.open_api.open_api import OpenApiEditor from samtranslator.swagger.swagger import SwaggerEditor from samtranslator.translator import logical_id_generator @@ -105,7 +105,7 @@ class Schedule(PushEventSource): "Schedule": PropertyType(True, IS_STR), "RuleName": PropertyType(False, IS_STR), "Input": PropertyType(False, IS_STR), - "Enabled": PropertyType(False, is_type(bool)), + "Enabled": PropertyType(False, IS_BOOL), "State": PropertyType(False, IS_STR), "Name": PropertyType(False, IS_STR), "Description": PropertyType(False, IS_STR), @@ -205,7 +205,7 @@ class CloudWatchEvent(PushEventSource): "Input": PropertyType(False, IS_STR), "InputPath": PropertyType(False, IS_STR), "Target": PropertyType(False, IS_DICT), - "Enabled": PropertyType(False, is_type(bool)), + "Enabled": PropertyType(False, IS_BOOL), "State": PropertyType(False, IS_STR), } @@ -486,7 +486,7 @@ class SNS(PushEventSource): "Topic": PropertyType(True, IS_STR), "Region": PropertyType(False, IS_STR), "FilterPolicy": PropertyType(False, dict_of(IS_STR, list_of(one_of(IS_STR, IS_DICT)))), - "SqsSubscription": PropertyType(False, one_of(is_type(bool), IS_DICT)), + "SqsSubscription": PropertyType(False, one_of(IS_BOOL, IS_DICT)), "RedrivePolicy": PropertyType(False, IS_DICT), } @@ -630,7 +630,7 @@ class Api(PushEventSource): "Stage": PropertyType(False, IS_STR), "Auth": PropertyType(False, IS_DICT), "RequestModel": PropertyType(False, IS_DICT), - "RequestParameters": PropertyType(False, is_type(list)), + "RequestParameters": PropertyType(False, IS_LIST), } Path: str @@ -1220,7 +1220,7 @@ class HttpApi(PushEventSource): "ApiId": PropertyType(False, IS_STR), "Stage": PropertyType(False, IS_STR), "Auth": PropertyType(False, IS_DICT), - "TimeoutInMillis": PropertyType(False, is_type(int)), + "TimeoutInMillis": PropertyType(False, IS_INT), "RouteSettings": PropertyType(False, IS_DICT), "PayloadFormatVersion": PropertyType(False, IS_STR), } diff --git a/samtranslator/model/sam_resources.py b/samtranslator/model/sam_resources.py index ded0c0c44..727c16b76 100644 --- a/samtranslator/model/sam_resources.py +++ b/samtranslator/model/sam_resources.py @@ -75,7 +75,18 @@ from samtranslator.model.sns import SNSTopic, SNSTopicPolicy from samtranslator.model.sqs import SQSQueue, SQSQueuePolicy from samtranslator.model.stepfunctions import StateMachineGenerator -from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, any_type, dict_of, is_type, list_of, one_of +from samtranslator.model.types import ( + IS_BOOL, + IS_DICT, + IS_INT, + IS_LIST, + IS_STR, + PassThrough, + any_type, + dict_of, + list_of, + one_of, +) from samtranslator.model.xray_utils import get_xray_managed_policy_name from samtranslator.translator import logical_id_generator from samtranslator.translator.arn_generator import ArnGenerator @@ -126,7 +137,7 @@ class SamFunction(SamResourceMacro): # Intrinsic functions in value of Alias property are not supported, yet "AutoPublishAlias": PropertyType(False, one_of(IS_STR)), "AutoPublishCodeSha256": PropertyType(False, one_of(IS_STR)), - "AutoPublishAliasAllProperties": Property(False, is_type(bool)), + "AutoPublishAliasAllProperties": Property(False, IS_BOOL), "VersionDescription": PassThroughProperty(False), "ProvisionedConcurrencyConfig": PassThroughProperty(False), "FileSystemConfigs": PassThroughProperty(False), @@ -1141,35 +1152,35 @@ class SamApi(SamResourceMacro): # Implicit APIs. For Explicit APIs, customer is expected to set integration URI themselves. # In the future, we might rename and expose this property to customers so they can have SAM manage Explicit APIs # Swagger. - "__MANAGE_SWAGGER": PropertyType(False, is_type(bool)), + "__MANAGE_SWAGGER": PropertyType(False, IS_BOOL), "Name": PropertyType(False, one_of(IS_STR, IS_DICT)), "StageName": PropertyType(True, one_of(IS_STR, IS_DICT)), "Tags": PropertyType(False, IS_DICT), "DefinitionBody": PropertyType(False, IS_DICT), "DefinitionUri": PropertyType(False, one_of(IS_STR, IS_DICT)), - "MergeDefinitions": Property(False, is_type(bool)), - "CacheClusterEnabled": PropertyType(False, is_type(bool)), + "MergeDefinitions": Property(False, IS_BOOL), + "CacheClusterEnabled": PropertyType(False, IS_BOOL), "CacheClusterSize": PropertyType(False, IS_STR), "Variables": PropertyType(False, IS_DICT), "EndpointConfiguration": PropertyType(False, one_of(IS_STR, IS_DICT)), - "MethodSettings": PropertyType(False, is_type(list)), - "BinaryMediaTypes": PropertyType(False, is_type(list)), - "MinimumCompressionSize": PropertyType(False, is_type(int)), + "MethodSettings": PropertyType(False, IS_LIST), + "BinaryMediaTypes": PropertyType(False, IS_LIST), + "MinimumCompressionSize": PropertyType(False, IS_INT), "Cors": PropertyType(False, one_of(IS_STR, IS_DICT)), "Auth": PropertyType(False, IS_DICT), "GatewayResponses": PropertyType(False, IS_DICT), "AccessLogSetting": PropertyType(False, IS_DICT), "CanarySetting": PropertyType(False, IS_DICT), - "TracingEnabled": PropertyType(False, is_type(bool)), + "TracingEnabled": PropertyType(False, IS_BOOL), "OpenApiVersion": PropertyType(False, IS_STR), "Models": PropertyType(False, IS_DICT), "Domain": PropertyType(False, IS_DICT), - "FailOnWarnings": PropertyType(False, is_type(bool)), + "FailOnWarnings": PropertyType(False, IS_BOOL), "Description": PropertyType(False, IS_STR), "Mode": PropertyType(False, IS_STR), - "DisableExecuteApiEndpoint": PropertyType(False, is_type(bool)), + "DisableExecuteApiEndpoint": PropertyType(False, IS_BOOL), "ApiKeySourceType": PropertyType(False, IS_STR), - "AlwaysDeploy": Property(False, is_type(bool)), + "AlwaysDeploy": Property(False, IS_BOOL), } Name: Optional[Intrinsicable[str]] @@ -1302,22 +1313,22 @@ class SamHttpApi(SamResourceMacro): # Implicit APIs. For Explicit APIs, this is managed by the DefaultDefinitionBody Plugin. # In the future, we might rename and expose this property to customers so they can have SAM manage Explicit APIs # Swagger. - "__MANAGE_SWAGGER": PropertyType(False, is_type(bool)), + "__MANAGE_SWAGGER": PropertyType(False, IS_BOOL), "Name": PassThroughProperty(False), "StageName": PropertyType(False, one_of(IS_STR, IS_DICT)), "Tags": PropertyType(False, IS_DICT), "DefinitionBody": PropertyType(False, IS_DICT), "DefinitionUri": PropertyType(False, one_of(IS_STR, IS_DICT)), "StageVariables": PropertyType(False, IS_DICT), - "CorsConfiguration": PropertyType(False, one_of(is_type(bool), IS_DICT)), + "CorsConfiguration": PropertyType(False, one_of(IS_BOOL, IS_DICT)), "AccessLogSettings": PropertyType(False, IS_DICT), "DefaultRouteSettings": PropertyType(False, IS_DICT), "Auth": PropertyType(False, IS_DICT), "RouteSettings": PropertyType(False, IS_DICT), "Domain": PropertyType(False, IS_DICT), - "FailOnWarnings": PropertyType(False, is_type(bool)), + "FailOnWarnings": PropertyType(False, IS_BOOL), "Description": PropertyType(False, IS_STR), - "DisableExecuteApiEndpoint": PropertyType(False, is_type(bool)), + "DisableExecuteApiEndpoint": PropertyType(False, IS_BOOL), } Name: Optional[Any] @@ -1406,7 +1417,7 @@ class SamSimpleTable(SamResourceMacro): resource_type = "AWS::Serverless::SimpleTable" property_types = { "PrimaryKey": PropertyType(False, dict_of(IS_STR, IS_STR)), - "ProvisionedThroughput": PropertyType(False, dict_of(IS_STR, one_of(is_type(int), IS_DICT))), + "ProvisionedThroughput": PropertyType(False, dict_of(IS_STR, one_of(IS_INT, IS_DICT))), "TableName": PropertyType(False, one_of(IS_STR, IS_DICT)), "Tags": PropertyType(False, IS_DICT), "SSESpecification": PropertyType(False, IS_DICT), @@ -1484,7 +1495,7 @@ class SamApplication(SamResourceMacro): "Parameters": PropertyType(False, IS_DICT), "NotificationARNs": PropertyType(False, list_of(one_of(IS_STR, IS_DICT))), "Tags": PropertyType(False, IS_DICT), - "TimeoutInMinutes": PropertyType(False, is_type(int)), + "TimeoutInMinutes": PropertyType(False, IS_INT), } Location: Union[str, Dict[str, Any]] diff --git a/samtranslator/model/stepfunctions/events.py b/samtranslator/model/stepfunctions/events.py index 1bd6229af..201522830 100644 --- a/samtranslator/model/stepfunctions/events.py +++ b/samtranslator/model/stepfunctions/events.py @@ -10,7 +10,7 @@ from samtranslator.model.exceptions import InvalidEventException from samtranslator.model.iam import IAMRole, IAMRolePolicies from samtranslator.model.intrinsics import fnSub -from samtranslator.model.types import IS_DICT, IS_STR, PassThrough, is_type +from samtranslator.model.types import IS_BOOL, IS_DICT, IS_STR, PassThrough from samtranslator.swagger.swagger import SwaggerEditor from samtranslator.translator import logical_id_generator @@ -86,7 +86,7 @@ class Schedule(EventSource): property_types = { "Schedule": PropertyType(True, IS_STR), "Input": PropertyType(False, IS_STR), - "Enabled": PropertyType(False, is_type(bool)), + "Enabled": PropertyType(False, IS_BOOL), "State": PropertyType(False, IS_STR), "Name": PropertyType(False, IS_STR), "Description": PropertyType(False, IS_STR), @@ -294,7 +294,7 @@ class Api(EventSource): "RestApiId": PropertyType(True, IS_STR), "Stage": PropertyType(False, IS_STR), "Auth": PropertyType(False, IS_DICT), - "UnescapeMappingTemplate": Property(False, is_type(bool)), + "UnescapeMappingTemplate": Property(False, IS_BOOL), } Path: str diff --git a/samtranslator/model/types.py b/samtranslator/model/types.py index f9e4cb1e0..87aa2c886 100644 --- a/samtranslator/model/types.py +++ b/samtranslator/model/types.py @@ -46,6 +46,9 @@ def validate(value: Any, should_raise: bool = True) -> bool: IS_DICT = is_type(dict) IS_STR = is_type(str) +IS_BOOL = is_type(bool) +IS_LIST = is_type(list) +IS_INT = is_type(int) def list_of(validate_item: Union[Type[Any], Validator]) -> Validator: diff --git a/tests/test_types.py b/tests/test_types.py index ecaa3bb54..6ee2256ed 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -1,5 +1,5 @@ import pytest -from samtranslator.model.types import dict_of, is_type, list_of, one_of +from samtranslator.model.types import IS_INT, dict_of, is_type, list_of, one_of class DummyType(object): @@ -83,11 +83,11 @@ def test_dict_of_validator(value, key_type, value_type, should_pass): "value,validators,should_pass", [ # Value of first expected type - (1, [is_type(int), list_of(is_type(int))], True), + (1, [IS_INT, list_of(IS_INT)], True), # Value of second expected type - ([1, 2, 3], [is_type(int), list_of(is_type(int))], True), + ([1, 2, 3], [IS_INT, list_of(IS_INT)], True), # Value of neither expected type - ("Hello, World!", [is_type(int), list_of(is_type(int))], False), + ("Hello, World!", [IS_INT, list_of(IS_INT)], False), ], ) def test_one_of_validator(value, validators, should_pass): From a2cb3fb39c76242c7300652d423d21ca79e9c7f1 Mon Sep 17 00:00:00 2001 From: Aayush thapa <84202325+aaythapa@users.noreply.github.com> Date: Thu, 2 Mar 2023 10:33:47 -0800 Subject: [PATCH 02/32] feat: new SESBulkTemplatedCrudPolicy_v2 policy (#2929) --- .../policy_templates.json | 54 +++++++++++++++++++ .../input/all_policy_templates.yaml | 4 ++ .../output/all_policy_templates.json | 42 +++++++++++++++ .../output/aws-cn/all_policy_templates.json | 42 +++++++++++++++ .../aws-us-gov/all_policy_templates.json | 42 +++++++++++++++ 5 files changed, 184 insertions(+) diff --git a/samtranslator/policy_templates_data/policy_templates.json b/samtranslator/policy_templates_data/policy_templates.json index e4a1034de..b396a94e7 100644 --- a/samtranslator/policy_templates_data/policy_templates.json +++ b/samtranslator/policy_templates_data/policy_templates.json @@ -1920,6 +1920,60 @@ } } }, + "SESBulkTemplatedCrudPolicy_v2": { + "Definition": { + "Statement": [ + { + "Action": [ + "ses:SendEmail", + "ses:SendRawEmail", + "ses:SendTemplatedEmail", + "ses:SendBulkTemplatedEmail" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:identity/${identityName}", + { + "identityName": { + "Ref": "IdentityName" + } + } + ] + }, + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:template/${templateName}", + { + "templateName": { + "Ref": "TemplateName" + } + } + ] + } + ] + }, + { + "Action": [ + "ses:GetIdentityVerificationAttributes", + "ses:VerifyEmailIdentity" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "Description": "Gives permission to send email, templated email, templated bulk emails and verify identity", + "Parameters": { + "IdentityName": { + "Description": "Identity to give permissions to" + }, + "TemplateName": { + "Description": "Name of the email template" + } + } + }, "SESCrudPolicy": { "Definition": { "Statement": [ diff --git a/tests/translator/input/all_policy_templates.yaml b/tests/translator/input/all_policy_templates.yaml index 90de2acbe..e39ffd4e9 100644 --- a/tests/translator/input/all_policy_templates.yaml +++ b/tests/translator/input/all_policy_templates.yaml @@ -180,3 +180,7 @@ Resources: - StepFunctionsExecutionPolicy_v2: StateMachineName: name + + - SESBulkTemplatedCrudPolicy_v2: + IdentityName: name + TemplateName: template_name diff --git a/tests/translator/output/all_policy_templates.json b/tests/translator/output/all_policy_templates.json index eca82c7f3..9960c4580 100644 --- a/tests/translator/output/all_policy_templates.json +++ b/tests/translator/output/all_policy_templates.json @@ -1661,6 +1661,48 @@ ] }, "PolicyName": "KitchenSinkFunctionRolePolicy61" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ses:SendEmail", + "ses:SendRawEmail", + "ses:SendTemplatedEmail", + "ses:SendBulkTemplatedEmail" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:identity/${identityName}", + { + "identityName": "name" + } + ] + }, + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:template/${templateName}", + { + "templateName": "template_name" + } + ] + } + ] + }, + { + "Action": [ + "ses:GetIdentityVerificationAttributes", + "ses:VerifyEmailIdentity" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "KitchenSinkFunctionRolePolicy62" } ], "Tags": [ diff --git a/tests/translator/output/aws-cn/all_policy_templates.json b/tests/translator/output/aws-cn/all_policy_templates.json index 4e0872e55..22c74ba45 100644 --- a/tests/translator/output/aws-cn/all_policy_templates.json +++ b/tests/translator/output/aws-cn/all_policy_templates.json @@ -1661,6 +1661,48 @@ ] }, "PolicyName": "KitchenSinkFunctionRolePolicy61" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ses:SendEmail", + "ses:SendRawEmail", + "ses:SendTemplatedEmail", + "ses:SendBulkTemplatedEmail" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:identity/${identityName}", + { + "identityName": "name" + } + ] + }, + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:template/${templateName}", + { + "templateName": "template_name" + } + ] + } + ] + }, + { + "Action": [ + "ses:GetIdentityVerificationAttributes", + "ses:VerifyEmailIdentity" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "KitchenSinkFunctionRolePolicy62" } ], "Tags": [ diff --git a/tests/translator/output/aws-us-gov/all_policy_templates.json b/tests/translator/output/aws-us-gov/all_policy_templates.json index 7111cbda5..a2953d790 100644 --- a/tests/translator/output/aws-us-gov/all_policy_templates.json +++ b/tests/translator/output/aws-us-gov/all_policy_templates.json @@ -1661,6 +1661,48 @@ ] }, "PolicyName": "KitchenSinkFunctionRolePolicy61" + }, + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "ses:SendEmail", + "ses:SendRawEmail", + "ses:SendTemplatedEmail", + "ses:SendBulkTemplatedEmail" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:identity/${identityName}", + { + "identityName": "name" + } + ] + }, + { + "Fn::Sub": [ + "arn:${AWS::Partition}:ses:${AWS::Region}:${AWS::AccountId}:template/${templateName}", + { + "templateName": "template_name" + } + ] + } + ] + }, + { + "Action": [ + "ses:GetIdentityVerificationAttributes", + "ses:VerifyEmailIdentity" + ], + "Effect": "Allow", + "Resource": "*" + } + ] + }, + "PolicyName": "KitchenSinkFunctionRolePolicy62" } ], "Tags": [ From 0a42419e8f75c877f8fac08dea4c137b0d10e358 Mon Sep 17 00:00:00 2001 From: Xia Zhao <78883180+xazhao@users.noreply.github.com> Date: Thu, 2 Mar 2023 12:36:09 -0800 Subject: [PATCH 03/32] chore: fix local transform format (#2990) --- bin/sam-translate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/sam-translate.py b/bin/sam-translate.py index 16f04338c..94762c98b 100755 --- a/bin/sam-translate.py +++ b/bin/sam-translate.py @@ -40,7 +40,7 @@ "--output-template", help="Location to store resulting CloudFormation template [default: transformed-template.json].", type=Path, - default=Path("transformed-template.yaml"), + default=Path("transformed-template.json"), ) parser.add_argument( "--s3-bucket", From ba1f4dae2287d913aff13ffb764768457e22eb45 Mon Sep 17 00:00:00 2001 From: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> Date: Thu, 2 Mar 2023 15:08:30 -0800 Subject: [PATCH 04/32] chore: test on Python 3.11 (#2991) --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 46a49730f..2ba758f6d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,6 +22,7 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 From c42f5596abca55a55239be4a21ac957f9a2f8562 Mon Sep 17 00:00:00 2001 From: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:42:16 -0800 Subject: [PATCH 05/32] chore: add Python 3.11 to classifiers (#2992) --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index fbd4fc8f7..4eb35022d 100755 --- a/setup.py +++ b/setup.py @@ -97,6 +97,7 @@ def read_requirements(req="base.txt"): "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Internet", "Topic :: Software Development :: Build Tools", "Topic :: Utilities", From 1034e333cf1020a15a35329dd110446e9bc70cfb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 Mar 2023 01:55:03 +0000 Subject: [PATCH 06/32] chore(schema): update (#2994) Co-authored-by: github-actions --- samtranslator/internal/schema_source/sam-docs.json | 2 +- samtranslator/schema/schema.json | 8 ++++---- schema_source/sam.schema.json | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/samtranslator/internal/schema_source/sam-docs.json b/samtranslator/internal/schema_source/sam-docs.json index 59ddc1554..f6acb5eed 100644 --- a/samtranslator/internal/schema_source/sam-docs.json +++ b/samtranslator/internal/schema_source/sam-docs.json @@ -567,7 +567,7 @@ "TimeoutInMinutes": "The length of time, in minutes, that AWS CloudFormation waits for the nested stack to reach the `CREATE_COMPLETE` state\\. The default is no timeout\\. When AWS CloudFormation detects that the nested stack has reached the `CREATE_COMPLETE` state, it marks the nested stack resource as `CREATE_COMPLETE` in the parent stack and resumes creating the parent stack\\. If the timeout period expires before the nested stack reaches `CREATE_COMPLETE`, AWS CloudFormation marks the nested stack as failed and rolls back both the nested stack and parent stack\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TimeoutInMinutes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes) property of an `AWS::CloudFormation::Stack` resource\\." }, "sam-resource-connector": { - "Destination": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "Destination": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "Permissions": "The permission type that the source resource is allowed to perform on the destination resource\\. \n`Read` includes AWS Identity and Access Management \\(IAM\\) actions that allow reading data from the resource\\. \n`Write` inclues IAM actions that allow initiating and writing data to a resource\\. \n*Valid values*: `Read` or `Write` \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "Source": "The source resource\\. Required when using the `AWS::Serverless::Connector` syntax\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "SourceReference": "The source resource\\. \nUse with the embedded connectors syntax when defining additional properties for the source resource\\.\n*Type*: [SourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-sourcereference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 1fcaf9d72..210421bd1 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -194354,8 +194354,8 @@ "type": "array" } ], - "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Destination" }, "Permissions": { @@ -197684,8 +197684,8 @@ "type": "array" } ], - "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Destination" }, "Permissions": { diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index d5ba10f0a..fd3ddfa0c 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -848,8 +848,8 @@ "type": "array" } ], - "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Destination" }, "Permissions": { @@ -4083,8 +4083,8 @@ "type": "array" } ], - "description": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The destination resource\\. \n*Type*: [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The destination resource\\. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\| List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Destination" }, "Permissions": { From 5b1a9adb07260978b9f10776cf96b7e4df4e49c4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 10:19:09 -0800 Subject: [PATCH 07/32] chore(schema): update (#2997) Co-authored-by: github-actions --- samtranslator/schema/schema.json | 514 ++++++++++++++++++++++- schema_source/cloudformation.schema.json | 514 ++++++++++++++++++++++- 2 files changed, 1026 insertions(+), 2 deletions(-) diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 210421bd1..107359cb0 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -37478,7 +37478,13 @@ "type": "string" }, "Tags": { + "additionalProperties": true, "markdownDescription": "A list of tags to apply to this notification rule\\. Key names cannot start with \"`aws`\"\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "title": "Tags", "type": "object" }, @@ -52882,6 +52888,9 @@ "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ContributorInsightsSpecification" }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, "GlobalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" @@ -74219,6 +74228,12 @@ "title": "Passwords", "type": "array" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "UserId": { "markdownDescription": "The ID of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "UserId", @@ -74320,6 +74335,12 @@ "title": "Engine", "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "UserGroupId": { "markdownDescription": "The ID of the user group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "UserGroupId", @@ -74336,7 +74357,8 @@ }, "required": [ "Engine", - "UserGroupId" + "UserGroupId", + "UserIds" ], "type": "object" }, @@ -91617,6 +91639,9 @@ "markdownDescription": "The job configuration for the deployment configuration\\. The job configuration specifies the rollout, timeout, and stop configurations for the deployment configuration\\. \n*Required*: No \n*Type*: [DeploymentIoTJobConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-deploymentiotjobconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "IotJobConfiguration" }, + "ParentTargetArn": { + "type": "string" + }, "Tags": { "additionalProperties": true, "markdownDescription": "Application\\-specific metadata to attach to the deployment\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tag your AWS IoT Greengrass Version 2 resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", @@ -95076,6 +95101,225 @@ ], "type": "object" }, + "AWS::IVSChat::LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DestinationConfiguration": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.DestinationConfiguration" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DestinationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVSChat::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + } + }, + "required": [ + "LogGroupName" + ], + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration" + }, + "S3": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration" + } + }, + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::IVSChat::Room": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "LoggingConfigurationIdentifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumMessageLength": { + "type": "number" + }, + "MaximumMessageRatePerSecond": { + "type": "number" + }, + "MessageReviewHandler": { + "$ref": "#/definitions/AWS::IVSChat::Room.MessageReviewHandler" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVSChat::Room" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IVSChat::Room.MessageReviewHandler": { + "additionalProperties": false, + "properties": { + "FallbackResult": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IdentityStore::Group": { "additionalProperties": false, "properties": { @@ -97558,6 +97802,9 @@ "Properties": { "additionalProperties": false, "properties": { + "MaxCityNetworksToMonitor": { + "type": "number" + }, "MonitorName": { "type": "string" }, @@ -118395,6 +118642,9 @@ "markdownDescription": "\\(Streams only\\) An Amazon SQS queue or Amazon SNS topic destination for discarded records\\. \n*Required*: No \n*Type*: [DestinationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DestinationConfig" }, + "DocumentDBEventSourceConfig": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig" + }, "Enabled": { "markdownDescription": "When true, the event source mapping is active\\. When false, Lambda pauses polling and invocation\\. \nDefault: True \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Enabled", @@ -118546,6 +118796,21 @@ }, "type": "object" }, + "AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig": { + "additionalProperties": false, + "properties": { + "CollectionName": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "FullDocument": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Lambda::EventSourceMapping.Endpoints": { "additionalProperties": false, "properties": { @@ -120104,6 +120369,9 @@ "AWS::Lex::Bot.CustomVocabularyItem": { "additionalProperties": false, "properties": { + "DisplayAs": { + "type": "string" + }, "Phrase": { "markdownDescription": "Specifies 1 \\- 4 words that should be recognized\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Phrase", @@ -128575,6 +128843,77 @@ ], "type": "object" }, + "AWS::ManagedBlockchain::Accessor": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessorType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AccessorType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ManagedBlockchain::Accessor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::ManagedBlockchain::Member": { "additionalProperties": false, "properties": { @@ -134760,6 +135099,12 @@ "Properties": { "additionalProperties": false, "properties": { + "EgressEndpoints": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::Asset.EgressEndpoint" + }, + "type": "array" + }, "Id": { "markdownDescription": "Unique identifier that you assign to the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Id", @@ -156158,6 +156503,9 @@ "title": "Tags", "type": "array" }, + "TargetRole": { + "type": "string" + }, "VpcSecurityGroupIds": { "items": { "type": "string" @@ -190953,6 +191301,24 @@ ], "type": "object" }, + "AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet": { + "additionalProperties": false, + "properties": { + "LoginPath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RequestInspection" + }, + "ResponseInspection": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspection" + } + }, + "required": [ + "LoginPath" + ], + "type": "object" + }, "AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet": { "additionalProperties": false, "properties": { @@ -191585,6 +191951,9 @@ "AWS::WAFv2::WebACL.ManagedRuleGroupConfig": { "additionalProperties": false, "properties": { + "AWSManagedRulesATPRuleSet": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet" + }, "AWSManagedRulesBotControlRuleSet": { "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet", "markdownDescription": "Additional configuration for using the Bot Control managed rule group\\. Use this to specify the inspection level that you want to use\\. For information about using the Bot Control managed rule group, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html) and [AWS WAF Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html) in the * AWS WAF Developer Guide*\\. \n*Required*: No \n*Type*: [AWSManagedRulesBotControlRuleSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesbotcontrolruleset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -191802,6 +192171,140 @@ ], "type": "object" }, + "AWS::WAFv2::WebACL.RequestInspection": { + "additionalProperties": false, + "properties": { + "PasswordField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + }, + "PayloadType": { + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + } + }, + "required": [ + "PasswordField", + "PayloadType", + "UsernameField" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspection": { + "additionalProperties": false, + "properties": { + "BodyContains": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionBodyContains" + }, + "Header": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionHeader" + }, + "Json": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionJson" + }, + "StatusCode": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionStatusCode" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionBodyContains": { + "additionalProperties": false, + "properties": { + "FailureStrings": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SuccessStrings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "FailureStrings", + "SuccessStrings" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionHeader": { + "additionalProperties": false, + "properties": { + "FailureValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SuccessValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "FailureValues", + "Name", + "SuccessValues" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionJson": { + "additionalProperties": false, + "properties": { + "FailureValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Identifier": { + "type": "string" + }, + "SuccessValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "FailureValues", + "Identifier", + "SuccessValues" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionStatusCode": { + "additionalProperties": false, + "properties": { + "FailureCodes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SuccessCodes": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "FailureCodes", + "SuccessCodes" + ], + "type": "object" + }, "AWS::WAFv2::WebACL.Rule": { "additionalProperties": false, "properties": { @@ -202578,6 +203081,12 @@ { "$ref": "#/definitions/AWS::IVS::StreamKey" }, + { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::IVSChat::Room" + }, { "$ref": "#/definitions/AWS::IdentityStore::Group" }, @@ -203055,6 +203564,9 @@ { "$ref": "#/definitions/AWS::Macie::Session" }, + { + "$ref": "#/definitions/AWS::ManagedBlockchain::Accessor" + }, { "$ref": "#/definitions/AWS::ManagedBlockchain::Member" }, diff --git a/schema_source/cloudformation.schema.json b/schema_source/cloudformation.schema.json index 6d841fc06..b516d55fd 100644 --- a/schema_source/cloudformation.schema.json +++ b/schema_source/cloudformation.schema.json @@ -37457,7 +37457,13 @@ "type": "string" }, "Tags": { + "additionalProperties": true, "markdownDescription": "A list of tags to apply to this notification rule\\. Key names cannot start with \"`aws`\"\\. \n*Required*: No \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, "title": "Tags", "type": "object" }, @@ -52854,6 +52860,9 @@ "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ContributorInsightsSpecification" }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, "GlobalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" @@ -74191,6 +74200,12 @@ "title": "Passwords", "type": "array" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "UserId": { "markdownDescription": "The ID of the user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Pattern*: `[a-zA-Z][a-zA-Z0-9\\-]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "UserId", @@ -74292,6 +74307,12 @@ "title": "Engine", "type": "string" }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, "UserGroupId": { "markdownDescription": "The ID of the user group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "UserGroupId", @@ -74308,7 +74329,8 @@ }, "required": [ "Engine", - "UserGroupId" + "UserGroupId", + "UserIds" ], "type": "object" }, @@ -91582,6 +91604,9 @@ "markdownDescription": "The job configuration for the deployment configuration\\. The job configuration specifies the rollout, timeout, and stop configurations for the deployment configuration\\. \n*Required*: No \n*Type*: [DeploymentIoTJobConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-deployment-deploymentiotjobconfiguration.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "IotJobConfiguration" }, + "ParentTargetArn": { + "type": "string" + }, "Tags": { "additionalProperties": true, "markdownDescription": "Application\\-specific metadata to attach to the deployment\\. You can use tags in IAM policies to control access to AWS IoT Greengrass resources\\. You can also use tags to categorize your resources\\. For more information, see [Tag your AWS IoT Greengrass Version 2 resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html) in the *AWS IoT Greengrass V2 Developer Guide*\\. \nThis `Json` property type is processed as a map of key\\-value pairs\\. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates\\.", @@ -95041,6 +95066,225 @@ ], "type": "object" }, + "AWS::IVSChat::LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DestinationConfiguration": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.DestinationConfiguration" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DestinationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVSChat::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + } + }, + "required": [ + "LogGroupName" + ], + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration" + }, + "S3": { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration" + } + }, + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::IVSChat::Room": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "LoggingConfigurationIdentifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumMessageLength": { + "type": "number" + }, + "MaximumMessageRatePerSecond": { + "type": "number" + }, + "MessageReviewHandler": { + "$ref": "#/definitions/AWS::IVSChat::Room.MessageReviewHandler" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVSChat::Room" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IVSChat::Room.MessageReviewHandler": { + "additionalProperties": false, + "properties": { + "FallbackResult": { + "type": "string" + }, + "Uri": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IdentityStore::Group": { "additionalProperties": false, "properties": { @@ -97523,6 +97767,9 @@ "Properties": { "additionalProperties": false, "properties": { + "MaxCityNetworksToMonitor": { + "type": "number" + }, "MonitorName": { "type": "string" }, @@ -118360,6 +118607,9 @@ "markdownDescription": "\\(Streams only\\) An Amazon SQS queue or Amazon SNS topic destination for discarded records\\. \n*Required*: No \n*Type*: [DestinationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DestinationConfig" }, + "DocumentDBEventSourceConfig": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig" + }, "Enabled": { "markdownDescription": "When true, the event source mapping is active\\. When false, Lambda pauses polling and invocation\\. \nDefault: True \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Enabled", @@ -118511,6 +118761,21 @@ }, "type": "object" }, + "AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig": { + "additionalProperties": false, + "properties": { + "CollectionName": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "FullDocument": { + "type": "string" + } + }, + "type": "object" + }, "AWS::Lambda::EventSourceMapping.Endpoints": { "additionalProperties": false, "properties": { @@ -120062,6 +120327,9 @@ "AWS::Lex::Bot.CustomVocabularyItem": { "additionalProperties": false, "properties": { + "DisplayAs": { + "type": "string" + }, "Phrase": { "markdownDescription": "Specifies 1 \\- 4 words that should be recognized\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Phrase", @@ -128533,6 +128801,77 @@ ], "type": "object" }, + "AWS::ManagedBlockchain::Accessor": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessorType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AccessorType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ManagedBlockchain::Accessor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, "AWS::ManagedBlockchain::Member": { "additionalProperties": false, "properties": { @@ -134718,6 +135057,12 @@ "Properties": { "additionalProperties": false, "properties": { + "EgressEndpoints": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::Asset.EgressEndpoint" + }, + "type": "array" + }, "Id": { "markdownDescription": "Unique identifier that you assign to the asset\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Id", @@ -156116,6 +156461,9 @@ "title": "Tags", "type": "array" }, + "TargetRole": { + "type": "string" + }, "VpcSecurityGroupIds": { "items": { "type": "string" @@ -190883,6 +191231,24 @@ ], "type": "object" }, + "AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet": { + "additionalProperties": false, + "properties": { + "LoginPath": { + "type": "string" + }, + "RequestInspection": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RequestInspection" + }, + "ResponseInspection": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspection" + } + }, + "required": [ + "LoginPath" + ], + "type": "object" + }, "AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet": { "additionalProperties": false, "properties": { @@ -191515,6 +191881,9 @@ "AWS::WAFv2::WebACL.ManagedRuleGroupConfig": { "additionalProperties": false, "properties": { + "AWSManagedRulesATPRuleSet": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet" + }, "AWSManagedRulesBotControlRuleSet": { "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet", "markdownDescription": "Additional configuration for using the Bot Control managed rule group\\. Use this to specify the inspection level that you want to use\\. For information about using the Bot Control managed rule group, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html) and [AWS WAF Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html) in the * AWS WAF Developer Guide*\\. \n*Required*: No \n*Type*: [AWSManagedRulesBotControlRuleSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesbotcontrolruleset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -191732,6 +192101,140 @@ ], "type": "object" }, + "AWS::WAFv2::WebACL.RequestInspection": { + "additionalProperties": false, + "properties": { + "PasswordField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + }, + "PayloadType": { + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + } + }, + "required": [ + "PasswordField", + "PayloadType", + "UsernameField" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspection": { + "additionalProperties": false, + "properties": { + "BodyContains": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionBodyContains" + }, + "Header": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionHeader" + }, + "Json": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionJson" + }, + "StatusCode": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionStatusCode" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionBodyContains": { + "additionalProperties": false, + "properties": { + "FailureStrings": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SuccessStrings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "FailureStrings", + "SuccessStrings" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionHeader": { + "additionalProperties": false, + "properties": { + "FailureValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SuccessValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "FailureValues", + "Name", + "SuccessValues" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionJson": { + "additionalProperties": false, + "properties": { + "FailureValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Identifier": { + "type": "string" + }, + "SuccessValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "FailureValues", + "Identifier", + "SuccessValues" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ResponseInspectionStatusCode": { + "additionalProperties": false, + "properties": { + "FailureCodes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SuccessCodes": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "FailureCodes", + "SuccessCodes" + ], + "type": "object" + }, "AWS::WAFv2::WebACL.Rule": { "additionalProperties": false, "properties": { @@ -195151,6 +195654,12 @@ { "$ref": "#/definitions/AWS::IVS::StreamKey" }, + { + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::IVSChat::Room" + }, { "$ref": "#/definitions/AWS::IdentityStore::Group" }, @@ -195628,6 +196137,9 @@ { "$ref": "#/definitions/AWS::Macie::Session" }, + { + "$ref": "#/definitions/AWS::ManagedBlockchain::Accessor" + }, { "$ref": "#/definitions/AWS::ManagedBlockchain::Member" }, From cd17985090c05584802b0b04ad2eef6a39344f9b Mon Sep 17 00:00:00 2001 From: Mustafa Sadiq <43514193+mustafa-sadiq@users.noreply.github.com> Date: Mon, 6 Mar 2023 18:35:20 -0500 Subject: [PATCH 08/32] Feature: SNS Event FilterPolicyScope attribute (#2988) Co-authored-by: Mustafa Sadiq Co-authored-by: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> --- .../combination/test_function_with_sns.py | 1 + .../function_with_sns_intrinsics.yaml | 1 + .../schema_source/aws_serverless_function.py | 1 + samtranslator/model/eventsources/push.py | 27 ++++++++++++++++--- samtranslator/model/sns.py | 1 + samtranslator/schema/schema.json | 3 +++ .../validator/sam_schema/schema.json | 3 +++ schema_source/sam.schema.json | 3 +++ .../eventsources/test_sns_event_source.py | 12 +++++++++ ..._with_sns_event_source_all_parameters.yaml | 1 + tests/translator/input/sns_existing_sqs.yaml | 1 + tests/translator/input/sns_intrinsics.yaml | 1 + tests/translator/input/sns_outside_sqs.yaml | 1 + tests/translator/input/sns_sqs.yaml | 1 + ..._with_sns_event_source_all_parameters.json | 1 + .../output/aws-cn/sns_existing_sqs.json | 1 + .../output/aws-cn/sns_intrinsics.json | 1 + .../output/aws-cn/sns_outside_sqs.json | 1 + tests/translator/output/aws-cn/sns_sqs.json | 1 + ..._with_sns_event_source_all_parameters.json | 1 + .../output/aws-us-gov/sns_existing_sqs.json | 1 + .../output/aws-us-gov/sns_intrinsics.json | 1 + .../output/aws-us-gov/sns_outside_sqs.json | 1 + .../translator/output/aws-us-gov/sns_sqs.json | 1 + ..._with_sns_event_source_all_parameters.json | 1 + tests/translator/output/sns_existing_sqs.json | 1 + tests/translator/output/sns_intrinsics.json | 1 + tests/translator/output/sns_outside_sqs.json | 1 + tests/translator/output/sns_sqs.json | 1 + 29 files changed, 69 insertions(+), 3 deletions(-) diff --git a/integration/combination/test_function_with_sns.py b/integration/combination/test_function_with_sns.py index 6cc46186f..5dfc1a885 100644 --- a/integration/combination/test_function_with_sns.py +++ b/integration/combination/test_function_with_sns.py @@ -51,3 +51,4 @@ def test_function_with_sns_intrinsics(self): subscription_arn = subscription["SubscriptionArn"] subscription_attributes = sns_client.get_subscription_attributes(SubscriptionArn=subscription_arn) self.assertEqual(subscription_attributes["Attributes"]["FilterPolicy"], '{"price_usd":[{"numeric":["<",100]}]}') + self.assertEqual(subscription_attributes["Attributes"]["FilterPolicyScope"], "MessageAttributes") diff --git a/integration/resources/templates/combination/function_with_sns_intrinsics.yaml b/integration/resources/templates/combination/function_with_sns_intrinsics.yaml index 8b0f72ded..3530c6a4c 100644 --- a/integration/resources/templates/combination/function_with_sns_intrinsics.yaml +++ b/integration/resources/templates/combination/function_with_sns_intrinsics.yaml @@ -30,6 +30,7 @@ Resources: - numeric: - < - 100 + FilterPolicyScope: MessageAttributes Region: Ref: AWS::Region SqsSubscription: true diff --git a/samtranslator/internal/schema_source/aws_serverless_function.py b/samtranslator/internal/schema_source/aws_serverless_function.py index 5c42f04cb..e060b1475 100644 --- a/samtranslator/internal/schema_source/aws_serverless_function.py +++ b/samtranslator/internal/schema_source/aws_serverless_function.py @@ -138,6 +138,7 @@ class SqsSubscription(BaseModel): class SNSEventProperties(BaseModel): FilterPolicy: Optional[PassThroughProp] = snseventproperties("FilterPolicy") + FilterPolicyScope: Optional[PassThroughProp] # TODO: add documentation Region: Optional[PassThroughProp] = snseventproperties("Region") SqsSubscription: Optional[Union[bool, SqsSubscription]] = snseventproperties("SqsSubscription") Topic: PassThroughProp = snseventproperties("Topic") diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index 56dd07ac5..ea3315b5a 100644 --- a/samtranslator/model/eventsources/push.py +++ b/samtranslator/model/eventsources/push.py @@ -5,7 +5,7 @@ from samtranslator.intrinsics.resolver import IntrinsicsResolver from samtranslator.metrics.method_decorator import cw_timer -from samtranslator.model import PropertyType, ResourceMacro +from samtranslator.model import PassThroughProperty, PropertyType, ResourceMacro from samtranslator.model.cognito import CognitoUserPool from samtranslator.model.eventbridge_utils import EventBridgeRuleUtils from samtranslator.model.events import EventsRule, generate_valid_target_id @@ -486,6 +486,7 @@ class SNS(PushEventSource): "Topic": PropertyType(True, IS_STR), "Region": PropertyType(False, IS_STR), "FilterPolicy": PropertyType(False, dict_of(IS_STR, list_of(one_of(IS_STR, IS_DICT)))), + "FilterPolicyScope": PassThroughProperty(False), "SqsSubscription": PropertyType(False, one_of(IS_BOOL, IS_DICT)), "RedrivePolicy": PropertyType(False, IS_DICT), } @@ -493,6 +494,7 @@ class SNS(PushEventSource): Topic: str Region: Optional[str] FilterPolicy: Optional[Dict[str, Any]] + FilterPolicyScope: Optional[str] SqsSubscription: Optional[Any] RedrivePolicy: Optional[Dict[str, Any]] @@ -518,6 +520,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] self.Topic, self.Region, self.FilterPolicy, + self.FilterPolicyScope, self.RedrivePolicy, function, ) @@ -532,7 +535,14 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] queue_policy = self._inject_sqs_queue_policy(self.Topic, queue_arn, queue_url, function) # type: ignore[no-untyped-call] subscription = self._inject_subscription( - "sqs", queue_arn, self.Topic, self.Region, self.FilterPolicy, self.RedrivePolicy, function + "sqs", + queue_arn, + self.Topic, + self.Region, + self.FilterPolicy, + self.FilterPolicyScope, + self.RedrivePolicy, + function, ) event_source = self._inject_sqs_event_source_mapping(function, role, queue_arn) # type: ignore[no-untyped-call] @@ -560,7 +570,14 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] self.Topic, queue_arn, queue_url, function, queue_policy_logical_id ) subscription = self._inject_subscription( - "sqs", queue_arn, self.Topic, self.Region, self.FilterPolicy, self.RedrivePolicy, function + "sqs", + queue_arn, + self.Topic, + self.Region, + self.FilterPolicy, + self.FilterPolicyScope, + self.RedrivePolicy, + function, ) event_source = self._inject_sqs_event_source_mapping(function, role, queue_arn, batch_size, enabled) # type: ignore[no-untyped-call] @@ -576,6 +593,7 @@ def _inject_subscription( # noqa: too-many-arguments topic: str, region: Optional[str], filterPolicy: Optional[Dict[str, Any]], + filterPolicyScope: Optional[str], redrivePolicy: Optional[Dict[str, Any]], function: Any, ) -> SNSSubscription: @@ -590,6 +608,9 @@ def _inject_subscription( # noqa: too-many-arguments if filterPolicy is not None: subscription.FilterPolicy = filterPolicy + if filterPolicyScope is not None: + subscription.FilterPolicyScope = filterPolicyScope + if redrivePolicy is not None: subscription.RedrivePolicy = redrivePolicy diff --git a/samtranslator/model/sns.py b/samtranslator/model/sns.py index a4650cefb..973d7f8fe 100644 --- a/samtranslator/model/sns.py +++ b/samtranslator/model/sns.py @@ -10,6 +10,7 @@ class SNSSubscription(Resource): "TopicArn": GeneratedProperty(), "Region": GeneratedProperty(), "FilterPolicy": GeneratedProperty(), + "FilterPolicyScope": GeneratedProperty(), "RedrivePolicy": GeneratedProperty(), } diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 107359cb0..ff24a8c41 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -196572,6 +196572,9 @@ "markdownDescription": "The filter policy JSON assigned to the subscription\\. For more information, see [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) in the Amazon Simple Notification Service API Reference\\. \n*Type*: [SnsFilterPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy) property of an `AWS::SNS::Subscription` resource\\.", "title": "FilterPolicy" }, + "FilterPolicyScope": { + "$ref": "#/definitions/PassThroughProp" + }, "Region": { "allOf": [ { diff --git a/samtranslator/validator/sam_schema/schema.json b/samtranslator/validator/sam_schema/schema.json index 393004f6b..ac671b999 100644 --- a/samtranslator/validator/sam_schema/schema.json +++ b/samtranslator/validator/sam_schema/schema.json @@ -783,6 +783,9 @@ }, "FilterPolicy": { "type": "object" + }, + "FilterPolicyScope": { + "type": "string" } }, "required": [ diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index fd3ddfa0c..b5982d11c 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -2470,6 +2470,9 @@ "markdownDescription": "The filter policy JSON assigned to the subscription\\. For more information, see [GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html) in the Amazon Simple Notification Service API Reference\\. \n*Type*: [SnsFilterPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-filterpolicy) property of an `AWS::SNS::Subscription` resource\\.", "title": "FilterPolicy" }, + "FilterPolicyScope": { + "$ref": "#/definitions/PassThroughProp" + }, "Region": { "allOf": [ { diff --git a/tests/model/eventsources/test_sns_event_source.py b/tests/model/eventsources/test_sns_event_source.py index 12b3b84d3..b2f17660b 100644 --- a/tests/model/eventsources/test_sns_event_source.py +++ b/tests/model/eventsources/test_sns_event_source.py @@ -30,6 +30,7 @@ def test_to_cloudformation_returns_permission_and_subscription_resources(self): self.assertEqual(subscription.Endpoint, "arn:aws:lambda:mock") self.assertIsNone(subscription.Region) self.assertIsNone(subscription.FilterPolicy) + self.assertIsNone(subscription.FilterPolicyScope) self.assertIsNone(subscription.RedrivePolicy) def test_to_cloudformation_passes_the_region(self): @@ -56,6 +57,16 @@ def test_to_cloudformation_passes_the_filter_policy(self): subscription = resources[1] self.assertEqual(subscription.FilterPolicy, filterPolicy) + def test_to_cloudformation_passes_the_filter_policy_scope(self): + filterPolicyScope = "MessageAttributes" + self.sns_event_source.FilterPolicyScope = filterPolicyScope + + resources = self.sns_event_source.to_cloudformation(function=self.function) + self.assertEqual(len(resources), 2) + self.assertEqual(resources[1].resource_type, "AWS::SNS::Subscription") + subscription = resources[1] + self.assertEqual(subscription.FilterPolicyScope, filterPolicyScope) + def test_to_cloudformation_passes_the_redrive_policy(self): redrive_policy = {"deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue"} self.sns_event_source.RedrivePolicy = redrive_policy @@ -89,4 +100,5 @@ def test_to_cloudformation_when_sqs_subscription_disable(self): self.assertEqual(subscription.Endpoint, "arn:aws:lambda:mock") self.assertIsNone(subscription.Region) self.assertIsNone(subscription.FilterPolicy) + self.assertIsNone(subscription.FilterPolicyScope) self.assertIsNone(subscription.RedrivePolicy) diff --git a/tests/translator/input/function_with_sns_event_source_all_parameters.yaml b/tests/translator/input/function_with_sns_event_source_all_parameters.yaml index 51285790d..e2624c75e 100644 --- a/tests/translator/input/function_with_sns_event_source_all_parameters.yaml +++ b/tests/translator/input/function_with_sns_event_source_all_parameters.yaml @@ -25,3 +25,4 @@ Resources: - numeric: - '>=' - 100 + FilterPolicyScope: MessageAttributes diff --git a/tests/translator/input/sns_existing_sqs.yaml b/tests/translator/input/sns_existing_sqs.yaml index c4b5cca4a..3a9f9d231 100644 --- a/tests/translator/input/sns_existing_sqs.yaml +++ b/tests/translator/input/sns_existing_sqs.yaml @@ -23,6 +23,7 @@ Resources: - numeric: - '>=' - 100 + FilterPolicyScope: MessageAttributes Notifications: Type: AWS::SNS::Topic diff --git a/tests/translator/input/sns_intrinsics.yaml b/tests/translator/input/sns_intrinsics.yaml index 103922db4..1b04eac6f 100644 --- a/tests/translator/input/sns_intrinsics.yaml +++ b/tests/translator/input/sns_intrinsics.yaml @@ -31,6 +31,7 @@ Resources: - numeric: - < - 100 + FilterPolicyScope: MessageAttributes Region: Ref: SnsRegion SqsSubscription: true diff --git a/tests/translator/input/sns_outside_sqs.yaml b/tests/translator/input/sns_outside_sqs.yaml index e0d1b8c57..7cf3552c8 100644 --- a/tests/translator/input/sns_outside_sqs.yaml +++ b/tests/translator/input/sns_outside_sqs.yaml @@ -23,6 +23,7 @@ Resources: - numeric: - '>=' - 100 + FilterPolicyScope: MessageAttributes Notifications: Type: AWS::SNS::Topic diff --git a/tests/translator/input/sns_sqs.yaml b/tests/translator/input/sns_sqs.yaml index 768b6c088..6afc3ff71 100644 --- a/tests/translator/input/sns_sqs.yaml +++ b/tests/translator/input/sns_sqs.yaml @@ -18,6 +18,7 @@ Resources: - numeric: - '>=' - 100 + FilterPolicyScope: MessageAttributes Notifications: Type: AWS::SNS::Topic diff --git a/tests/translator/output/aws-cn/function_with_sns_event_source_all_parameters.json b/tests/translator/output/aws-cn/function_with_sns_event_source_all_parameters.json index 4e3684260..12d0a5ff4 100644 --- a/tests/translator/output/aws-cn/function_with_sns_event_source_all_parameters.json +++ b/tests/translator/output/aws-cn/function_with_sns_event_source_all_parameters.json @@ -54,6 +54,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "lambda", "Region": "region", "TopicArn": "topicArn" diff --git a/tests/translator/output/aws-cn/sns_existing_sqs.json b/tests/translator/output/aws-cn/sns_existing_sqs.json index 8e46790c5..58d15c888 100644 --- a/tests/translator/output/aws-cn/sns_existing_sqs.json +++ b/tests/translator/output/aws-cn/sns_existing_sqs.json @@ -83,6 +83,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/aws-cn/sns_intrinsics.json b/tests/translator/output/aws-cn/sns_intrinsics.json index 8807e7981..339eeabb0 100644 --- a/tests/translator/output/aws-cn/sns_intrinsics.json +++ b/tests/translator/output/aws-cn/sns_intrinsics.json @@ -73,6 +73,7 @@ } ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "Region": { "Ref": "SnsRegion" diff --git a/tests/translator/output/aws-cn/sns_outside_sqs.json b/tests/translator/output/aws-cn/sns_outside_sqs.json index 64f9208d5..069211b55 100644 --- a/tests/translator/output/aws-cn/sns_outside_sqs.json +++ b/tests/translator/output/aws-cn/sns_outside_sqs.json @@ -68,6 +68,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/aws-cn/sns_sqs.json b/tests/translator/output/aws-cn/sns_sqs.json index 34fa04b7b..c5ce703ea 100644 --- a/tests/translator/output/aws-cn/sns_sqs.json +++ b/tests/translator/output/aws-cn/sns_sqs.json @@ -47,6 +47,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/aws-us-gov/function_with_sns_event_source_all_parameters.json b/tests/translator/output/aws-us-gov/function_with_sns_event_source_all_parameters.json index 636851948..4a091f1d0 100644 --- a/tests/translator/output/aws-us-gov/function_with_sns_event_source_all_parameters.json +++ b/tests/translator/output/aws-us-gov/function_with_sns_event_source_all_parameters.json @@ -54,6 +54,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "lambda", "Region": "region", "TopicArn": "topicArn" diff --git a/tests/translator/output/aws-us-gov/sns_existing_sqs.json b/tests/translator/output/aws-us-gov/sns_existing_sqs.json index 4c47260f9..793cef26b 100644 --- a/tests/translator/output/aws-us-gov/sns_existing_sqs.json +++ b/tests/translator/output/aws-us-gov/sns_existing_sqs.json @@ -83,6 +83,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/aws-us-gov/sns_intrinsics.json b/tests/translator/output/aws-us-gov/sns_intrinsics.json index 1deae3980..c62f5064b 100644 --- a/tests/translator/output/aws-us-gov/sns_intrinsics.json +++ b/tests/translator/output/aws-us-gov/sns_intrinsics.json @@ -73,6 +73,7 @@ } ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "Region": { "Ref": "SnsRegion" diff --git a/tests/translator/output/aws-us-gov/sns_outside_sqs.json b/tests/translator/output/aws-us-gov/sns_outside_sqs.json index fa06c5c32..b1eb14bc7 100644 --- a/tests/translator/output/aws-us-gov/sns_outside_sqs.json +++ b/tests/translator/output/aws-us-gov/sns_outside_sqs.json @@ -68,6 +68,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/aws-us-gov/sns_sqs.json b/tests/translator/output/aws-us-gov/sns_sqs.json index d8ada8336..66f0bcc74 100644 --- a/tests/translator/output/aws-us-gov/sns_sqs.json +++ b/tests/translator/output/aws-us-gov/sns_sqs.json @@ -47,6 +47,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/function_with_sns_event_source_all_parameters.json b/tests/translator/output/function_with_sns_event_source_all_parameters.json index 937c46462..7eb6d06d1 100644 --- a/tests/translator/output/function_with_sns_event_source_all_parameters.json +++ b/tests/translator/output/function_with_sns_event_source_all_parameters.json @@ -54,6 +54,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "lambda", "Region": "region", "TopicArn": "topicArn" diff --git a/tests/translator/output/sns_existing_sqs.json b/tests/translator/output/sns_existing_sqs.json index b7a5d7518..c1c3c981b 100644 --- a/tests/translator/output/sns_existing_sqs.json +++ b/tests/translator/output/sns_existing_sqs.json @@ -83,6 +83,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/sns_intrinsics.json b/tests/translator/output/sns_intrinsics.json index 0622e3631..d4755e7d3 100644 --- a/tests/translator/output/sns_intrinsics.json +++ b/tests/translator/output/sns_intrinsics.json @@ -73,6 +73,7 @@ } ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "Region": { "Ref": "SnsRegion" diff --git a/tests/translator/output/sns_outside_sqs.json b/tests/translator/output/sns_outside_sqs.json index 56287e55f..61ae792af 100644 --- a/tests/translator/output/sns_outside_sqs.json +++ b/tests/translator/output/sns_outside_sqs.json @@ -68,6 +68,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" diff --git a/tests/translator/output/sns_sqs.json b/tests/translator/output/sns_sqs.json index 52b69763f..5cb19e0bb 100644 --- a/tests/translator/output/sns_sqs.json +++ b/tests/translator/output/sns_sqs.json @@ -47,6 +47,7 @@ "example_corp" ] }, + "FilterPolicyScope": "MessageAttributes", "Protocol": "sqs", "TopicArn": { "Ref": "Notifications" From 52fa2fe21aea8f2db6e1b7d7cbd38b6e52392a8d Mon Sep 17 00:00:00 2001 From: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> Date: Tue, 7 Mar 2023 09:56:16 -0800 Subject: [PATCH 09/32] ci: ignore unused parameter cfn-lint rule (#3003) --- .cfnlintrc.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.cfnlintrc.yaml b/.cfnlintrc.yaml index ccc16236e..17d090245 100644 --- a/.cfnlintrc.yaml +++ b/.cfnlintrc.yaml @@ -125,3 +125,4 @@ ignore_checks: - E2531 # Deprecated runtime; not relevant for transform tests - W2531 # EOL runtime; not relevant for transform tests - E3001 # Invalid or unsupported Type; common in transform tests since they focus on SAM resources + - W2001 # Parameter not used From c29f64a069ead2658a2e5412df53002b85bde3ee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 18:04:34 +0000 Subject: [PATCH 10/32] chore(schema): update (#3002) Co-authored-by: github-actions --- samtranslator/schema/schema.json | 464 +++++++++++++++-------- schema_source/cloudformation-docs.json | 406 +++++++++++++------- schema_source/cloudformation.schema.json | 464 +++++++++++++++-------- 3 files changed, 893 insertions(+), 441 deletions(-) diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index ff24a8c41..1921a6c04 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -5245,7 +5245,7 @@ "type": "string" }, "AuthorizerId": { - "markdownDescription": "The identifier of an Authorizer to use on this method\\. The `authorizationType` must be `CUSTOM`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The identifier of an authorizer to use on this method\\. The method's authorization type must be `CUSTOM` or `COGNITO_USER_POOLS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AuthorizerId", "type": "string" }, @@ -9003,6 +9003,8 @@ "type": "number" }, "VersionLabel": { + "markdownDescription": "A user\\-defined label for an AWS AppConfig hosted configuration version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*[^0-9].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VersionLabel", "type": "string" } }, @@ -9086,7 +9088,7 @@ "type": "string" }, "Description": { - "markdownDescription": "A description of the connector entity field\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A description about the connector runtime setting\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Description", "type": "string" } @@ -9961,17 +9963,17 @@ "type": "string" }, "ClusterIdentifier": { - "markdownDescription": "The unique ID that's assigned to an Amazon Redshift cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ClusterIdentifier", "type": "string" }, "DataApiRoleArn": { - "markdownDescription": "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 [Allow Amazon AppFlow to access Amazon Redshift databases with the Data API](https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_service-role-policies.html#access-redshift)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `arn:aws:iam:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DataApiRoleArn", "type": "string" }, "DatabaseName": { - "markdownDescription": "The name of an Amazon Redshift database\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DatabaseName", "type": "string" }, @@ -9981,7 +9983,7 @@ "type": "string" }, "IsRedshiftServerless": { - "markdownDescription": "Indicates whether the connector profile defines a connection to an Amazon Redshift Serverless data warehouse\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IsRedshiftServerless", "type": "boolean" }, @@ -9991,7 +9993,7 @@ "type": "string" }, "WorkgroupName": { - "markdownDescription": "The name of an Amazon Redshift workgroup\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "WorkgroupName", "type": "string" } @@ -10480,7 +10482,7 @@ "type": "string" }, "TargetFileSize": { - "markdownDescription": "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\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TargetFileSize", "type": "number" } @@ -10933,7 +10935,7 @@ "properties": { "GlueDataCatalog": { "$ref": "#/definitions/AWS::AppFlow::Flow.GlueDataCatalog", - "markdownDescription": "Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: [GlueDataCatalog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: [GlueDataCatalog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "GlueDataCatalog" } }, @@ -10960,7 +10962,7 @@ "items": { "type": "string" }, - "markdownDescription": "Specifies whether the destination file path includes either or both of the following elements: \nEXECUTION\\_ID \nThe ID that Amazon AppFlow assigns to the flow run\\. \nSCHEMA\\_VERSION \nThe 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: \n+ Source\\-to\\-destination field mappings\n+ Field data types\n+ Partition keys\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "PathPrefixHierarchy", "type": "array" }, @@ -11436,7 +11438,7 @@ "type": "string" }, "ConnectorType": { - "markdownDescription": "The type of source connector, such as Salesforce, Amplitude, and so on\\. \n*Allowed Values*: S3 \\| Amplitude \\| Datadog \\| Dynatrace \\| Googleanalytics \\| Infornexus \\| Salesforce \\| Servicenow \\| Singular \\| Slack \\| Trendmicro \\| Veeva \\| Zendesk \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The type of connector, such as Salesforce, Amplitude, and so on\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Amplitude | CustomConnector | CustomerProfiles | Datadog | Dynatrace | EventBridge | Googleanalytics | Honeycode | Infornexus | LookoutMetrics | Marketo | Pardot | Redshift | S3 | Salesforce | SAPOData | Servicenow | Singular | Slack | Snowflake | Trendmicro | Upsolver | Veeva | Zendesk` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ConnectorType", "type": "string" }, @@ -28915,7 +28917,7 @@ "type": "array" }, "PermissionModel": { - "markdownDescription": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SELF_MANAGED | SERVICE_MANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "PermissionModel", "type": "string" }, @@ -28998,7 +29000,7 @@ "additionalProperties": false, "properties": { "AccountFilterType": { - "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Limit deployment targets to individual accounts or include additional accounts with provided OUs\\. \nThe following is a list of possible values for the `AccountFilterType` operation\\. \n+ `INTERSECTION`: StackSets deploys to the accounts specified in `Accounts` parameter\\. \n+ `DIFFERENCE`: StackSets excludes the accounts specified in `Accounts` parameter\\. This enables user to avoid certain accounts within an OU such as suspended accounts\\.\n+ `UNION`: StackSets includes additional accounts deployment targets\\.", "title": "AccountFilterType", "type": "string" }, @@ -29025,7 +29027,7 @@ "additionalProperties": false, "properties": { "Active": { - "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "When `true`, StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. After conflicting operations finish, StackSets starts queued operations in request order\\. \nIf there are already running or queued operations, StackSets queues all incoming operations even if they are non\\-conflicting\\. \nYou can't modify your stack set's execution configuration while there are running or queued operations for that stack set\\.\nWhen `false` \\(default\\), StackSets performs one operation at a time in request order\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Active", "type": "boolean" } @@ -29041,22 +29043,22 @@ "type": "number" }, "FailureTolerancePercentage": { - "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "FailureTolerancePercentage", "type": "number" }, "MaxConcurrentCount": { - "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MaxConcurrentCount", "type": "number" }, "MaxConcurrentPercentage": { - "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MaxConcurrentPercentage", "type": "number" }, "RegionConcurrencyType": { - "markdownDescription": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Allowed values*: `PARALLEL | SEQUENTIAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "RegionConcurrencyType", "type": "string" }, @@ -29476,7 +29478,7 @@ }, "ParametersInCacheKeyAndForwardedToOrigin": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin", - "markdownDescription": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are also included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ParametersInCacheKeyAndForwardedToOrigin" } }, @@ -29493,7 +29495,7 @@ "additionalProperties": false, "properties": { "CookieBehavior": { - "markdownDescription": "Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests that are * **not** * listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No cookies in viewer requests are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, * **except** * for those that are listed in the `CookieNames` type, which are not included\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "CookieBehavior", "type": "string" }, @@ -29515,7 +29517,7 @@ "additionalProperties": false, "properties": { "HeaderBehavior": { - "markdownDescription": "Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any HTTP headers are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No HTTP headers are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the HTTP headers that are listed in the `Headers` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HeaderBehavior", "type": "string" }, @@ -29538,7 +29540,7 @@ "properties": { "CookiesConfig": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CookiesConfig", - "markdownDescription": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "CookiesConfig" }, "EnableAcceptEncodingBrotli": { @@ -29553,12 +29555,12 @@ }, "HeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.HeadersConfig", - "markdownDescription": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HeadersConfig" }, "QueryStringsConfig": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.QueryStringsConfig", - "markdownDescription": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "QueryStringsConfig" } }, @@ -29574,7 +29576,7 @@ "additionalProperties": false, "properties": { "QueryStringBehavior": { - "markdownDescription": "Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests that are * **not** * listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No query strings in viewer requests are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, * **except** * those that are listed in the `QueryStringNames` type, which are not included\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "QueryStringBehavior", "type": "string" }, @@ -31342,7 +31344,7 @@ "additionalProperties": false, "properties": { "CookieBehavior": { - "markdownDescription": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `CookieNames` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "CookieBehavior", "type": "string" }, @@ -31364,7 +31366,7 @@ "additionalProperties": false, "properties": { "HeaderBehavior": { - "markdownDescription": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n+ `allExcept` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `Headers` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allExcept | allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HeaderBehavior", "type": "string" }, @@ -31423,7 +31425,7 @@ "additionalProperties": false, "properties": { "QueryStringBehavior": { - "markdownDescription": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `QueryStringNames` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "QueryStringBehavior", "type": "string" }, @@ -32403,7 +32405,7 @@ "type": "string" }, "Source": { - "markdownDescription": "The name of the partner or external event source\\. You cannot change this name after you create the channel\\. A maximum of one channel is allowed per source\\. \n A source can be either `Custom` for all valid non\\-AWS events, or the name of a partner event source\\. For information about the source names for available partners, see [Additional information about integration partners](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-integration.html#cloudtrail-lake-partner-information) in the CloudTrail User Guide\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The name of the partner or external event source\\. You cannot change this name after you create the channel\\. A maximum of one channel is allowed per source\\. \n A source can be either `Custom` for all valid non\\-AWS events, or the name of a partner event source\\. For information about the source names for available partners, see [Additional information about integration partners](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-integration.html#cloudtrail-lake-partner-information) in the CloudTrail User Guide\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Source", "type": "string" }, @@ -32604,7 +32606,7 @@ "type": "array" }, "Field": { - "markdownDescription": "A field in a CloudTrail event record on which to filter events to be logged\\. For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the field is used only for selecting events as filtering is not supported\\. \n For CloudTrail event records, supported fields include `readOnly`, `eventCategory`, `eventSource` \\(for management events\\), `eventName`, `resources.type`, and `resources.ARN`\\. \n For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the only supported field is `eventCategory`\\. \n+ ** `readOnly` ** \\- Optional\\. Can be set to `Equals` a value of `true` or `false`\\. If you do not add this field, CloudTrail logs both `read` and `write` events\\. A value of `true` logs only `read` events\\. A value of `false` logs only `write` events\\.\n+ ** `eventSource` ** \\- For filtering management events only\\. This can be set only to `NotEquals` `kms.amazonaws.com`\\.\n+ ** `eventName` ** \\- Can use any operator\\. You can use it to \ufb01lter in or \ufb01lter out any data event logged to CloudTrail, such as `PutBucket` or `GetSnapshotBlock`\\. You can have multiple values for this \ufb01eld, separated by commas\\.\n+ ** `eventCategory` ** \\- This is required and must be set to `Equals`\\. \n + For CloudTrail event records, the value must be `Management` or `Data`\\. \n + For AWS Config configuration items, the value must be `ConfigurationItem`\\. \n + For Audit Manager evidence, the value must be `Evidence`\\. \n + For non\\-AWS events, the value must be `ActivityAuditLog`\\. \n+ ** `resources.type` ** \\- This \ufb01eld is required for CloudTrail data events\\. `resources.type` can only use the `Equals` operator, and the value can be one of the following:\n + `AWS::DynamoDB::Table` \n + `AWS::Lambda::Function` \n + `AWS::S3::Object` \n + `AWS::CloudTrail::Channel` \n + `AWS::Cognito::IdentityPool` \n + `AWS::DynamoDB::Stream` \n + `AWS::EC2::Snapshot` \n + `AWS::FinSpace::Environment` \n + `AWS::Glue::Table` \n + `AWS::KendraRanking::ExecutionPlan` \n + `AWS::ManagedBlockchain::Node` \n + `AWS::SageMaker::ExperimentTrialComponent` \n + `AWS::SageMaker::FeatureGroup` \n + `AWS::S3::AccessPoint` \n + `AWS::S3ObjectLambda::AccessPoint` \n + `AWS::S3Outposts::Object`", + "markdownDescription": "A field in a CloudTrail event record on which to filter events to be logged\\. For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the field is used only for selecting events as filtering is not supported\\. \n For CloudTrail event records, supported fields include `readOnly`, `eventCategory`, `eventSource` \\(for management events\\), `eventName`, `resources.type`, and `resources.ARN`\\. \n For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the only supported field is `eventCategory`\\. \n+ ** `readOnly` ** \\- Optional\\. Can be set to `Equals` a value of `true` or `false`\\. If you do not add this field, CloudTrail logs both `read` and `write` events\\. A value of `true` logs only `read` events\\. A value of `false` logs only `write` events\\.\n+ ** `eventSource` ** \\- For filtering management events only\\. This can be set only to `NotEquals` `kms.amazonaws.com`\\.\n+ ** `eventName` ** \\- Can use any operator\\. You can use it to \ufb01lter in or \ufb01lter out any data event logged to CloudTrail, such as `PutBucket` or `GetSnapshotBlock`\\. You can have multiple values for this \ufb01eld, separated by commas\\.\n+ ** `eventCategory` ** \\- This is required and must be set to `Equals`\\. \n + For CloudTrail event records, the value must be `Management` or `Data`\\. \n + For AWS Config configuration items, the value must be `ConfigurationItem`\\. \n + For Audit Manager evidence, the value must be `Evidence`\\. \n + For non\\-AWS events, the value must be `ActivityAuditLog`\\. \n+ ** `resources.type` ** \\- This \ufb01eld is required for CloudTrail data events\\. `resources.type` can only use the `Equals` operator, and the value can be one of the following:\n + `AWS::DynamoDB::Table` \n + `AWS::Lambda::Function` \n + `AWS::S3::Object` \n + `AWS::CloudTrail::Channel` \n + `AWS::Cognito::IdentityPool` \n + `AWS::DynamoDB::Stream` \n + `AWS::EC2::InstanceConnectEndpoint` \n + `AWS::EC2::Snapshot` \n + `AWS::FinSpace::Environment` \n + `AWS::Glue::Table` \n + `AWS::KendraRanking::ExecutionPlan` \n + `AWS::ManagedBlockchain::Node` \n + `AWS::SageMaker::ExperimentTrialComponent` \n + `AWS::SageMaker::FeatureGroup` \n + `AWS::S3::AccessPoint` \n + `AWS::S3ObjectLambda::AccessPoint` \n + `AWS::S3Outposts::Object`", "title": "Field", "type": "string" }, @@ -32786,7 +32788,7 @@ "items": { "$ref": "#/definitions/AWS::CloudTrail::Trail.InsightSelector" }, - "markdownDescription": "A JSON string that contains the insight types you want to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A JSON string that contains the insight types you want to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid Insight types\\. \nThe `ApiCallRateInsight` Insights type analyzes write\\-only management API calls that are aggregated per minute against a baseline API call volume\\. \nThe `ApiErrorRateInsight` Insights type analyzes management API calls that result in error codes\\. The error is shown if the API call is unsuccessful\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "InsightSelectors", "type": "array" }, @@ -32924,7 +32926,7 @@ "additionalProperties": false, "properties": { "InsightType": { - "markdownDescription": "The type of insights to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The type of Insights events to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid Insight types\\. \nThe `ApiCallRateInsight` Insights type analyzes write\\-only management API calls that are aggregated per minute against a baseline API call volume\\. \nThe `ApiErrorRateInsight` Insights type analyzes management API calls that result in error codes\\. The error is shown if the API call is unsuccessful\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "InsightType", "type": "string" } @@ -34580,7 +34582,7 @@ "type": "string" }, "Value": { - "markdownDescription": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs and secret access keys\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Value", "type": "string" } @@ -38638,7 +38640,7 @@ "type": "boolean" }, "IdTokenValidity": { - "markdownDescription": "The ID token time limit\\. After this limit expires, your user can't use their ID token\\. To specify the time unit for `IdTokenValidity` as `seconds`, `minutes`, `hours`, or `days`, set a `TokenValidityUnits` value in your API request\\. \nFor example, when you set `IdTokenValidity` as `10` and `TokenValidityUnits` as `hours`, your user can authenticate their session with their ID token for 10 hours\\. \nThe default time unit for `AccessTokenValidity` in an API request is hours\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ID token time limit\\. After this limit expires, your user can't use their ID token\\. To specify the time unit for `IdTokenValidity` as `seconds`, `minutes`, `hours`, or `days`, set a `TokenValidityUnits` value in your API request\\. \nFor example, when you set `IdTokenValidity` as `10` and `TokenValidityUnits` as `hours`, your user can authenticate their session with their ID token for 10 hours\\. \nThe default time unit for `IdTokenValidity` in an API request is hours\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IdTokenValidity", "type": "number" }, @@ -38756,17 +38758,17 @@ "additionalProperties": false, "properties": { "AccessToken": { - "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `AccessTokenValidity` parameter\\. The default `AccessTokenValidity` time unit is hours\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `AccessTokenValidity` parameter\\. The default `AccessTokenValidity` time unit is hours\\. `AccessTokenValidity` duration can range from five minutes to one day\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AccessToken", "type": "string" }, "IdToken": { - "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `IdTokenValidity` parameter\\. The default `IdTokenValidity` time unit is hours\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `IdTokenValidity` parameter\\. The default `IdTokenValidity` time unit is hours\\. `IdTokenValidity` duration can range from five minutes to one day\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IdToken", "type": "string" }, "RefreshToken": { - "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `RefreshTokenValidity` parameter\\. The default `RefreshTokenValidity` time unit is days\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `RefreshTokenValidity` parameter\\. The default `RefreshTokenValidity` time unit is days\\. `RefreshTokenValidity` duration can range from 60 minutes to 10 years\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "RefreshToken", "type": "string" } @@ -40221,7 +40223,7 @@ "items": { "type": "string" }, - "markdownDescription": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set the `AllSupported` option to false and populate the `ResourceTypes` option with values, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ResourceTypes", "type": "array" } @@ -41606,7 +41608,7 @@ "type": "string" }, "InstanceAlias": { - "markdownDescription": "The alias of instance\\. `InstanceAlias` is only required when `IdentityManagementType` is `CONNECT_MANAGED` or `SAML`\\. `InstanceAlias` is not required when `IdentityManagementType` is `EXISTING_DIRECTORY`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `62` \n*Pattern*: `^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The alias of instance\\. `InstanceAlias` is only required when `IdentityManagementType` is `CONNECT_MANAGED` or `SAML`\\. `InstanceAlias` is not required when `IdentityManagementType` is `EXISTING_DIRECTORY`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `45` \n*Pattern*: `^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InstanceAlias", "type": "string" } @@ -41791,7 +41793,7 @@ "type": "string" }, "KeyId": { - "markdownDescription": "The full ARN of the encryption key\\. \nBe sure to provide the full ARN of the encryption key, not just the ID\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The full ARN of the encryption key\\. \nBe sure to provide the full ARN of the encryption key, not just the ID\\. \nAmazon Connect supports only KMS keys with the default key spec of [https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-symmetric-default](https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-symmetric-default)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "KeyId", "type": "string" } @@ -49952,7 +49954,7 @@ "additionalProperties": false, "properties": { "Version": { - "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate a protocol version that they mutually support\\. \\(DataSync supports SMB versions 1\\.0 and later\\.\\)", + "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate the highest version of SMB that they mutually support between 2\\.1 and 3\\.1\\.1\\.", "title": "Version", "type": "string" } @@ -50521,7 +50523,7 @@ "additionalProperties": false, "properties": { "AccessKey": { - "markdownDescription": "Specifies the access key \\(for example, a user name\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the access key \\(for example, a user name\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AccessKey", "type": "string" }, @@ -50539,7 +50541,7 @@ "type": "string" }, "SecretKey": { - "markdownDescription": "Specifies the secret key \\(for example, a password\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the secret key \\(for example, a password\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SecretKey", "type": "string" }, @@ -50820,7 +50822,7 @@ "additionalProperties": false, "properties": { "Version": { - "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate a protocol version that they mutually support\\. \\(DataSync supports SMB versions 1\\.0 and later\\.\\)", + "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate the highest version of SMB that they mutually support between 2\\.1 and 3\\.1\\.1\\.", "title": "Version", "type": "string" } @@ -51287,7 +51289,7 @@ }, "Sns": { "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig", - "markdownDescription": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for cross account Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. For more information, see Permissions for cross account Amazon SNS topics\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to send it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Sns" } }, @@ -52340,7 +52342,7 @@ "type": "array" }, "BillingMode": { - "markdownDescription": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "BillingMode", "type": "string" }, @@ -52387,7 +52389,7 @@ "title": "StreamSpecification" }, "TableName": { - "markdownDescription": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "TableName", "type": "string" }, @@ -52434,12 +52436,12 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, "AttributeType": { - "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeType", "type": "string" } @@ -52485,7 +52487,7 @@ "additionalProperties": false, "properties": { "Enabled": { - "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Enabled", "type": "boolean" } @@ -52499,7 +52501,7 @@ "additionalProperties": false, "properties": { "IndexName": { - "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -52507,7 +52509,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" }, - "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -52538,7 +52540,7 @@ "type": "string" }, "KeyType": { - "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "KeyType", "type": "string" } @@ -52553,7 +52555,7 @@ "additionalProperties": false, "properties": { "StreamArn": { - "markdownDescription": "The ARN for a specific Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN for a specific Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamArn", "type": "string" } @@ -52567,7 +52569,7 @@ "additionalProperties": false, "properties": { "IndexName": { - "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -52575,7 +52577,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" }, - "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -52610,12 +52612,12 @@ "items": { "type": "string" }, - "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "title": "NonKeyAttributes", "type": "array" }, "ProjectionType": { - "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "title": "ProjectionType", "type": "string" } @@ -52647,7 +52649,7 @@ "title": "ContributorInsightsSpecification" }, "IndexName": { - "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "IndexName", "type": "string" }, @@ -52718,7 +52720,7 @@ "title": "SSESpecification" }, "TableClass": { - "markdownDescription": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TableClass", "type": "string" }, @@ -52745,7 +52747,7 @@ "type": "boolean" }, "SSEType": { - "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SSEType", "type": "string" } @@ -52759,7 +52761,7 @@ "additionalProperties": false, "properties": { "StreamViewType": { - "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamViewType", "type": "string" } @@ -52802,7 +52804,7 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, @@ -52879,7 +52881,7 @@ "type": "array" }, "BillingMode": { - "markdownDescription": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "BillingMode", "type": "string" }, @@ -52946,7 +52948,7 @@ "title": "StreamSpecification" }, "TableClass": { - "markdownDescription": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TableClass", "type": "string" }, @@ -52999,12 +53001,12 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, "AttributeType": { - "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeType", "type": "string" } @@ -53019,7 +53021,7 @@ "additionalProperties": false, "properties": { "Enabled": { - "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Enabled", "type": "boolean" } @@ -53033,7 +53035,7 @@ "additionalProperties": false, "properties": { "Delimiter": { - "markdownDescription": "The delimiter used for separating items in the CSV file being imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The delimiter used for separating items in the CSV file being imported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Pattern*: `[,;:|\\t ]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Delimiter", "type": "string" }, @@ -53041,7 +53043,7 @@ "items": { "type": "string" }, - "markdownDescription": "List of the headers used to specify a common header for all source CSV files being imported\\. If this field is specified then the first line of each CSV file is treated as data instead of the header\\. If this field is not specified the the first line of each CSV file is treated as the header\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "List of the headers used to specify a common header for all source CSV files being imported\\. If this field is specified then the first line of each CSV file is treated as data instead of the header\\. If this field is not specified the the first line of each CSV file is treated as the header\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "HeaderList", "type": "array" } @@ -53057,7 +53059,7 @@ "title": "ContributorInsightsSpecification" }, "IndexName": { - "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -53065,7 +53067,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -53091,12 +53093,12 @@ "additionalProperties": false, "properties": { "InputCompressionType": { - "markdownDescription": "Type of compression to be used on the input coming from the imported table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Type of compression to be used on the input coming from the imported table\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | NONE | ZSTD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InputCompressionType", "type": "string" }, "InputFormat": { - "markdownDescription": "The format of the source data\\. Valid values for `ImportFormat` are `CSV`, `DYNAMODB_JSON` or `ION`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The format of the source data\\. Valid values for `ImportFormat` are `CSV`, `DYNAMODB_JSON` or `ION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | DYNAMODB_JSON | ION` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InputFormat", "type": "string" }, @@ -53137,7 +53139,7 @@ "type": "string" }, "KeyType": { - "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "KeyType", "type": "string" } @@ -53152,7 +53154,7 @@ "additionalProperties": false, "properties": { "StreamArn": { - "markdownDescription": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamArn", "type": "string" } @@ -53166,7 +53168,7 @@ "additionalProperties": false, "properties": { "IndexName": { - "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -53174,7 +53176,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -53209,12 +53211,12 @@ "items": { "type": "string" }, - "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "NonKeyAttributes", "type": "array" }, "ProjectionType": { - "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ProjectionType", "type": "string" } @@ -53245,17 +53247,17 @@ "additionalProperties": false, "properties": { "S3Bucket": { - "markdownDescription": "The S3 bucket that is being imported from\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The S3 bucket that is being imported from\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^[a-z0-9A-Z]+[\\.\\-\\w]*[a-z0-9A-Z]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "S3Bucket", "type": "string" }, "S3BucketOwner": { - "markdownDescription": "The account number of the S3 bucket that is being imported from\\. If the bucket is owned by the requester this is optional\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The account number of the S3 bucket that is being imported from\\. If the bucket is owned by the requester this is optional\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "S3BucketOwner", "type": "string" }, "S3KeyPrefix": { - "markdownDescription": "The key prefix shared by all S3 Objects that are being imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The key prefix shared by all S3 Objects that are being imported\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "S3KeyPrefix", "type": "string" } @@ -53293,7 +53295,7 @@ "additionalProperties": false, "properties": { "StreamViewType": { - "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamViewType", "type": "string" } @@ -53307,7 +53309,7 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, @@ -54711,7 +54713,7 @@ "title": "InstanceRequirements" }, "InstanceType": { - "markdownDescription": "The instance type\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.2xlarge | c6in.32xlarge | c6in.4xlarge | c6in.8xlarge | c6in.large | c6in.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.2xlarge | m6idn.32xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.large | m6idn.xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.2xlarge | m6in.32xlarge | m6in.4xlarge | m6in.8xlarge | m6in.large | m6in.xlarge | mac1.metal | mac2.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.2xlarge | r6idn.32xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.large | r6idn.xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.2xlarge | r6in.32xlarge | r6in.4xlarge | r6in.8xlarge | r6in.large | r6in.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-3tb1.56xlarge | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The instance type\\. \n `mac1.metal` is not supported as a launch template override\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.2xlarge | c6in.32xlarge | c6in.4xlarge | c6in.8xlarge | c6in.large | c6in.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.2xlarge | m6idn.32xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.large | m6idn.xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.2xlarge | m6in.32xlarge | m6in.4xlarge | m6in.8xlarge | m6in.large | m6in.xlarge | mac1.metal | mac2.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.2xlarge | r6idn.32xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.large | r6idn.xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.2xlarge | r6in.32xlarge | r6in.4xlarge | r6in.8xlarge | r6in.large | r6in.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-3tb1.56xlarge | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InstanceType", "type": "string" }, @@ -58611,15 +58613,21 @@ "additionalProperties": false, "properties": { "LocalGatewayId": { + "markdownDescription": "The ID of the local gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayId", "type": "string" }, "Mode": { + "markdownDescription": "The mode of the local gateway route table\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `coip | direct-vpc-routing` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Mode", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the local gateway route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -58766,15 +58774,21 @@ "additionalProperties": false, "properties": { "LocalGatewayRouteTableId": { + "markdownDescription": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayRouteTableId", "type": "string" }, "LocalGatewayVirtualInterfaceGroupId": { + "markdownDescription": "The ID of the virtual interface group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayVirtualInterfaceGroupId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the association\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -69533,7 +69547,7 @@ "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions in your IAM user or IAM role used to manage the CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions for your [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the AWS CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Tags", "type": "array" }, @@ -69689,7 +69703,7 @@ "additionalProperties": false, "properties": { "KeyArn": { - "markdownDescription": "Amazon Resource Name \\(ARN\\) or alias of the KMS key\\. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key\\. For more information, see [Allowing Users in Other Accounts to Use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Amazon Resource Name \\(ARN\\) or alias of the KMS key\\. The KMS key must be symmetric and created in the same AWS Region as the cluster\\. If the KMS key was created in a different account, the [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) must have access to the KMS key\\. For more information, see [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "KeyArn", "type": "string" } @@ -76629,7 +76643,7 @@ "type": "number" }, "HealthyThresholdCount": { - "markdownDescription": "The number of consecutive health check successes required before considering a target healthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 5\\. For target groups with a protocol of GENEVE, the default is 5\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The number of consecutive health check successes required before considering a target healthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 5\\. For target groups with a protocol of GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HealthyThresholdCount", "type": "number" }, @@ -76693,7 +76707,7 @@ "type": "array" }, "UnhealthyThresholdCount": { - "markdownDescription": "The number of consecutive health check failures required before considering a target unhealthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 2\\. For target groups with a protocol of GENEVE, the default is 2\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The number of consecutive health check failures required before considering a target unhealthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 2\\. For target groups with a protocol of GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "UnhealthyThresholdCount", "type": "number" }, @@ -78099,7 +78113,7 @@ "type": "array" }, "Name": { - "markdownDescription": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the endpoint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Name", "type": "string" }, @@ -78530,7 +78544,7 @@ "items": { "$ref": "#/definitions/AWS::Events::Rule.Target" }, - "markdownDescription": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nThe maximum number of entries per request is 10\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nFor a list of services you can configure as targets for events, see [EventBridge targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) in the *Amazon EventBridge User Guide*\\. \nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are: \n+ `Amazon EBS CreateSnapshot API call` \n+ `Amazon EC2 RebootInstances API call` \n+ `Amazon EC2 StopInstances API call` \n+ `Amazon EC2 TerminateInstances API call` \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions: \n+ For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\.\n+ For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\.\nFor more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nThe maximum number of entries per request is 10\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nFor a list of services you can configure as targets for events, see [EventBridge targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) in the *Amazon EventBridge User Guide*\\. \nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are: \n+ `Amazon EBS CreateSnapshot API call` \n+ `Amazon EC2 RebootInstances API call` \n+ `Amazon EC2 StopInstances API call` \n+ `Amazon EC2 TerminateInstances API call` \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions: \n+ For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\.\n+ For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\.\nFor more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nIf you have an IAM role on a cross\\-account event bus target, a `PutTargets` call without a role on the same target \\(same `Id` and `Arn`\\) will not remove the role\\.\nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Targets", "type": "array" } @@ -80669,7 +80683,7 @@ "additionalProperties": false, "properties": { "FirewallDeploymentModel": { - "markdownDescription": "Defines the deployment model to use for the firewall policy\\. To use a distributed model, set [PolicyOption](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_PolicyOption.html) to `NULL`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CENTRALIZED | DISTRIBUTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Defines the deployment model to use for the firewall policy\\. To use a distributed model, set [FirewallDeploymentModel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-thirdpartyfirewallpolicy.html) to `DISTRIBUTED`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CENTRALIZED | DISTRIBUTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "FirewallDeploymentModel", "type": "string" } @@ -80808,27 +80822,37 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the resource set\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The descriptive name of the resource set\\. You can't change the name of a resource set after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ResourceTypeList": { "items": { "type": "string" }, + "markdownDescription": "Determines the resources that can be associated to the resource set\\. Depending on your setting for max results and the number of resource sets, a single call might not return the full list\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypeList", "type": "array" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "The resources included in the resource set\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A collection of key:value pairs associated with a resource set\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -91750,7 +91774,7 @@ "additionalProperties": false, "properties": { "Action": { - "markdownDescription": "Whether or not to notify components and wait for components to become safe to update\\. Choose from the following options: \n+ `NOTIFY_COMPONENTS` \u2013 The deployment notifies each component before it stops and updates that component\\. Components can use the [SubscribeToComponentUpdates](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates) IPC operation to receive these notifications\\. Then, components can respond with the [DeferComponentUpdate](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate) IPC operation\\. For more information, see the [Create deployments](https://docs.aws.amazon.com/greengrass/v2/latest/developerguide/create-deployments.html) in the *AWS IoT Greengrass V2 Developer Guide*\\.\n+ `SKIP_NOTIFY_COMPONENTS` \u2013 The deployment doesn't notify components or wait for them to be safe to update\\.\nDefault: `NOTIFY_COMPONENTS` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Whether or not to notify components and wait for components to become safe to update\\. Choose from the following options: \n+ `NOTIFY_COMPONENTS` \u2013 The deployment notifies each component before it stops and updates that component\\. Components can use the [SubscribeToComponentUpdates](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates) IPC operation to receive these notifications\\. Then, components can respond with the [DeferComponentUpdate](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate) IPC operation\\. For more information, see the [Create deployments](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html) in the *AWS IoT Greengrass V2 Developer Guide*\\.\n+ `SKIP_NOTIFY_COMPONENTS` \u2013 The deployment doesn't notify components or wait for them to be safe to update\\.\nDefault: `NOTIFY_COMPONENTS` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Action", "type": "string" }, @@ -92787,7 +92811,7 @@ "type": "string" }, "Description": { - "markdownDescription": "The description of the filter\\. Valid special characters include period \\(\\.\\), underscore \\(\\_\\), dash \\(\\-\\), and whitespace\\. The new line character is considered to be an invalid input for description\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The description of the filter\\. Valid characters include alphanumeric characters, and special characters such as hyphen, period, colon, underscore, parentheses \\(`{ }`, `[ ]`, and `( )`\\), forward slash, horizontal tab, vertical tab, newline, form feed, return, and whitespace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Description", "type": "string" }, @@ -95137,15 +95161,21 @@ "additionalProperties": false, "properties": { "DestinationConfiguration": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.DestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.DestinationConfiguration", + "markdownDescription": "The DestinationConfiguration is a complex type that contains information about where chat content will be logged\\. \n*Required*: Yes \n*Type*: [DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationConfiguration" }, "Name": { + "markdownDescription": "Logging\\-configuration name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -95179,6 +95209,8 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "Name of the Amazon Cloudwatch Logs destination where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[\\.\\-_/#A-Za-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" } }, @@ -95191,13 +95223,19 @@ "additionalProperties": false, "properties": { "CloudWatchLogs": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration", + "markdownDescription": "An Amazon CloudWatch Logs destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-cloudwatchlogsdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogs" }, "Firehose": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration", + "markdownDescription": "An Amazon Kinesis Data Firehose destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [FirehoseDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-firehosedestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" }, "S3": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration", + "markdownDescription": "An Amazon S3 destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" } }, "type": "object" @@ -95206,6 +95244,8 @@ "additionalProperties": false, "properties": { "DeliveryStreamName": { + "markdownDescription": "Name of the Amazon Kinesis Firehose delivery stream where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_.-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamName", "type": "string" } }, @@ -95218,6 +95258,8 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "Name of the Amazon S3 bucket where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9-.]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" } }, @@ -95265,24 +95307,36 @@ "items": { "type": "string" }, + "markdownDescription": "List of logging\\-configuration identifiers attached to the room\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfigurationIdentifiers", "type": "array" }, "MaximumMessageLength": { + "markdownDescription": "Maximum number of characters in a single message\\. Messages are expected to be UTF\\-8 encoded and this limit applies specifically to rune/code\\-point count, not number of bytes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumMessageLength", "type": "number" }, "MaximumMessageRatePerSecond": { + "markdownDescription": "Maximum number of messages per second that can be sent to the room \\(by all clients\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumMessageRatePerSecond", "type": "number" }, "MessageReviewHandler": { - "$ref": "#/definitions/AWS::IVSChat::Room.MessageReviewHandler" + "$ref": "#/definitions/AWS::IVSChat::Room.MessageReviewHandler", + "markdownDescription": "Configuration information for optional review of messages\\. \n*Required*: No \n*Type*: [MessageReviewHandler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-room-messagereviewhandler.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageReviewHandler" }, "Name": { + "markdownDescription": "Room name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -95312,9 +95366,13 @@ "additionalProperties": false, "properties": { "FallbackResult": { + "markdownDescription": "Specifies the fallback behavior \\(whether the message is allowed or denied\\) if the handler does not return a valid response, encounters an error, or times out\\. \\(For the timeout period, see [ Service Quotas](https://docs.aws.amazon.com/ivs/latest/userguide/service-quotas.html)\\.\\) If allowed, the message is delivered with returned content to all users connected to the room\\. If denied, the message is not delivered to any user\\. \n*Default*: `ALLOW` \n*Required*: No \n*Type*: String \n*Allowed values*: `ALLOW | DENY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackResult", "type": "string" }, "Uri": { + "markdownDescription": "Identifier of the message review handler\\. Currently this must be an ARN of a lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `170` \n*Pattern*: `^$|^arn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uri", "type": "string" } }, @@ -97803,36 +97861,50 @@ "additionalProperties": false, "properties": { "MaxCityNetworksToMonitor": { + "markdownDescription": "The maximum number of city\\-networks to monitor for your resources\\. A city\\-network is the location \\(city\\) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through\\. \nFor more information, see [ Choosing a city\\-network maximum value](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/IMCityNetworksMaximum.html) in *Using Amazon CloudWatch Internet Monitor*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCityNetworksToMonitor", "type": "number" }, "MonitorName": { + "markdownDescription": "The name of the monitor\\. A monitor name can contain only alphanumeric characters, dashes \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitorName", "type": "string" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "The resources that have been added for the monitor, listed by their Amazon Resource Names \\(ARNs\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", "type": "array" }, "ResourcesToAdd": { "items": { "type": "string" }, + "markdownDescription": "The resources to add to a monitor, which you provide as a set of Amazon Resource Names \\(ARNs\\)\\. \nYou can add a combination of Virtual Private Clouds \\(VPCs\\) and Amazon CloudFront distributions, or you can add WorkSpaces directories\\. You can't add all three types of resources\\. \nIf you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesToAdd", "type": "array" }, "ResourcesToRemove": { "items": { "type": "string" }, + "markdownDescription": "The resources to remove from a monitor, which you provide as a set of Amazon Resource Names \\(ARNs\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesToRemove", "type": "array" }, "Status": { + "markdownDescription": "The status of a monitor\\. The accepted values that you can specify for `Status` are `ACTIVE` and `INACTIVE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for a monitor, listed as a set of *key:value* pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -118628,7 +118700,7 @@ "title": "AmazonManagedKafkaEventSourceConfig" }, "BatchSize": { - "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function\\. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation \\(6 MB\\)\\. \n+ **Amazon Kinesis** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon DynamoDB Streams** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon Simple Queue Service** \u2013 Default 10\\. For standard queues the max is 10,000\\. For FIFO queues the max is 10\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Self\\-managed Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon MQ \\(ActiveMQ and RabbitMQ\\)** \u2013 Default 100\\. Max 10,000\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function\\. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation \\(6 MB\\)\\. \n+ **Amazon Kinesis** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon DynamoDB Streams** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon Simple Queue Service** \u2013 Default 10\\. For standard queues the max is 10,000\\. For FIFO queues the max is 10\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Self\\-managed Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon MQ \\(ActiveMQ and RabbitMQ\\)** \u2013 Default 100\\. Max 10,000\\.\n+ **DocumentDB** \u2013 Default 100\\. Max 10,000\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "BatchSize", "type": "number" }, @@ -118643,7 +118715,9 @@ "title": "DestinationConfig" }, "DocumentDBEventSourceConfig": { - "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig" + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig", + "markdownDescription": "Specific configuration settings for a DocumentDB event source\\. \n*Required*: No \n*Type*: [DocumentDBEventSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentDBEventSourceConfig" }, "Enabled": { "markdownDescription": "When true, the event source mapping is active\\. When false, Lambda pauses polling and invocation\\. \nDefault: True \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -118651,7 +118725,7 @@ "type": "boolean" }, "EventSourceArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the event source\\. \n+ **Amazon Kinesis** \u2013 The ARN of the data stream or a stream consumer\\.\n+ **Amazon DynamoDB Streams** \u2013 The ARN of the stream\\.\n+ **Amazon Simple Queue Service** \u2013 The ARN of the queue\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 The ARN of the cluster\\.\n+ **Amazon MQ** \u2013 The ARN of the broker\\.\n*Required*: No \n*Type*: String \n*Pattern*: `arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-gov.html)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the event source\\. \n+ **Amazon Kinesis** \u2013 The ARN of the data stream or a stream consumer\\.\n+ **Amazon DynamoDB Streams** \u2013 The ARN of the stream\\.\n+ **Amazon Simple Queue Service** \u2013 The ARN of the queue\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 The ARN of the cluster\\.\n+ **Amazon MQ** \u2013 The ARN of the broker\\.\n+ **Amazon DocumentDB** \u2013 The ARN of the DocumentDB change stream\\.\n*Required*: No \n*Type*: String \n*Pattern*: `arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-gov.html)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "EventSourceArn", "type": "string" }, @@ -118800,12 +118874,18 @@ "additionalProperties": false, "properties": { "CollectionName": { + "markdownDescription": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `57` \n*Pattern*: `(^(?!(system\\x2e)))(^[_a-zA-Z0-9])([^$]*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CollectionName", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the database to consume within the DocumentDB cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `[^ /\\.$\\x22]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "FullDocument": { + "markdownDescription": "Determines what DocumentDB sends to your event stream during document update operations\\. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, DocumentDB sends only a partial document that contains the changes\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Default | UpdateLookup` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FullDocument", "type": "string" } }, @@ -119241,7 +119321,7 @@ "type": "string" }, "UpdateRuntimeOn": { - "markdownDescription": "Specify the runtime update mode\\. \n+ **Auto \\(default\\)** \\- Automatically update to the most recent and secure runtime version using a [Two\\-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase)\\. This is the best choice for most customers to ensure they always benefit from runtime updates\\.\n+ **Function update** \\- Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function\\. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early\\. When using this setting, you need to regularly update your functions to keep their runtime up\\-to\\-date\\.\n+ **Manual** \\- You specify a runtime version in your function configuration\\. The function will use this runtime version indefinitely\\. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version\\. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback)\\.\n*Valid Values*: `Auto` \\| `Function update` \\| `Manual` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specify the runtime update mode\\. \n+ **Auto \\(default\\)** \\- Automatically update to the most recent and secure runtime version using a [Two\\-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase)\\. This is the best choice for most customers to ensure they always benefit from runtime updates\\.\n+ **FunctionUpdate** \\- Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function\\. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early\\. When using this setting, you need to regularly update your functions to keep their runtime up\\-to\\-date\\.\n+ **Manual** \\- You specify a runtime version in your function configuration\\. The function will use this runtime version indefinitely\\. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version\\. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback)\\.\n*Valid Values*: `Auto` \\| `FunctionUpdate` \\| `Manual` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "UpdateRuntimeOn", "type": "string" } @@ -128879,12 +128959,16 @@ "additionalProperties": false, "properties": { "AccessorType": { + "markdownDescription": "The type of the accessor\\. \nCurrently, accessor type is restricted to `BILLING_TOKEN`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BILLING_TOKEN` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessorType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the Accessor\\. \nFor more information about tags, see [Tagging Resources](https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html) in the *Amazon Managed Blockchain Ethereum Developer Guide*, or [Tagging Resources](https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html) in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129045,7 +129129,7 @@ "additionalProperties": false, "properties": { "AdminPassword": { - "markdownDescription": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least eight characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least 8 characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AdminPassword", "type": "string" }, @@ -129102,7 +129186,7 @@ }, "VotingPolicy": { "$ref": "#/definitions/AWS::ManagedBlockchain::Member.VotingPolicy", - "markdownDescription": "The voting rules for the network to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The voting rules that the network uses to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "VotingPolicy" } }, @@ -129118,7 +129202,7 @@ "additionalProperties": false, "properties": { "Edition": { - "markdownDescription": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see [Amazon Managed Blockchain Pricing](http://aws.amazon.com/managed-blockchain/pricing/) \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Edition", "type": "string" } @@ -129133,7 +129217,7 @@ "properties": { "NetworkFabricConfiguration": { "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFabricConfiguration", - "markdownDescription": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network that is using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "NetworkFabricConfiguration" } }, @@ -139449,7 +139533,7 @@ "additionalProperties": false, "properties": { "Protocol": { - "markdownDescription": "The protocol used for the attachment connection\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The protocol used for the attachment connection\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE | NO_ENCAP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Protocol", "type": "string" } @@ -139647,7 +139731,7 @@ "type": "string" }, "Protocol": { - "markdownDescription": "The protocol used for a Connect peer configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The protocol used for a Connect peer configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE | NO_ENCAP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Protocol", "type": "string" } @@ -140674,18 +140758,26 @@ "additionalProperties": false, "properties": { "PeeringId": { + "markdownDescription": "The ID of the transit gateway peering\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `^peering-([0-9a-f]{8,17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeeringId", "type": "string" }, "ProposedSegmentChange": { - "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayRouteTableAttachment.ProposedSegmentChange" + "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayRouteTableAttachment.ProposedSegmentChange", + "markdownDescription": "This property is read\\-only\\. Values can't be assigned to it\\. \n*Required*: No \n*Type*: [ProposedSegmentChange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-transitgatewayroutetableattachment-proposedsegmentchange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProposedSegmentChange" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The list of key\\-value pairs associated with the transit gateway route table attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayRouteTableArn": { + "markdownDescription": "The ARN of the transit gateway attachment route table\\. For example, `\"TransitGatewayRouteTableArn\": \"arn:aws:ec2:us-west-2:123456789012:transit-gateway-route-table/tgw-rtb-9876543210123456\"`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayRouteTableArn", "type": "string" } }, @@ -140720,15 +140812,21 @@ "additionalProperties": false, "properties": { "AttachmentPolicyRuleNumber": { + "markdownDescription": "The rule number in the policy document that applies to this change\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachmentPolicyRuleNumber", "type": "number" }, "SegmentName": { + "markdownDescription": "The name of the segment to change\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The list of key\\-value tags that changed for the segment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -142961,7 +143059,7 @@ "items": { "type": "string" }, - "markdownDescription": "The ID of the subnets from which you access OpenSearch Serverless\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ID of the subnets from which you access OpenSearch Serverless\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SubnetIds", "type": "array" }, @@ -147392,7 +147490,7 @@ "type": "number" }, "IsPaused": { - "markdownDescription": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. If a campaign is running it will complete and then pause\\. Pause only pauses or skips the next run for a recurring future scheduled campaign\\. A campaign scheduled for immediate can't be paused\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IsPaused", "type": "boolean" }, @@ -151786,7 +151884,7 @@ "additionalProperties": false, "properties": { "AggregationEnabled": { - "markdownDescription": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \n *This option is enabled by default\\.* Record aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \nDefault: `True` \nRecord aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "AggregationEnabled", "type": "boolean" }, @@ -153294,7 +153392,7 @@ "items": { "type": "string" }, - "markdownDescription": "The IAM action to grand or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The IAM action to grant or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Actions", "type": "array" }, @@ -153718,7 +153816,7 @@ "title": "CredentialPair" }, "SecretArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the secret associated with the data source in Amazon Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^arn:[-a-z0-9]*:secretsmanager:[-a-z0-9]*:[0-9]{12}:secret:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SecretArn", "type": "string" } @@ -153771,7 +153869,7 @@ }, "DatabricksParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.DatabricksParameters", - "markdownDescription": "The required parameters that are needed to connect to a Databricks data source\\. \n*Required*: No \n*Type*: [DatabricksParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-databricksparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: [DatabricksParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-databricksparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DatabricksParameters" }, "MariaDbParameters": { @@ -153841,17 +153939,17 @@ "additionalProperties": false, "properties": { "Host": { - "markdownDescription": "The host name of the Databricks data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Host", "type": "string" }, "Port": { - "markdownDescription": "The port for the Databricks data source\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Port", "type": "number" }, "SqlEndpointPath": { - "markdownDescription": "The HTTP path of the Databricks data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SqlEndpointPath", "type": "string" } @@ -155290,7 +155388,7 @@ "type": "boolean" }, "Engine": { - "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mysql`\n+ `postgres`\nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible and MySQL 8\\.0\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mysql`\n+ `postgres`\nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "title": "Engine", "type": "string" }, @@ -155628,7 +155726,7 @@ "additionalProperties": false, "properties": { "DBClusterParameterGroupName": { - "markdownDescription": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing DB cluster parameter group\\.\nIf you don't specify a value for `DBClusterParameterGroupName` property, a name is automatically created for the DB cluster paramter group\\. \nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing DB cluster parameter group\\.\nIf you don't specify a value for `DBClusterParameterGroupName` property, a name is automatically created for the DB cluster parameter group\\. \nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "DBClusterParameterGroupName", "type": "string" }, @@ -155889,7 +155987,7 @@ "type": "number" }, "KmsKeyId": { - "markdownDescription": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "KmsKeyId", "type": "string" }, @@ -155959,7 +156057,7 @@ "type": "string" }, "PerformanceInsightsRetentionPeriod": { - "markdownDescription": "The amount of time, in days, to retain Performance Insights data\\. Valid values are 7 or 731 \\(2 years\\)\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The number of days to retain Performance Insights data\\. The default is 7 days\\. The following values are valid: \n+ 7\n+ *month* \\* 31, where *month* is a number of months from 1\\-23\n+ 731\nFor example, the following values are valid: \n+ 93 \\(3 months \\* 31\\)\n+ 341 \\(11 months \\* 31\\)\n+ 589 \\(19 months \\* 31\\)\n+ 731\nIf you specify a retention period such as 94, which isn't a valid value, RDS issues an error\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "PerformanceInsightsRetentionPeriod", "type": "number" }, @@ -156412,7 +156510,7 @@ "type": "string" }, "ClientPasswordAuthType": { - "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the details of authentication used by a proxy to log in as a specific database user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ClientPasswordAuthType", "type": "string" }, @@ -156624,7 +156722,7 @@ "type": "array" }, "DBProxyName": { - "markdownDescription": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "DBProxyName", "type": "string" }, @@ -157786,12 +157884,12 @@ "type": "number" }, "MasterUserPassword": { - "markdownDescription": "The password associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except `'` \\(single quote\\), `\"` \\(double quote\\), `\\`, `/`, or `@`\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The password associated with the admin user for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except `'` \\(single quote\\), `\"` \\(double quote\\), `\\`, `/`, or `@`\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MasterUserPassword", "type": "string" }, "MasterUsername": { - "markdownDescription": "The user name associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters or hyphens\\. The user name can't be `PUBLIC`\\.\n+ Must contain only lowercase letters, numbers, underscore, plus sign, period \\(dot\\), at symbol \\(@\\), or hyphen\\.\n+ The first character must be a letter\\.\n+ Must not contain a colon \\(:\\) or a slash \\(/\\)\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The user name associated with the admin user for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters or hyphens\\. The user name can't be `PUBLIC`\\.\n+ Must contain only lowercase letters, numbers, underscore, plus sign, period \\(dot\\), at symbol \\(@\\), or hyphen\\.\n+ The first character must be a letter\\.\n+ Must not contain a colon \\(:\\) or a slash \\(/\\)\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "MasterUsername", "type": "string" }, @@ -157841,7 +157939,7 @@ "type": "boolean" }, "SnapshotClusterIdentifier": { - "markdownDescription": "The name of the cluster the source snapshot was created from\\. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the cluster the source snapshot was created from\\. This parameter is required if your user or role has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "SnapshotClusterIdentifier", "type": "string" }, @@ -157993,6 +158091,8 @@ "type": "string" }, "ParameterGroupName": { + "markdownDescription": "The name of the cluster parameter group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupName", "type": "string" }, "Parameters": { @@ -160273,7 +160373,7 @@ "type": "string" }, "AppTemplateBody": { - "markdownDescription": "A string containing a full Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A string containing a full AWS Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AppTemplateBody", "type": "string" }, @@ -160359,7 +160459,7 @@ "type": "string" }, "Type": { - "markdownDescription": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is a Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is an AWS Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Type", "type": "string" } @@ -163073,7 +163173,7 @@ "additionalProperties": false, "properties": { "Name": { - "markdownDescription": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Name", "type": "string" }, @@ -169576,7 +169676,7 @@ "type": "string" }, "TracingConfig": { - "markdownDescription": "Tracing mode of an Amazon SNS topic\\. By default `TracingConfig` is set to `PassThrough`, and the topic passes through the tracing header it receives from an SNS publisher to its subscriptions\\. If set to Active, SNS will vend X\\-Ray segment data to topic owner account if the sampled flag in the tracing header is true\\. Only supported on standard topics\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Tracing mode of an Amazon SNS topic\\. By default `TracingConfig` is set to `PassThrough`, and the topic passes through the tracing header it receives from an SNS publisher to its subscriptions\\. If set to `Active`, SNS will vend X\\-Ray segment data to topic owner account if the sampled flag in the tracing header is true\\. Only supported on standard topics\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TracingConfig", "type": "string" } @@ -172511,7 +172611,7 @@ "type": "string" }, "InlinePolicy": { - "markdownDescription": "The inline policy that is attached to the permission set\\. \nFor `Length Constraints`, if a valid ARN is provided for a permission set, it is possible for an empty inline policy to be returned\\.\n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The inline policy that is attached to the permission set\\. \nFor `Length Constraints`, if a valid ARN is provided for a permission set, it is possible for an empty inline policy to be returned\\.\n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `32768` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "InlinePolicy", "type": "object" }, @@ -181369,12 +181469,12 @@ "type": "string" }, "MasterSecretArn": { - "markdownDescription": "The ARN of the secret that contains elevated credentials\\. You must create the elevated secret before you can set this property\\. The Lambda rotation function uses this secret for the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the secret that contains superuser credentials, if you use the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. CloudFormation grants the execution role for the Lambda rotation function `GetSecretValue` permission to the secret in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou must create the superuser secret before you can set this property\\. \nYou must also include the superuser secret ARN as a key in the JSON of the rotating secret so that the Lambda rotation function can find it\\. CloudFormation does not hardcode secret ARNs in the Lambda rotation function, so you can use the function to rotate multiple secrets\\. For more information, see [JSON structure of Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MasterSecretArn", "type": "string" }, "MasterSecretKmsKeyArn": { - "markdownDescription": "The ARN of the KMS key that Secrets Manager uses to encrypt the elevated secret if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. If you don't specify this value and you use the alternating users strategy, then Secrets Manager uses the key `aws/secretsmanager`\\. If `aws/secretsmanager` doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users) and the superuser secret is encrypted with a customer managed key\\. You don't need to specify this property if the superuser secret is encrypted using the key `aws/secretsmanager`\\. CloudFormation grants the execution role for the Lambda rotation function `Decrypt`, `DescribeKey`, and `GenerateDataKey` permission to the key in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MasterSecretKmsKeyArn", "type": "string" }, @@ -181389,15 +181489,17 @@ "type": "string" }, "Runtime": { + "markdownDescription": "The Python runtime version associated with the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Runtime", "type": "string" }, "SuperuserSecretArn": { - "markdownDescription": "The ARN of the secret that contains elevated credentials\\. You must create the superuser secret before you can set this property\\. The Lambda rotation function uses this secret for the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the secret that contains superuser credentials, if you use the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. CloudFormation grants the execution role for the Lambda rotation function `GetSecretValue` permission to the secret in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou must create the superuser secret before you can set this property\\. \nYou must also include the superuser secret ARN as a key in the JSON of the rotating secret so that the Lambda rotation function can find it\\. CloudFormation does not hardcode secret ARNs in the Lambda rotation function, so you can use the function to rotate multiple secrets\\. For more information, see [JSON structure of Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SuperuserSecretArn", "type": "string" }, "SuperuserSecretKmsKeyArn": { - "markdownDescription": "The ARN of the KMS key that Secrets Manager uses to encrypt the elevated secret if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. If you don't specify this value and you use the alternating users strategy, then Secrets Manager uses the key `aws/secretsmanager`\\. If `aws/secretsmanager` doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users) and the superuser secret is encrypted with a customer managed key\\. You don't need to specify this property if the superuser secret is encrypted using the key `aws/secretsmanager`\\. CloudFormation grants the execution role for the Lambda rotation function `Decrypt`, `DescribeKey`, and `GenerateDataKey` permission to the key in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SuperuserSecretKmsKeyArn", "type": "string" }, @@ -185547,33 +185649,47 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[\\w\\d]{1,50}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationId", "type": "string" }, "ApplicationType": { + "markdownDescription": "The type of the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HANA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationType", "type": "string" }, "Credentials": { "items": { "$ref": "#/definitions/AWS::SystemsManagerSAP::Application.Credential" }, + "markdownDescription": "The credentials of the SAP application\\. \n*Required*: No \n*Type*: List of [Credential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-systemsmanagersap-application-credential.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Credentials", "type": "array" }, "Instances": { "items": { "type": "string" }, + "markdownDescription": "The Amazon EC2 instances on which your SAP application is running\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Instances", "type": "array" }, "SapInstanceNumber": { + "markdownDescription": "The SAP instance number of the application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SapInstanceNumber", "type": "string" }, "Sid": { + "markdownDescription": "The System ID of the application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[A-Z][A-Z0-9]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Sid", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags on the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -185608,12 +185724,18 @@ "additionalProperties": false, "properties": { "CredentialType": { + "markdownDescription": "The type of the application credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CredentialType", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the SAP HANA database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "SecretId": { + "markdownDescription": "The secret ID created in AWS Secrets Manager to store the credentials of the SAP application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretId", "type": "string" } }, @@ -189701,7 +189823,7 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.FieldToMatch" }, - "markdownDescription": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `xxx`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `REDACTED`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "RedactedFields", "type": "array" }, @@ -190056,7 +190178,7 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelSummary" }, - "markdownDescription": "The labels that one or more rules in this rule group add to matching web requests\\. These labels are defined in the `RuleLabels` for a Rule\\. \n*Required*: No \n*Type*: List of [LabelSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The labels that one or more rules in this rule group add to matching web requests\\. These labels are defined in the `RuleLabels` for a `Rule`\\. \n*Required*: No \n*Type*: List of [LabelSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AvailableLabels", "type": "array" }, @@ -191305,13 +191427,19 @@ "additionalProperties": false, "properties": { "LoginPath": { + "markdownDescription": "The path of the login endpoint for your application\\. For example, for the URL `https://example.com/web/login`, you would provide the path `/web/login`\\. \nThe rule group inspects only HTTP `POST` requests to your specified login endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoginPath", "type": "string" }, "RequestInspection": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.RequestInspection" + "$ref": "#/definitions/AWS::WAFv2::WebACL.RequestInspection", + "markdownDescription": "The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage\\. \n*Required*: No \n*Type*: [RequestInspection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-requestinspection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestInspection" }, "ResponseInspection": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspection" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspection", + "markdownDescription": "The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates\\. \nThe ATP rule group evaluates the responses that your protected resources send back to client login attempts, keeping count of successful and failed attempts from each IP address and client session\\. Using this information, the rule group labels and mitigates requests from client sessions and IP addresses that submit too many failed login attempts in a short amount of time\\. \nResponse inspection is available only in web ACLs that protect Amazon CloudFront distributions\\.\n*Required*: No \n*Type*: [ResponseInspection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseInspection" } }, "required": [ @@ -191952,7 +192080,9 @@ "additionalProperties": false, "properties": { "AWSManagedRulesATPRuleSet": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet" + "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet", + "markdownDescription": "Additional configuration for using the account takeover prevention \\(ATP\\) managed rule group, `AWSManagedRulesATPRuleSet`\\. Use this to provide login request information to the rule group\\. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests\\. \nThis configuration replaces the individual configuration fields in `ManagedRuleGroupConfig` and provides additional feature configuration\\. \nFor information about using the ATP managed rule group, see [AWS WAF Fraud Control account takeover prevention \\(ATP\\) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html) and [AWS WAF Fraud Control account takeover prevention \\(ATP\\)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) in the * AWS WAF Developer Guide*\\. \n*Required*: No \n*Type*: [AWSManagedRulesATPRuleSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesatpruleset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AWSManagedRulesATPRuleSet" }, "AWSManagedRulesBotControlRuleSet": { "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet", @@ -192175,13 +192305,19 @@ "additionalProperties": false, "properties": { "PasswordField": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page password field\\. \nHow you specify this depends on the payload type\\. \n+ For JSON payloads, specify the field name in JSON pointer syntax\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\.", + "title": "PasswordField" }, "PayloadType": { + "markdownDescription": "The payload type for your login endpoint, either JSON or form encoded\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORM_ENCODED | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadType", "type": "string" }, "UsernameField": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page username field\\. \nHow you specify this depends on the payload type\\. \n+ For JSON payloads, specify the field name in JSON pointer syntax\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\.", + "title": "UsernameField" } }, "required": [ @@ -192195,16 +192331,24 @@ "additionalProperties": false, "properties": { "BodyContains": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionBodyContains" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionBodyContains", + "markdownDescription": "Configures inspection of the response body\\. AWS WAF can inspect the first 65,536 bytes \\(64 KB\\) of the response body\\. \n*Required*: No \n*Type*: [ResponseInspectionBodyContains](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionbodycontains.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyContains" }, "Header": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionHeader" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionHeader", + "markdownDescription": "Configures inspection of the response header\\. \n*Required*: No \n*Type*: [ResponseInspectionHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header" }, "Json": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionJson" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionJson", + "markdownDescription": "Configures inspection of the response JSON\\. AWS WAF can inspect the first 65,536 bytes \\(64 KB\\) of the response JSON\\. \n*Required*: No \n*Type*: [ResponseInspectionJson](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionjson.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Json" }, "StatusCode": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionStatusCode" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionStatusCode", + "markdownDescription": "Configures inspection of the response status code\\. \n*Required*: No \n*Type*: [ResponseInspectionStatusCode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionstatuscode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode" } }, "type": "object" @@ -192216,12 +192360,16 @@ "items": { "type": "string" }, + "markdownDescription": "Strings in the body of the response that indicate a failed login attempt\\. To be counted as a failed login, the string can be anywhere in the body and must be an exact match, including case\\. Each string must be unique among the success and failure strings\\. \nJSON example: `\"FailureStrings\": [ \"Login failed\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureStrings", "type": "array" }, "SuccessStrings": { "items": { "type": "string" }, + "markdownDescription": "Strings in the body of the response that indicate a successful login attempt\\. To be counted as a successful login, the string can be anywhere in the body and must be an exact match, including case\\. Each string must be unique among the success and failure strings\\. \nJSON example: `\"SuccessStrings\": [ \"Login successful\", \"Welcome to our site!\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessStrings", "type": "array" } }, @@ -192238,15 +192386,21 @@ "items": { "type": "string" }, + "markdownDescription": "Values in the response header with the specified name that indicate a failed login attempt\\. To be counted as a failed login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"FailureValues\": [ \"LoginFailed\", \"Failed login\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureValues", "type": "array" }, "Name": { + "markdownDescription": "The name of the header to match against\\. The name must be an exact match, including case\\. \nJSON example: `\"Name\": [ \"LoginResult\" ]` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SuccessValues": { "items": { "type": "string" }, + "markdownDescription": "Values in the response header with the specified name that indicate a successful login attempt\\. To be counted as a successful login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"SuccessValues\": [ \"LoginPassed\", \"Successful login\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessValues", "type": "array" } }, @@ -192264,15 +192418,21 @@ "items": { "type": "string" }, + "markdownDescription": "Values for the specified identifier in the response JSON that indicate a failed login attempt\\. To be counted as a failed login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"FailureValues\": [ \"False\", \"Failed\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureValues", "type": "array" }, "Identifier": { + "markdownDescription": "The identifier for the value to match against in the JSON\\. The identifier must be an exact match, including case\\. \nJSON example: `\"Identifier\": [ \"/login/success\" ]` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", "type": "string" }, "SuccessValues": { "items": { "type": "string" }, + "markdownDescription": "Values for the specified identifier in the response JSON that indicate a successful login attempt\\. To be counted as a successful login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"SuccessValues\": [ \"True\", \"Succeeded\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessValues", "type": "array" } }, @@ -192290,12 +192450,16 @@ "items": { "type": "number" }, + "markdownDescription": "Status codes in the response that indicate a failed login attempt\\. To be counted as a failed login, the response status code must match one of these\\. Each code must be unique among the success and failure status codes\\. \nJSON example: `\"FailureCodes\": [ 400, 404 ]` \n*Required*: Yes \n*Type*: List of Integer \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureCodes", "type": "array" }, "SuccessCodes": { "items": { "type": "number" }, + "markdownDescription": "Status codes in the response that indicate a successful login attempt\\. To be counted as a successful login, the response status code must match one of these\\. Each code must be unique among the success and failure status codes\\. \nJSON example: `\"SuccessCodes\": [ 200, 201 ]` \n*Required*: Yes \n*Type*: List of Integer \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessCodes", "type": "array" } }, @@ -192723,7 +192887,7 @@ "additionalProperties": false, "properties": { "ResourceArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId ` \n+ For an Amazon Cognito user pool: `arn:aws:cognito-idp:region:account-id:userpool/user-pool-id ` \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId ` \n+ For an Amazon Cognito user pool: `arn:aws:cognito-idp:region:account-id:userpool/user-pool-id ` \n+ For an AWS App Runner service: `arn:aws:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id ` \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "ResourceArn", "type": "string" }, diff --git a/schema_source/cloudformation-docs.json b/schema_source/cloudformation-docs.json index 5c4675841..156812945 100644 --- a/schema_source/cloudformation-docs.json +++ b/schema_source/cloudformation-docs.json @@ -745,7 +745,7 @@ "ApiKeyRequired": "A boolean flag specifying whether a valid ApiKey is required to invoke this method\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AuthorizationScopes": "A list of authorization scopes configured on the method\\. The scopes are used with a `COGNITO_USER_POOLS` authorizer to authorize the method invocation\\. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request\\. The method invocation is authorized if any method scopes matches a claimed scope in the access token\\. Otherwise, the invocation is not authorized\\. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AuthorizationType": "The method's authorization type\\. This parameter is required\\. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html) in the *API Gateway API Reference*\\. \nIf you specify the `AuthorizerId` property, specify `CUSTOM` or `COGNITO_USER_POOLS` for this property\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "AuthorizerId": "The identifier of an Authorizer to use on this method\\. The `authorizationType` must be `CUSTOM`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AuthorizerId": "The identifier of an authorizer to use on this method\\. The method's authorization type must be `CUSTOM` or `COGNITO_USER_POOLS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "HttpMethod": "The method's HTTP verb\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Integration": "Represents an `HTTP`, `HTTP_PROXY`, `AWS`, `AWS_PROXY`, or Mock integration\\. \n*Required*: No \n*Type*: [Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MethodResponses": "Gets a method response associated with a given HTTP status code\\. \n*Required*: No \n*Type*: List of [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -1197,13 +1197,14 @@ "Content": "The content of the configuration or the configuration data\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ContentType": "A standard MIME type describing the format of the configuration content\\. For more information, see [Content\\-Type](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Description": "A description of the configuration\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "LatestVersionNumber": "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version\\. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "LatestVersionNumber": "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version\\. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "VersionLabel": "A user\\-defined label for an AWS AppConfig hosted configuration version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*[^0-9].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::AppFlow::Connector": { "ConnectorLabel": "The label used for registering the connector\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[a-zA-Z0-9][\\w!@#.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ConnectorProvisioningConfig": "The configuration required for registering the connector\\. \n*Required*: Yes \n*Type*: [ConnectorProvisioningConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connector-connectorprovisioningconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ConnectorProvisioningType": "The provisioning type used to register the connector\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `LAMBDA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Description": "A description of the connector entity field\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Description": "A description about the connector runtime setting\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::AppFlow::Connector ConnectorProvisioningConfig": { "Lambda": "Contains information about the configuration of the lambda which is being registered as the connector\\. \n*Required*: No \n*Type*: [LambdaConnectorProvisioningConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connector-lambdaconnectorprovisioningconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -1370,13 +1371,13 @@ "AWS::AppFlow::ConnectorProfile RedshiftConnectorProfileProperties": { "BucketName": "A name for the associated Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "BucketPrefix": "The object key for the destination bucket in which Amazon AppFlow places the files\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "ClusterIdentifier": "The unique ID that's assigned to an Amazon Redshift cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "DataApiRoleArn": "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 [Allow Amazon AppFlow to access Amazon Redshift databases with the Data API](https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_service-role-policies.html#access-redshift)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `arn:aws:iam:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "DatabaseName": "The name of an Amazon Redshift database\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClusterIdentifier": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DataApiRoleArn": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "DatabaseUrl": "The JDBC URL of the Amazon Redshift cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "IsRedshiftServerless": "Indicates whether the connector profile defines a connection to an Amazon Redshift Serverless data warehouse\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsRedshiftServerless": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RoleArn": "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 [Allow Amazon Redshift to access your Amazon AppFlow data in Amazon S3](https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_service-role-policies.html#redshift-access-s3)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `arn:aws:iam:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "WorkgroupName": "The name of an Amazon Redshift workgroup\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "WorkgroupName": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::AppFlow::ConnectorProfile SAPODataConnectorProfileCredentials": { "BasicAuthCredentials": "The SAPOData basic authentication credentials\\. \n*Required*: No \n*Type*: [BasicAuthCredentials](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-basicauthcredentials.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -1465,7 +1466,7 @@ }, "AWS::AppFlow::Flow AggregationConfig": { "AggregationType": "Specifies whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `None | SingleFile` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "TargetFileSize": "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\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "TargetFileSize": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::AppFlow::Flow AmplitudeSourceProperties": { "Object": "The object specified in the Amplitude flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -1559,13 +1560,13 @@ "Object": "The object specified in the Marketo flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::AppFlow::Flow MetadataCatalogConfig": { - "GlueDataCatalog": "Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: [GlueDataCatalog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "GlueDataCatalog": "Property description not available\\. \n*Required*: No \n*Type*: [GlueDataCatalog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::AppFlow::Flow PardotSourceProperties": { "Object": "The object specified in the Salesforce Pardot flow source\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::AppFlow::Flow PrefixConfig": { - "PathPrefixHierarchy": "Specifies whether the destination file path includes either or both of the following elements: \nEXECUTION\\_ID \nThe ID that Amazon AppFlow assigns to the flow run\\. \nSCHEMA\\_VERSION \nThe 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: \n+ Source\\-to\\-destination field mappings\n+ Field data types\n+ Partition keys\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PathPrefixHierarchy": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "PrefixFormat": "Determines the level of granularity for the date and time that's included in the prefix\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DAY | HOUR | MINUTE | MONTH | YEAR` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "PrefixType": "Determines the format of the prefix, and whether it applies to the file name, file path, or both\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `FILENAME | PATH | PATH_AND_FILENAME` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, @@ -1664,7 +1665,7 @@ "AWS::AppFlow::Flow SourceFlowConfig": { "ApiVersion": "The API version of the connector when it's used as a source in the flow\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ConnectorProfileName": "The name of the connector profile\\. This name must be unique for each connector profile in the AWS account\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `[\\w/!@#+=.-]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "ConnectorType": "The type of source connector, such as Salesforce, Amplitude, and so on\\. \n*Allowed Values*: S3 \\| Amplitude \\| Datadog \\| Dynatrace \\| Googleanalytics \\| Infornexus \\| Salesforce \\| Servicenow \\| Singular \\| Slack \\| Trendmicro \\| Veeva \\| Zendesk \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ConnectorType": "The type of connector, such as Salesforce, Amplitude, and so on\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Amplitude | CustomConnector | CustomerProfiles | Datadog | Dynatrace | EventBridge | Googleanalytics | Honeycode | Infornexus | LookoutMetrics | Marketo | Pardot | Redshift | S3 | Salesforce | SAPOData | Servicenow | Singular | Slack | Snowflake | Trendmicro | Upsolver | Veeva | Zendesk` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IncrementalPullConfig": "Defines the configuration for a scheduled incremental data pull\\. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull\\. \n*Required*: No \n*Type*: [IncrementalPullConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "SourceConnectorProperties": "Specifies the information that is required to query a particular source connector\\. \n*Required*: Yes \n*Type*: [SourceConnectorProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, @@ -4243,7 +4244,7 @@ "ManagedExecution": "Describes whether StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. \nWhen active, StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. After conflicting operations finish, StackSets starts queued operations in request order\\. \nIf there are already running or queued operations, StackSets queues all incoming operations even if they are non\\-conflicting\\. \nYou can't modify your stack set's execution configuration while there are running or queued operations for that stack set\\.\nWhen inactive \\(default\\), StackSets performs one operation at a time in request order\\. \n*Required*: No \n*Type*: [ManagedExecution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-managedexecution.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "OperationPreferences": "The user\\-specified preferences for how AWS CloudFormation performs a stack set operation\\. \n*Required*: No \n*Type*: [OperationPreferences](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Parameters": "The input parameters for the stack set template\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "PermissionModel": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "PermissionModel": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SELF_MANAGED | SERVICE_MANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "StackInstancesGroup": "A group of stack instances with parameters in some specific accounts and Regions\\. \n*Required*: No \n*Type*: List of [StackInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "StackSetName": "The name to associate with the stack set\\. The name must be unique in the Region where you create your stack set\\. \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9-]{0,127}$` \nThe `StackSetName` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Tags": "The key\\-value pairs to associate with this stack set and the stacks created from it\\. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks\\. A maximum number of 50 tags can be specified\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -4255,19 +4256,19 @@ "RetainStacksOnAccountRemoval": "If set to `true`, stack resources are retained when an account is removed from a target organization or OU\\. If set to `false`, stack resources are deleted\\. Specify only if `Enabled` is set to `True`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFormation::StackSet DeploymentTargets": { - "AccountFilterType": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccountFilterType": "Limit deployment targets to individual accounts or include additional accounts with provided OUs\\. \nThe following is a list of possible values for the `AccountFilterType` operation\\. \n+ `INTERSECTION`: StackSets deploys to the accounts specified in `Accounts` parameter\\. \n+ `DIFFERENCE`: StackSets excludes the accounts specified in `Accounts` parameter\\. This enables user to avoid certain accounts within an OU such as suspended accounts\\.\n+ `UNION`: StackSets includes additional accounts deployment targets\\.", "Accounts": "The names of one or more AWS accounts for which you want to deploy stack set updates\\. \n*Pattern*: `^[0-9]{12}$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "OrganizationalUnitIds": "The organization root ID or organizational unit \\(OU\\) IDs to which StackSets deploys\\. \n*Pattern*: `^(ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}|r-[a-z0-9]{4,32})$` \n*Required*: Conditional \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFormation::StackSet ManagedExecution": { - "Active": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Active": "When `true`, StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. After conflicting operations finish, StackSets starts queued operations in request order\\. \nIf there are already running or queued operations, StackSets queues all incoming operations even if they are non\\-conflicting\\. \nYou can't modify your stack set's execution configuration while there are running or queued operations for that stack set\\.\nWhen `false` \\(default\\), StackSets performs one operation at a time in request order\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFormation::StackSet OperationPreferences": { "FailureToleranceCount": "The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage` \\(but not both\\)\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "FailureTolerancePercentage": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "MaxConcurrentCount": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "MaxConcurrentPercentage": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "RegionConcurrencyType": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FailureTolerancePercentage": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrentCount": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaxConcurrentPercentage": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RegionConcurrencyType": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Allowed values*: `PARALLEL | SEQUENTIAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RegionOrder": "The order of the Regions where you want to perform the stack operation\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFormation::StackSet Parameter": { @@ -4309,25 +4310,25 @@ "MaxTTL": "The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. CloudFront uses this value only when the origin sends `Cache-Control` or `Expires` headers with the object\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \nThe default value for this field is 31536000 seconds \\(one year\\)\\. If the value of `MinTTL` or `DefaultTTL` is more than 31536000 seconds, then the default value for this field is the same as the value of `DefaultTTL`\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MinTTL": "The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated\\. For more information, see [Managing How Long Content Stays in an Edge Cache \\(Expiration\\)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "A unique name to identify the cache policy\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "ParametersInCacheKeyAndForwardedToOrigin": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "ParametersInCacheKeyAndForwardedToOrigin": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are also included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::CachePolicy CookiesConfig": { - "CookieBehavior": "Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests that are * **not** * listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CookieBehavior": "Determines whether any cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No cookies in viewer requests are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, * **except** * for those that are listed in the `CookieNames` type, which are not included\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Cookies": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::CachePolicy HeadersConfig": { - "HeaderBehavior": "Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderBehavior": "Determines whether any HTTP headers are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No HTTP headers are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the HTTP headers that are listed in the `Headers` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Headers": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::CachePolicy ParametersInCacheKeyAndForwardedToOrigin": { - "CookiesConfig": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CookiesConfig": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "EnableAcceptEncodingBrotli": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingGzip` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer's `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it's not included in the cache key and it's not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "EnableAcceptEncodingGzip": "A flag that can affect whether the `Accept-Encoding` HTTP header is included in the cache key and included in requests that CloudFront sends to the origin\\. \nThis field is related to the `EnableAcceptEncodingBrotli` field\\. If one or both of these fields is `true` *and* the viewer request includes the `Accept-Encoding` header, then CloudFront does the following: \n+ Normalizes the value of the viewer's `Accept-Encoding` header\n+ Includes the normalized header in the cache key\n+ Includes the normalized header in the request to the origin, if a request is necessary\nFor more information, see [Compression support](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-policy-compressed-objects) in the *Amazon CloudFront Developer Guide*\\. \nIf you set this value to `true`, and this cache behavior also has an origin request policy attached, do not include the `Accept-Encoding` header in the origin request policy\\. CloudFront always includes the `Accept-Encoding` header in origin requests when the value of this field is `true`, so including this header in an origin request policy has no effect\\. \nIf both of these fields are `false`, then CloudFront treats the `Accept-Encoding` header the same as any other HTTP header in the viewer request\\. By default, it's not included in the cache key and it's not included in origin requests\\. In this case, you can manually add `Accept-Encoding` to the headers whitelist like any other HTTP header\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "HeadersConfig": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "QueryStringsConfig": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "HeadersConfig": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringsConfig": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::CachePolicy QueryStringsConfig": { - "QueryStringBehavior": "Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests that are * **not** * listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringBehavior": "Determines whether any URL query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No query strings in viewer requests are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, * **except** * those that are listed in the `QueryStringNames` type, which are not included\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "QueryStrings": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::CloudFrontOriginAccessIdentity": { @@ -4586,11 +4587,11 @@ "OriginRequestPolicyConfig": "The origin request policy configuration\\. \n*Required*: Yes \n*Type*: [OriginRequestPolicyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::OriginRequestPolicy CookiesConfig": { - "CookieBehavior": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "CookieBehavior": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `CookieNames` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Cookies": "Contains a list of cookie names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::OriginRequestPolicy HeadersConfig": { - "HeaderBehavior": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HeaderBehavior": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n+ `allExcept` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `Headers` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allExcept | allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Headers": "Contains a list of HTTP header names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::OriginRequestPolicy OriginRequestPolicyConfig": { @@ -4601,7 +4602,7 @@ "QueryStringsConfig": "The URL query strings from viewer requests to include in origin requests\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::OriginRequestPolicy QueryStringsConfig": { - "QueryStringBehavior": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "QueryStringBehavior": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `QueryStringNames` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "QueryStrings": "Contains a list of query string names\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudFront::PublicKey": { @@ -4740,16 +4741,11 @@ "Enabled": "This field is `true` if any of the AWS accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies\\. If not, this field is `false`\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudTrail::Channel": { - "Channel": "Contains information about a returned CloudTrail channel\\. \n*Required*: No \n*Type*: [String](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-channel-channel.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Destinations": "One or more event data stores to which events arriving through a channel will be logged\\. \n*Required*: No \n*Type*: List of [Destination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-channel-destination.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "The name of the channel\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9._\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Source": "The name of the partner or external event source\\. You cannot change this name after you create the channel\\. A maximum of one channel is allowed per source\\. \n A source can be either `Custom` for all valid non\\-AWS events, or the name of a partner event source\\. For information about the source names for available partners, see [Additional information about integration partners](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-integration.html#cloudtrail-lake-partner-information) in the CloudTrail User Guide\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Source": "The name of the partner or external event source\\. You cannot change this name after you create the channel\\. A maximum of one channel is allowed per source\\. \n A source can be either `Custom` for all valid non\\-AWS events, or the name of a partner event source\\. For information about the source names for available partners, see [Additional information about integration partners](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-integration.html#cloudtrail-lake-partner-information) in the CloudTrail User Guide\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Tags": "A list of tags\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Maximum*: `200` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, - "AWS::CloudTrail::Channel Channel": { - "ChannelArn": "The Amazon Resource Name \\(ARN\\) of a channel\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `256` \n*Pattern*: `^[a-zA-Z0-9._/\\-:]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Name": "The name of the CloudTrail channel\\. For service\\-linked channels, the name is `aws-service-channel/service-name/custom-suffix` where `service-name` represents the name of the AWS service that created the channel and `custom-suffix` represents the suffix created by the AWS service\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9._\\-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" - }, "AWS::CloudTrail::Channel Destination": { "Location": "For channels used for a CloudTrail Lake integration, the location is the ARN of an event data store that receives events from a channel\\. For service\\-linked channels, the location is the name of the AWS service\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `1024` \n*Pattern*: `^[a-zA-Z0-9._/\\-:]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Type": "The type of destination for events arriving from a channel\\. For channels used for a CloudTrail Lake integration, the value is `EventDataStore`\\. For service\\-linked channels, the value is `AWS_SERVICE`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `AWS_SERVICE | EVENT_DATA_STORE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -4771,7 +4767,7 @@ "AWS::CloudTrail::EventDataStore AdvancedFieldSelector": { "EndsWith": "An operator that includes events that match the last few characters of the event record field specified as the value of `Field`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Equals": "An operator that includes events that match the exact value of the event record field specified as the value of `Field`\\. This is the only valid operator that you can use with the `readOnly`, `eventCategory`, and `resources.type` fields\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Field": "A field in a CloudTrail event record on which to filter events to be logged\\. For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the field is used only for selecting events as filtering is not supported\\. \n For CloudTrail event records, supported fields include `readOnly`, `eventCategory`, `eventSource` \\(for management events\\), `eventName`, `resources.type`, and `resources.ARN`\\. \n For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the only supported field is `eventCategory`\\. \n+ ** `readOnly` ** \\- Optional\\. Can be set to `Equals` a value of `true` or `false`\\. If you do not add this field, CloudTrail logs both `read` and `write` events\\. A value of `true` logs only `read` events\\. A value of `false` logs only `write` events\\.\n+ ** `eventSource` ** \\- For filtering management events only\\. This can be set only to `NotEquals` `kms.amazonaws.com`\\.\n+ ** `eventName` ** \\- Can use any operator\\. You can use it to \ufb01lter in or \ufb01lter out any data event logged to CloudTrail, such as `PutBucket` or `GetSnapshotBlock`\\. You can have multiple values for this \ufb01eld, separated by commas\\.\n+ ** `eventCategory` ** \\- This is required and must be set to `Equals`\\. \n + For CloudTrail event records, the value must be `Management` or `Data`\\. \n + For AWS Config configuration items, the value must be `ConfigurationItem`\\. \n + For Audit Manager evidence, the value must be `Evidence`\\. \n + For non\\-AWS events, the value must be `ActivityAuditLog`\\. \n+ ** `resources.type` ** \\- This \ufb01eld is required for CloudTrail data events\\. `resources.type` can only use the `Equals` operator, and the value can be one of the following:\n + `AWS::DynamoDB::Table` \n + `AWS::Lambda::Function` \n + `AWS::S3::Object` \n + `AWS::CloudTrail::Channel` \n + `AWS::Cognito::IdentityPool` \n + `AWS::DynamoDB::Stream` \n + `AWS::EC2::Snapshot` \n + `AWS::FinSpace::Environment` \n + `AWS::Glue::Table` \n + `AWS::KendraRanking::ExecutionPlan` \n + `AWS::ManagedBlockchain::Node` \n + `AWS::SageMaker::ExperimentTrialComponent` \n + `AWS::SageMaker::FeatureGroup` \n + `AWS::S3::AccessPoint` \n + `AWS::S3ObjectLambda::AccessPoint` \n + `AWS::S3Outposts::Object`", + "Field": "A field in a CloudTrail event record on which to filter events to be logged\\. For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the field is used only for selecting events as filtering is not supported\\. \n For CloudTrail event records, supported fields include `readOnly`, `eventCategory`, `eventSource` \\(for management events\\), `eventName`, `resources.type`, and `resources.ARN`\\. \n For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the only supported field is `eventCategory`\\. \n+ ** `readOnly` ** \\- Optional\\. Can be set to `Equals` a value of `true` or `false`\\. If you do not add this field, CloudTrail logs both `read` and `write` events\\. A value of `true` logs only `read` events\\. A value of `false` logs only `write` events\\.\n+ ** `eventSource` ** \\- For filtering management events only\\. This can be set only to `NotEquals` `kms.amazonaws.com`\\.\n+ ** `eventName` ** \\- Can use any operator\\. You can use it to \ufb01lter in or \ufb01lter out any data event logged to CloudTrail, such as `PutBucket` or `GetSnapshotBlock`\\. You can have multiple values for this \ufb01eld, separated by commas\\.\n+ ** `eventCategory` ** \\- This is required and must be set to `Equals`\\. \n + For CloudTrail event records, the value must be `Management` or `Data`\\. \n + For AWS Config configuration items, the value must be `ConfigurationItem`\\. \n + For Audit Manager evidence, the value must be `Evidence`\\. \n + For non\\-AWS events, the value must be `ActivityAuditLog`\\. \n+ ** `resources.type` ** \\- This \ufb01eld is required for CloudTrail data events\\. `resources.type` can only use the `Equals` operator, and the value can be one of the following:\n + `AWS::DynamoDB::Table` \n + `AWS::Lambda::Function` \n + `AWS::S3::Object` \n + `AWS::CloudTrail::Channel` \n + `AWS::Cognito::IdentityPool` \n + `AWS::DynamoDB::Stream` \n + `AWS::EC2::InstanceConnectEndpoint` \n + `AWS::EC2::Snapshot` \n + `AWS::FinSpace::Environment` \n + `AWS::Glue::Table` \n + `AWS::KendraRanking::ExecutionPlan` \n + `AWS::ManagedBlockchain::Node` \n + `AWS::SageMaker::ExperimentTrialComponent` \n + `AWS::SageMaker::FeatureGroup` \n + `AWS::S3::AccessPoint` \n + `AWS::S3ObjectLambda::AccessPoint` \n + `AWS::S3Outposts::Object`", "NotEndsWith": "An operator that excludes events that match the last few characters of the event record field specified as the value of `Field`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "NotEquals": "An operator that excludes events that match the exact value of the event record field specified as the value of `Field`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "NotStartsWith": "An operator that excludes events that match the first few characters of the event record field specified as the value of `Field`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -4787,7 +4783,7 @@ "EnableLogFileValidation": "Specifies whether log file validation is enabled\\. The default is false\\. \nWhen you disable log file integrity validation, the chain of digest files is broken after one hour\\. CloudTrail does not create digest files for log files that were delivered during a period in which log file integrity validation was disabled\\. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re\\-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10\\. The same applies whenever you stop CloudTrail logging or delete a trail\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "EventSelectors": "Use event selectors to further specify the management and data event settings for your trail\\. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events\\. When an event occurs in your account, CloudTrail evaluates the event selector for all trails\\. For each trail, if the event matches any event selector, the trail processes and logs the event\\. If the event doesn't match any event selector, the trail doesn't log the event\\. \nYou can configure up to five event selectors for a trail\\. \n*Required*: No \n*Type*: List of [EventSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IncludeGlobalServiceEvents": "Specifies whether the trail is publishing events from global services such as IAM to the log files\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "InsightSelectors": "A JSON string that contains the insight types you want to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InsightSelectors": "A JSON string that contains the insight types you want to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid Insight types\\. \nThe `ApiCallRateInsight` Insights type analyzes write\\-only management API calls that are aggregated per minute against a baseline API call volume\\. \nThe `ApiErrorRateInsight` Insights type analyzes management API calls that result in error codes\\. The error is shown if the API call is unsuccessful\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IsLogging": "Whether the CloudTrail trail is currently logging AWS API calls\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IsMultiRegionTrail": "Specifies whether the trail applies only to the current region or to all regions\\. The default is false\\. If the trail exists only in the current region and this value is set to true, shadow trails \\(replications of the trail\\) will be created in the other regions\\. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted\\. As a best practice, consider using trails that log events in all regions\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IsOrganizationTrail": "Specifies whether the trail is applied to all accounts in an organization in AWS Organizations, or only for the current AWS account\\. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the management account or delegated administrator account for an organization in AWS Organizations\\. If the trail is not an organization trail and this is set to `true`, the trail will be created in all AWS accounts that belong to the organization\\. If the trail is an organization trail and this is set to `false`, the trail will remain in the current AWS account but be deleted from all member accounts in the organization\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -4809,7 +4805,7 @@ "ReadWriteType": "Specify if you want your trail to log read\\-only events, write\\-only events, or all\\. For example, the EC2 `GetConsoleOutput` is a read\\-only API operation and `RunInstances` is a write\\-only API operation\\. \n By default, the value is `All`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `All | ReadOnly | WriteOnly` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudTrail::Trail InsightSelector": { - "InsightType": "The type of insights to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "InsightType": "The type of Insights events to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid Insight types\\. \nThe `ApiCallRateInsight` Insights type analyzes write\\-only management API calls that are aggregated per minute against a baseline API call volume\\. \nThe `ApiErrorRateInsight` Insights type analyzes management API calls that result in error codes\\. The error is shown if the API call is unsuccessful\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CloudWatch::Alarm": { "ActionsEnabled": "Indicates whether actions should be executed during any changes to the alarm state\\. The default is TRUE\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -5031,7 +5027,7 @@ "AWS::CodeBuild::Project EnvironmentVariable": { "Name": "The name or key of the environment variable\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Type": "The type of environment variable\\. Valid values include: \n+ `PARAMETER_STORE`: An environment variable stored in Systems Manager Parameter Store\\. To learn how to specify a parameter store environment variable, see [env/parameter\\-store](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.parameter-store) in the * AWS CodeBuild User Guide*\\.\n+ `PLAINTEXT`: An environment variable in plain text format\\. This is the default value\\.\n+ `SECRETS_MANAGER`: An environment variable stored in AWS Secrets Manager\\. To learn how to specify a secrets manager environment variable, see [env/secrets\\-manager](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.secrets-manager) in the * AWS CodeBuild User Guide*\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `PARAMETER_STORE | PLAINTEXT | SECRETS_MANAGER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Value": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs and secret access keys\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Value": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::CodeBuild::Project GitSubmodulesConfig": { "FetchSubmodules": "Set to true to fetch Git submodules for your AWS CodeBuild build project\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -5659,7 +5655,7 @@ "EnableTokenRevocation": "Activates or deactivates token revocation\\. For more information about revoking tokens, see [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)\\. \nIf you don't include this parameter, token revocation is automatically activated for the new user pool client\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ExplicitAuthFlows": "The authentication flows that you want your user pool client to support\\. For each app client in your user pool, you can sign in your users with any combination of one or more flows, including with a user name and Secure Remote Password \\(SRP\\), a user name and password, or a custom authentication process that you define with Lambda functions\\. \nIf you don't specify a value for `ExplicitAuthFlows`, your user client supports `ALLOW_REFRESH_TOKEN_AUTH`, `ALLOW_USER_SRP_AUTH`, and `ALLOW_CUSTOM_AUTH`\\.\nValid values include: \n+ `ALLOW_ADMIN_USER_PASSWORD_AUTH`: Enable admin based user password authentication flow `ADMIN_USER_PASSWORD_AUTH`\\. This setting replaces the `ADMIN_NO_SRP_AUTH` setting\\. With this authentication flow, your app passes a user name and password to Amazon Cognito in the request, instead of using the Secure Remote Password \\(SRP\\) protocol to securely transmit the password\\.\n+ `ALLOW_CUSTOM_AUTH`: Enable Lambda trigger based authentication\\.\n+ `ALLOW_USER_PASSWORD_AUTH`: Enable user password\\-based authentication\\. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords\\.\n+ `ALLOW_USER_SRP_AUTH`: Enable SRP\\-based authentication\\.\n+ `ALLOW_REFRESH_TOKEN_AUTH`: Enable authflow to refresh tokens\\.\nIn some environments, you will see the values `ADMIN_NO_SRP_AUTH`, `CUSTOM_AUTH_FLOW_ONLY`, or `USER_PASSWORD_AUTH`\\. You can't assign these legacy `ExplicitAuthFlows` values to user pool clients at the same time as values that begin with `ALLOW_`, like `ALLOW_USER_SRP_AUTH`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "GenerateSecret": "Boolean to specify whether you want to generate a secret for the user pool client being created\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "IdTokenValidity": "The ID token time limit\\. After this limit expires, your user can't use their ID token\\. To specify the time unit for `IdTokenValidity` as `seconds`, `minutes`, `hours`, or `days`, set a `TokenValidityUnits` value in your API request\\. \nFor example, when you set `IdTokenValidity` as `10` and `TokenValidityUnits` as `hours`, your user can authenticate their session with their ID token for 10 hours\\. \nThe default time unit for `AccessTokenValidity` in an API request is hours\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdTokenValidity": "The ID token time limit\\. After this limit expires, your user can't use their ID token\\. To specify the time unit for `IdTokenValidity` as `seconds`, `minutes`, `hours`, or `days`, set a `TokenValidityUnits` value in your API request\\. \nFor example, when you set `IdTokenValidity` as `10` and `TokenValidityUnits` as `hours`, your user can authenticate their session with their ID token for 10 hours\\. \nThe default time unit for `IdTokenValidity` in an API request is hours\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "LogoutURLs": "A list of allowed logout URLs for the IdPs\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "PreventUserExistenceErrors": "Use this setting to choose which errors and responses are returned by Cognito APIs during authentication, account confirmation, and password recovery when the user does not exist in the user pool\\. When set to `ENABLED` and the user does not exist, authentication returns an error indicating either the username or password was incorrect, and account confirmation and password recovery return a response indicating a code was sent to a simulated destination\\. When set to `LEGACY`, those APIs will return a `UserNotFoundException` exception if the user does not exist in the user pool\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ENABLED | LEGACY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ReadAttributes": "The read attributes\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -5677,9 +5673,9 @@ "UserDataShared": "If `UserDataShared` is `true`, Amazon Cognito includes user data in the events that it publishes to Amazon Pinpoint analytics\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::Cognito::UserPoolClient TokenValidityUnits": { - "AccessToken": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `AccessTokenValidity` parameter\\. The default `AccessTokenValidity` time unit is hours\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "IdToken": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `IdTokenValidity` parameter\\. The default `IdTokenValidity` time unit is hours\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "RefreshToken": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `RefreshTokenValidity` parameter\\. The default `RefreshTokenValidity` time unit is days\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "AccessToken": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `AccessTokenValidity` parameter\\. The default `AccessTokenValidity` time unit is hours\\. `AccessTokenValidity` duration can range from five minutes to one day\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IdToken": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `IdTokenValidity` parameter\\. The default `IdTokenValidity` time unit is hours\\. `IdTokenValidity` duration can range from five minutes to one day\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RefreshToken": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `RefreshTokenValidity` parameter\\. The default `RefreshTokenValidity` time unit is days\\. `RefreshTokenValidity` duration can range from 60 minutes to 10 years\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::Cognito::UserPoolDomain": { "CustomDomainConfig": "The configuration for a custom domain that hosts the sign\\-up and sign\\-in pages for your application\\. Use this object to specify an SSL certificate that is managed by ACM\\. \n*Required*: No \n*Type*: [CustomDomainConfigType](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooldomain-customdomainconfigtype.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -5841,7 +5837,7 @@ "AWS::Config::ConfigurationRecorder RecordingGroup": { "AllSupported": "Specifies whether AWS Config records configuration changes for every supported type of regional resource\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of regional resource, it starts recording resources of that type automatically\\. \nIf you set this option to `true`, you cannot enumerate a list of `resourceTypes`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IncludeGlobalResourceTypes": "Specifies whether AWS Config includes all supported types of global resources \\(for example, IAM resources\\) with the resources that it records\\. \nBefore you can set this option to `true`, you must set the `AllSupported` option to `true`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of global resource, it starts recording resources of that type automatically\\. \nThe configuration details for any global resource are the same in all regions\\. To prevent duplicate configuration items, you should consider customizing AWS Config in only one region to record global resources\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "ResourceTypes": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "ResourceTypes": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set the `AllSupported` option to false and populate the `ResourceTypes` option with values, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::Config::ConformancePack": { "ConformancePackInputParameters": "A list of ConformancePackInputParameter objects\\. \n*Required*: No \n*Type*: List of [ConformancePackInputParameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-conformancepack-conformancepackinputparameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -6002,7 +5998,7 @@ "Attributes": "A toggle for an individual feature at the instance level\\. \n*Required*: Yes \n*Type*: [Attributes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-instance-attributes.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "DirectoryId": "The identifier for the directory\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "IdentityManagementType": "The identity management type\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CONNECT_MANAGED | EXISTING_DIRECTORY | SAML` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "InstanceAlias": "The alias of instance\\. `InstanceAlias` is only required when `IdentityManagementType` is `CONNECT_MANAGED` or `SAML`\\. `InstanceAlias` is not required when `IdentityManagementType` is `EXISTING_DIRECTORY`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `62` \n*Pattern*: `^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "InstanceAlias": "The alias of instance\\. `InstanceAlias` is only required when `IdentityManagementType` is `CONNECT_MANAGED` or `SAML`\\. `InstanceAlias` is not required when `IdentityManagementType` is `EXISTING_DIRECTORY`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `45` \n*Pattern*: `^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::Connect::Instance Attributes": { "AutoResolveBestVoices": "*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -6024,7 +6020,7 @@ }, "AWS::Connect::InstanceStorageConfig EncryptionConfig": { "EncryptionType": "The type of encryption\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `KMS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "KeyId": "The full ARN of the encryption key\\. \nBe sure to provide the full ARN of the encryption key, not just the ID\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "KeyId": "The full ARN of the encryption key\\. \nBe sure to provide the full ARN of the encryption key, not just the ID\\. \nAmazon Connect supports only KMS keys with the default key spec of [https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-symmetric-default](https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-symmetric-default)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::Connect::InstanceStorageConfig KinesisFirehoseConfig": { "FirehoseArn": "The Amazon Resource Name \\(ARN\\) of the delivery stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -7288,7 +7284,7 @@ "User": "Specifies a user name that can mount the location and access the files, folders, and metadata that you need in the SVM\\. \nIf you provide a user in your Active Directory, note the following: \n+ If you're using AWS Directory Service for Microsoft Active Directory, the user must be a member of the AWS Delegated FSx Administrators group\\.\n+ If you're using a self\\-managed Active Directory, the user must be a member of either the Domain Admins group or a custom group that you specified for file system administration when you created your file system\\.\nMake sure that the user has the permissions it needs to copy the data you want: \n+ `SE_TCB_NAME`: Required to set object ownership and file metadata\\. With this privilege, you also can copy NTFS discretionary access lists \\(DACLs\\)\\.\n+ `SE_SECURITY_NAME`: May be needed to copy NTFS system access control lists \\(SACLs\\)\\. This operation specifically requires the Windows privilege, which is granted to members of the Domain Admins group\\. If you configure your task to copy SACLs, make sure that the user has the required privileges\\. For information about copying SACLs, see [Ownership and permissions\\-related options](https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html#configure-ownership-and-permissions)\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::DataSync::LocationFSxONTAP SmbMountOptions": { - "Version": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate a protocol version that they mutually support\\. \\(DataSync supports SMB versions 1\\.0 and later\\.\\)" + "Version": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate the highest version of SMB that they mutually support between 2\\.1 and 3\\.1\\.1\\." }, "AWS::DataSync::LocationFSxOpenZFS": { "FsxFilesystemArn": "The Amazon Resource Name \\(ARN\\) of the FSx for OpenZFS file system\\. \n*Required*: No \n*Type*: String \n*Maximum*: `128` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -7352,10 +7348,10 @@ "AgentArns": "ARNs of the agents to use for an NFS location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DataSync::LocationObjectStorage": { - "AccessKey": "Specifies the access key \\(for example, a user name\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AccessKey": "Specifies the access key \\(for example, a user name\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AgentArns": "Specifies the Amazon Resource Names \\(ARNs\\) of the DataSync agents that can securely connect with your location\\. \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `4` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "BucketName": "Specifies the name of the object storage bucket involved in the transfer\\. \n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "SecretKey": "Specifies the secret key \\(for example, a password\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SecretKey": "Specifies the secret key \\(for example, a password\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ServerCertificate": "Specifies a certificate to authenticate with an object storage system that uses a private or self\\-signed certificate authority \\(CA\\)\\. You must specify a Base64\\-encoded `.pem` file \\(for example, `file:///home/user/.ssh/storage_sys_certificate.pem`\\)\\. The certificate can be up to 32768 bytes \\(before Base64 encoding\\)\\. \nTo use this parameter, configure `ServerProtocol` to `HTTPS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ServerHostname": "Specifies the domain name or IP address of the object storage server\\. A DataSync agent uses this hostname to mount the object storage server in a network\\. \n*Required*: No \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^(([a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9\\-]*[A-Za-z0-9])$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ServerPort": "Specifies the port that your object storage server accepts inbound network traffic on \\(for example, port 443\\)\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `65536` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -7384,7 +7380,7 @@ "User": "The user who can mount the share and has the permissions to access files and folders in the SMB share\\. \nFor information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see [user](https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#SMBuser)\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `104` \n*Pattern*: `^[^\\x5B\\x5D\\\\/:;|=,+*?]{1,104}$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DataSync::LocationSMB MountOptions": { - "Version": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate a protocol version that they mutually support\\. \\(DataSync supports SMB versions 1\\.0 and later\\.\\)" + "Version": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate the highest version of SMB that they mutually support between 2\\.1 and 3\\.1\\.1\\." }, "AWS::DataSync::Task": { "CloudWatchLogGroupArn": "The Amazon Resource Name \\(ARN\\) of the Amazon CloudWatch log group that is used to monitor and log events in the task\\. \nFor more information about how to use CloudWatch Logs with DataSync, see [Monitoring Your Task](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs) in the * AWS DataSync User Guide\\.* \nFor more information about these groups, see [Working with Log Groups and Log Streams](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) in the *Amazon CloudWatch Logs User Guide*\\. \n*Required*: No \n*Type*: String \n*Maximum*: `562` \n*Pattern*: `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -7436,7 +7432,7 @@ }, "AWS::DevOpsGuru::NotificationChannel NotificationChannelConfig": { "Filters": "The filter configurations for the Amazon SNS notification topic you use with DevOps Guru\\. If you do not provide filter configurations, the default configurations are to receive notifications for all message types of `High` or `Medium` severity\\. \n*Required*: No \n*Type*: [NotificationFilterConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-notificationfilterconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "Sns": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for cross account Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. For more information, see Permissions for cross account Amazon SNS topics\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "Sns": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to send it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::DevOpsGuru::NotificationChannel NotificationFilterConfig": { "MessageTypes": "The events that you want to receive notifications for\\. For example, you can choose to receive notifications only when the severity level is upgraded or a new insight is created\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -7607,20 +7603,20 @@ }, "AWS::DynamoDB::GlobalTable": { "AttributeDefinitions": "A list of attributes that describe the key schema for the global table and indexes\\. \n*Required*: Yes \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "BillingMode": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BillingMode": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "GlobalSecondaryIndexes": "Global secondary indexes to be created on the global table\\. You can create up to 20 global secondary indexes\\. Each replica in your global table will have the same global secondary index settings\\. You can only create or delete one global secondary index in a single stack operation\\. \nSince the backfilling of an index could take a long time, CloudFormation does not wait for the index to become active\\. If a stack operation rolls back, CloudFormation might not delete an index that has been added\\. In that case, you will need to delete the index manually\\. \n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "KeySchema": "Specifies the attributes that make up the primary key for the table\\. The attributes in the `KeySchema` property must also be defined in the `AttributeDefinitions` property\\. \n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "LocalSecondaryIndexes": "Local secondary indexes to be created on the table\\. You can create up to five local secondary indexes\\. Each index is scoped to a given hash key value\\. The size of each hash key can be up to 10 gigabytes\\. Each replica in your global table will have the same local secondary index settings\\. \n*Required*: No \n*Type*: List of [LocalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Replicas": "Specifies the list of replicas for your global table\\. The list must contain at least one element, the region where the stack defining the global table is deployed\\. For example, if you define your table in a stack deployed to us\\-east\\-1, you must have an entry in `Replicas` with the region us\\-east\\-1\\. You cannot remove the replica in the stack region\\. \nAdding a replica might take a few minutes for an empty table, or up to several hours for large tables\\. If you want to add or remove a replica, we recommend submitting an `UpdateStack` operation containing only that change\\. \nIf you add or delete a replica during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new replica, you might need to manually delete the replica\\.\nYou can create a new global table with as many replicas as needed\\. You can add or remove replicas after table creation, but you can only add or remove a single replica in each update\\. \n*Required*: Yes \n*Type*: List of [ReplicaSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "SSESpecification": "Specifies the settings to enable server\\-side encryption\\. These settings will be applied to all replicas\\. If you plan to use customer\\-managed KMS keys, you must provide a key for each replica using the `ReplicaSpecification.ReplicaSSESpecification` property\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "StreamSpecification": "Specifies the streams settings on your global table\\. You must provide a value for this property if your global table contains more than one replica\\. You can only change the streams settings if your global table has only one replica\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "TableName": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "TableName": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "TimeToLiveSpecification": "Specifies the time to live \\(TTL\\) settings for the table\\. This setting will be applied to all replicas\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "WriteProvisionedThroughputSettings": "Specifies an auto scaling policy for write capacity\\. This policy will be applied to all replicas\\. This setting must be specified if `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable AttributeDefinition": { - "AttributeName": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "AttributeType": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "AttributeName": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeType": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable CapacityAutoScalingSettings": { "MaxCapacity": "The maximum provisioned capacity units for the global table\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -7629,32 +7625,32 @@ "TargetTrackingScalingPolicyConfiguration": "Defines a target tracking scaling policy\\. \n*Required*: Yes \n*Type*: [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable ContributorInsightsSpecification": { - "Enabled": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Enabled": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable GlobalSecondaryIndex": { - "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", - "KeySchema": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "Projection": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\.", "WriteProvisionedThroughputSettings": "Defines write capacity settings for the global secondary index\\. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED`\\. All replicas will have the same write capacity settings for this global secondary index\\. \n*Required*: No \n*Type*: [WriteProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable KeySchema": { "AttributeName": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "KeyType": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "KeyType": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::DynamoDB::GlobalTable KinesisStreamSpecification": { - "StreamArn": "The ARN for a specific Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "StreamArn": "The ARN for a specific Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable LocalSecondaryIndex": { - "IndexName": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", - "KeySchema": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "IndexName": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "Projection": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html) \n*Update requires*: Updates are not supported\\." }, "AWS::DynamoDB::GlobalTable PointInTimeRecoverySpecification": { "PointInTimeRecoveryEnabled": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable Projection": { - "NonKeyAttributes": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", - "ProjectionType": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" + "NonKeyAttributes": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "ProjectionType": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)" }, "AWS::DynamoDB::GlobalTable ReadProvisionedThroughputSettings": { "ReadCapacityAutoScalingSettings": "Specifies auto scaling settings for the replica table or global secondary index\\. \n*Required*: No \n*Type*: [CapacityAutoScalingSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -7662,7 +7658,7 @@ }, "AWS::DynamoDB::GlobalTable ReplicaGlobalSecondaryIndexSpecification": { "ContributorInsightsSpecification": "Updates the status for contributor insights for a specific table or index\\. CloudWatch Contributor Insights for DynamoDB graphs display the partition key and \\(if applicable\\) sort key of frequently accessed items and frequently throttled items in plaintext\\. If you require the use of AWS Key Management Service \\(KMS\\) to encrypt this table\u2019s partition key and sort key data with an AWS managed key or customer managed key, you should not enable CloudWatch Contributor Insights for DynamoDB for this table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ReadProvisionedThroughputSettings": "Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED`\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable ReplicaSSESpecification": { @@ -7676,15 +7672,15 @@ "ReadProvisionedThroughputSettings": "Defines read capacity settings for the replica table\\. \n*Required*: No \n*Type*: [ReadProvisionedThroughputSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Region": "The region in which this replica exists\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "SSESpecification": "Allows you to specify a customer\\-managed key for the replica\\. When using customer\\-managed keys for server\\-side encryption, this property must have a value in all replicas\\. \n*Required*: No \n*Type*: [ReplicaSSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicassespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "TableClass": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableClass": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Tags": "An array of key\\-value pairs to apply to this replica\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable SSESpecification": { "SSEEnabled": "Indicates whether server\\-side encryption is performed using an AWS managed key or an AWS owned key\\. If enabled \\(true\\), server\\-side encryption type is set to KMS and an AWS managed key is used \\(AWS KMS charges apply\\)\\. If disabled \\(false\\) or not specified,server\\-side encryption is set to an AWS owned key\\. If you choose to use KMS encryption, you can also use customer managed KMS keys by specifying them in the `ReplicaSpecification.SSESpecification` object\\. You cannot mix AWS managed and customer managed KMS keys\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "SSEType": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "SSEType": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable StreamSpecification": { - "StreamViewType": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "StreamViewType": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable TargetTrackingScalingPolicyConfiguration": { "DisableScaleIn": "Indicates whether scale in by the target tracking scaling policy is disabled\\. The default value is `false`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -7693,7 +7689,7 @@ "TargetValue": "Defines a target value for the scaling policy\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable TimeToLiveSpecification": { - "AttributeName": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeName": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Enabled": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::GlobalTable WriteProvisionedThroughputSettings": { @@ -7701,7 +7697,7 @@ }, "AWS::DynamoDB::Table": { "AttributeDefinitions": "A list of attributes that describe the key schema for the table and indexes\\. \nThis property is required to create a DynamoDB table\\. \nUpdate requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)\\. Replacement if you edit an existing AttributeDefinition\\. \n*Required*: Conditional \n*Type*: List of [AttributeDefinition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-attributedefinition.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "BillingMode": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BillingMode": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ContributorInsightsSpecification": "The settings used to enable or disable CloudWatch Contributor Insights for the specified table\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "GlobalSecondaryIndexes": "Global secondary indexes to be created on the table\\. You can create up to 20 global secondary indexes\\. \nIf you update a table to include a new global secondary index, AWS CloudFormation initiates the index creation and then proceeds with the stack update\\. AWS CloudFormation doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table\\. You can't use the index or update the table until the index's status is `ACTIVE`\\. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command\\. \nIf you add or delete an index during an update, we recommend that you don't update any other resources\\. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index\\. \nUpdates are not supported\\. The following are exceptions: \n+ If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption\\.\n+ You can delete or add one global secondary index without interruption\\. If you do both in the same update \\(for example, by changing the index's logical ID\\), the update fails\\.\n*Required*: No \n*Type*: List of [GlobalSecondaryIndex](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-globalsecondaryindex.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ImportSourceSpecification": "Specifies the properties of data being imported from the S3 bucket source to the table\\. \nIf you specify the `ImportSourceSpecification` property, and also specify either the `StreamSpecification` or `TableClass` property, the IAM entity creating/updating stack must have `UpdateTable` permission\\.\n*Required*: No \n*Type*: [ImportSourceSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-importsourcespecification.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -7712,32 +7708,32 @@ "ProvisionedThroughput": "Throughput for the specified table, which consists of values for `ReadCapacityUnits` and `WriteCapacityUnits`\\. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html)\\. \nIf you set `BillingMode` as `PROVISIONED`, you must specify this property\\. If you set `BillingMode` as `PAY_PER_REQUEST`, you cannot specify this property\\. \n*Required*: Conditional \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "SSESpecification": "Specifies the settings to enable server\\-side encryption\\. \n*Required*: No \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "StreamSpecification": "The settings for the DynamoDB table stream, which capture changes to items stored in the table\\. \n*Required*: No \n*Type*: [StreamSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "TableClass": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TableClass": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "TableName": "A name for the table\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the table name\\. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "TimeToLiveSpecification": "Specifies the Time to Live \\(TTL\\) settings for the table\\. \nFor detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide\\. \n*Required*: No \n*Type*: [TimeToLiveSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-timetolivespecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table AttributeDefinition": { - "AttributeName": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "AttributeType": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "AttributeName": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeType": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table ContributorInsightsSpecification": { - "Enabled": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Enabled": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table Csv": { - "Delimiter": "The delimiter used for separating items in the CSV file being imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "HeaderList": "List of the headers used to specify a common header for all source CSV files being imported\\. If this field is specified then the first line of each CSV file is treated as data instead of the header\\. If this field is not specified the the first line of each CSV file is treated as the header\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "Delimiter": "The delimiter used for separating items in the CSV file being imported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Pattern*: `[,;:|\\t ]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "HeaderList": "List of the headers used to specify a common header for all source CSV files being imported\\. If this field is specified then the first line of each CSV file is treated as data instead of the header\\. If this field is not specified the the first line of each CSV file is treated as the header\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::DynamoDB::Table GlobalSecondaryIndex": { "ContributorInsightsSpecification": "The settings used to enable or disable CloudWatch Contributor Insights for the specified global secondary index\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", - "KeySchema": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "IndexName": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "Projection": "Represents attributes that are copied \\(projected\\) from the table into the global secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-projection.html) \n*Update requires*: Updates are not supported\\.", "ProvisionedThroughput": "Represents the provisioned throughput settings for the specified global secondary index\\. \nFor current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*\\. \n*Required*: No \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table ImportSourceSpecification": { - "InputCompressionType": "Type of compression to be used on the input coming from the imported table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "InputFormat": "The format of the source data\\. Valid values for `ImportFormat` are `CSV`, `DYNAMODB_JSON` or `ION`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InputCompressionType": "Type of compression to be used on the input coming from the imported table\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | NONE | ZSTD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InputFormat": "The format of the source data\\. Valid values for `ImportFormat` are `CSV`, `DYNAMODB_JSON` or `ION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | DYNAMODB_JSON | ION` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "InputFormatOptions": "Additional properties that specify how the input is formatted, \n*Required*: No \n*Type*: [InputFormatOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-inputformatoptions.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "S3BucketSource": "The S3 bucket that provides the source for the import\\. \n*Required*: Yes \n*Type*: [S3BucketSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-s3bucketsource.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, @@ -7746,31 +7742,31 @@ }, "AWS::DynamoDB::Table KeySchema": { "AttributeName": "The name of a key attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "KeyType": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "KeyType": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table KinesisStreamSpecification": { - "StreamArn": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "StreamArn": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table LocalSecondaryIndex": { - "IndexName": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", - "KeySchema": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "IndexName": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", + "KeySchema": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "Projection": "Represents attributes that are copied \\(projected\\) from the table into the local secondary index\\. These are in addition to the primary key attributes and index key attributes, which are automatically projected\\. \n*Required*: Yes \n*Type*: [Projection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-projection.html) \n*Update requires*: Updates are not supported\\." }, "AWS::DynamoDB::Table PointInTimeRecoverySpecification": { "PointInTimeRecoveryEnabled": "Indicates whether point in time recovery is enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table Projection": { - "NonKeyAttributes": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "ProjectionType": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "NonKeyAttributes": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ProjectionType": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table ProvisionedThroughput": { "ReadCapacityUnits": "The maximum number of strongly consistent reads consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "WriteCapacityUnits": "The maximum number of writes consumed per second before DynamoDB returns a `ThrottlingException`\\. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#ProvisionedThroughput) in the *Amazon DynamoDB Developer Guide*\\. \nIf read/write capacity mode is `PAY_PER_REQUEST` the value is set to 0\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table S3BucketSource": { - "S3Bucket": "The S3 bucket that is being imported from\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "S3BucketOwner": "The account number of the S3 bucket that is being imported from\\. If the bucket is owned by the requester this is optional\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "S3KeyPrefix": "The key prefix shared by all S3 Objects that are being imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "S3Bucket": "The S3 bucket that is being imported from\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^[a-z0-9A-Z]+[\\.\\-\\w]*[a-z0-9A-Z]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3BucketOwner": "The account number of the S3 bucket that is being imported from\\. If the bucket is owned by the requester this is optional\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "S3KeyPrefix": "The key prefix shared by all S3 Objects that are being imported\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::DynamoDB::Table SSESpecification": { "KMSMasterKeyId": "The AWS KMS key that should be used for the AWS KMS encryption\\. To specify a key, use its key ID, Amazon Resource Name \\(ARN\\), alias name, or alias ARN\\. Note that you should only provide this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -7778,10 +7774,10 @@ "SSEType": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table StreamSpecification": { - "StreamViewType": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "StreamViewType": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::DynamoDB::Table TimeToLiveSpecification": { - "AttributeName": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AttributeName": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Enabled": "Indicates whether TTL is to be enabled \\(true\\) or disabled \\(false\\) on the table\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::EC2::CapacityReservation": { @@ -7954,7 +7950,7 @@ "AWS::EC2::EC2Fleet FleetLaunchTemplateOverridesRequest": { "AvailabilityZone": "The Availability Zone in which to launch the instances\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "InstanceRequirements": "The attributes for the instance types\\. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes\\. \nIf you specify `InstanceRequirements`, you can't specify `InstanceType`\\.\n*Required*: No \n*Type*: [InstanceRequirementsRequest](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "InstanceType": "The instance type\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.2xlarge | c6in.32xlarge | c6in.4xlarge | c6in.8xlarge | c6in.large | c6in.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.2xlarge | m6idn.32xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.large | m6idn.xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.2xlarge | m6in.32xlarge | m6in.4xlarge | m6in.8xlarge | m6in.large | m6in.xlarge | mac1.metal | mac2.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.2xlarge | r6idn.32xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.large | r6idn.xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.2xlarge | r6in.32xlarge | r6in.4xlarge | r6in.8xlarge | r6in.large | r6in.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-3tb1.56xlarge | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "InstanceType": "The instance type\\. \n `mac1.metal` is not supported as a launch template override\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.2xlarge | c6in.32xlarge | c6in.4xlarge | c6in.8xlarge | c6in.large | c6in.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.2xlarge | m6idn.32xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.large | m6idn.xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.2xlarge | m6in.32xlarge | m6in.4xlarge | m6in.8xlarge | m6in.large | m6in.xlarge | mac1.metal | mac2.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.2xlarge | r6idn.32xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.large | r6idn.xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.2xlarge | r6in.32xlarge | r6in.4xlarge | r6in.8xlarge | r6in.large | r6in.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-3tb1.56xlarge | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "MaxPrice": "The maximum price per unit hour that you are willing to pay for a Spot Instance\\. We do not recommend using this parameter because it can lead to increased interruptions\\. If you do not specify this parameter, you will pay the current Spot price\\. \nIf you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Placement": "The location where the instance launched, if applicable\\. \n*Required*: No \n*Type*: [Placement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Priority": "The priority for the launch template override\\. The highest priority is launched first\\. \nIf the On\\-Demand `AllocationStrategy` is set to `prioritized`, EC2 Fleet uses priority to determine which launch template override to use first in fulfilling On\\-Demand capacity\\. \nIf the Spot `AllocationStrategy` is set to `capacity-optimized-prioritized`, EC2 Fleet uses priority on a best\\-effort basis to determine which launch template override to use in fulfilling Spot capacity, but optimizes for capacity first\\. \nValid values are whole numbers starting at `0`\\. The lower the number, the higher the priority\\. If no number is set, the launch template override has the lowest priority\\. You can set the same priority for different launch template overrides\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -8541,11 +8537,21 @@ "LocalGatewayVirtualInterfaceGroupId": "The ID of the virtual interface group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "NetworkInterfaceId": "The ID of the network interface\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::EC2::LocalGatewayRouteTable": { + "LocalGatewayId": "The ID of the local gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Mode": "The mode of the local gateway route table\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `coip | direct-vpc-routing` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the local gateway route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::EC2::LocalGatewayRouteTableVPCAssociation": { "LocalGatewayRouteTableId": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Tags": "The tags assigned to the association\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "VpcId": "The ID of the VPC\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, + "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation": { + "LocalGatewayRouteTableId": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "LocalGatewayVirtualInterfaceGroupId": "The ID of the virtual interface group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the association\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::EC2::NatGateway": { "AllocationId": "\\[Public NAT gateway only\\] The allocation ID of the Elastic IP address that's associated with the NAT gateway\\. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ConnectivityType": "Indicates whether the NAT gateway supports public or private connectivity\\. The default is public connectivity\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `private | public` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -9918,7 +9924,7 @@ "OutpostConfig": "An object representing the configuration of your local Amazon EKS cluster on an AWS Outpost\\. This object isn't available for clusters on the AWS cloud\\. \n*Required*: No \n*Type*: [OutpostConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ResourcesVpcConfig": "The VPC configuration that's used by the cluster control plane\\. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes\\. For more information, see [Cluster VPC Considerations](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) and [Cluster Security Group Considerations](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html) in the *Amazon EKS User Guide*\\. You must specify at least two subnets\\. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane\\. \nUpdates require replacement of the `SecurityGroupIds` and `SubnetIds` sub\\-properties\\.\n*Required*: Yes \n*Type*: [ResourcesVpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RoleArn": "The Amazon Resource Name \\(ARN\\) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf\\. For more information, see [Amazon EKS Service IAM Role](https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "Tags": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions in your IAM user or IAM role used to manage the CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions for your [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the AWS CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Version": "The desired Kubernetes version for your cluster\\. If you don't specify a value here, the default version available in Amazon EKS is used\\. \nThe default version might not be the latest version available\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::EKS::Cluster ClusterLogging": { @@ -9948,7 +9954,7 @@ "OutpostArns": "The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts\\. Only a single Outpost ARN is supported\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::EKS::Cluster Provider": { - "KeyArn": "Amazon Resource Name \\(ARN\\) or alias of the KMS key\\. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key\\. For more information, see [Allowing Users in Other Accounts to Use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "KeyArn": "Amazon Resource Name \\(ARN\\) or alias of the KMS key\\. The KMS key must be symmetric and created in the same AWS Region as the cluster\\. If the KMS key was created in a different account, the [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) must have access to the KMS key\\. For more information, see [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::EKS::Cluster ResourcesVpcConfig": { "EndpointPrivateAccess": "Set this value to `true` to enable private access for your cluster's Kubernetes API server endpoint\\. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint\\. The default value for this parameter is `false`, which disables private access for your Kubernetes API server\\. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that `publicAccessCidrs` includes the necessary CIDR blocks for communication with the nodes or Fargate pods\\. For more information, see [Amazon EKS cluster endpoint access control](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) in the * *Amazon EKS User Guide* *\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -10971,7 +10977,7 @@ "HealthCheckPort": "The port the load balancer uses when performing health checks on targets\\. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP\\_UDP, the default is `traffic-port`, which is the port on which each target receives traffic from the load balancer\\. If the protocol is GENEVE, the default is port 80\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "HealthCheckProtocol": "The protocol the load balancer uses when performing health checks on targets\\. For Application Load Balancers, the default is HTTP\\. For Network Load Balancers and Gateway Load Balancers, the default is TCP\\. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS\\. The GENEVE, TLS, UDP, and TCP\\_UDP protocols are not supported for health checks\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GENEVE | HTTP | HTTPS | TCP | TCP_UDP | TLS | UDP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "HealthCheckTimeoutSeconds": "The amount of time, in seconds, during which no response from a target means a failed health check\\. The range is 2\u2013120 seconds\\. For target groups with a protocol of HTTP, the default is 6 seconds\\. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds\\. For target groups with a protocol of GENEVE, the default is 5 seconds\\. If the target type is `lambda`, the default is 30 seconds\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `120` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "HealthyThresholdCount": "The number of consecutive health check successes required before considering a target healthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 5\\. For target groups with a protocol of GENEVE, the default is 5\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "HealthyThresholdCount": "The number of consecutive health check successes required before considering a target healthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 5\\. For target groups with a protocol of GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IpAddressType": "The type of IP address used for this target group\\. The possible values are `ipv4` and `ipv6`\\. This is an optional parameter\\. If not specified, the IP address type defaults to `ipv4`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ipv4 | ipv6` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Matcher": "\\[HTTP/HTTPS health checks\\] The HTTP or gRPC codes to use when checking for a successful response from a target\\. For target groups with a protocol of TCP, TCP\\_UDP, UDP or TLS the range is 200\\-599\\. For target groups with a protocol of HTTP or HTTPS, the range is 200\\-499\\. For target groups with a protocol of GENEVE, the range is 200\\-399\\. \n*Required*: No \n*Type*: [Matcher](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "The name of the target group\\. \nThis name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -10982,7 +10988,7 @@ "TargetGroupAttributes": "The attributes\\. \n*Required*: No \n*Type*: List of [TargetGroupAttribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "TargetType": "The type of target that you must specify when registering targets with this target group\\. You can't specify targets for a target group using more than one target type\\. \n+ `instance` \\- Register targets by instance ID\\. This is the default value\\.\n+ `ip` \\- Register targets by IP address\\. You can specify IP addresses from the subnets of the virtual private cloud \\(VPC\\) for the target group, the RFC 1918 range \\(10\\.0\\.0\\.0/8, 172\\.16\\.0\\.0/12, and 192\\.168\\.0\\.0/16\\), and the RFC 6598 range \\(100\\.64\\.0\\.0/10\\)\\. You can't specify publicly routable IP addresses\\.\n+ `lambda` \\- Register a single Lambda function as a target\\.\n+ `alb` \\- Register a single Application Load Balancer as a target\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `alb | instance | ip | lambda` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Targets": "The targets\\. \n*Required*: No \n*Type*: List of [TargetDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "UnhealthyThresholdCount": "The number of consecutive health check failures required before considering a target unhealthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 2\\. For target groups with a protocol of GENEVE, the default is 2\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UnhealthyThresholdCount": "The number of consecutive health check failures required before considering a target unhealthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 2\\. For target groups with a protocol of GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "VpcId": "The identifier of the virtual private cloud \\(VPC\\)\\. If the target is a Lambda function, this parameter does not apply\\. Otherwise, this parameter is required\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::ElasticLoadBalancingV2::TargetGroup Matcher": { @@ -11176,7 +11182,7 @@ "AWS::Events::Endpoint": { "Description": "A description for the endpoint\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "EventBuses": "The event buses being used by the endpoint\\. \n*Exactly*: `2` \n*Required*: Yes \n*Type*: List of [EndpointEventBus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-endpointeventbus.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Name": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "The name of the endpoint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ReplicationConfig": "Whether event replication was enabled or disabled for this endpoint\\. The default state is `ENABLED` which means you must supply a `RoleArn`\\. If you don't have a `RoleArn` or you don't want event replication enabled, set the state to `DISABLED`\\. \n*Required*: No \n*Type*: [ReplicationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-replicationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RoleArn": "The ARN of the role used by event replication for the endpoint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `^arn:aws[a-z-]*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RoutingConfig": "The routing configuration of the endpoint\\. \n*Required*: Yes \n*Type*: [RoutingConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-endpoint-routingconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -11230,7 +11236,7 @@ "RoleArn": "The Amazon Resource Name \\(ARN\\) of the role that is used for target invocation\\. \nIf you're setting an event bus in another account as the target and that account granted permission to your account through an organization instead of directly by the account ID, you must specify a `RoleArn` with proper permissions in the `Target` structure, instead of here in this parameter\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1600` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ScheduleExpression": "The scheduling expression\\. For example, \"cron\\(0 20 \\* \\* ? \\*\\)\", \"rate\\(5 minutes\\)\"\\. For more information, see [Creating an Amazon EventBridge rule that runs on a schedule](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Required*: Conditional \n*Type*: String \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "State": "The state of the rule\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Targets": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nThe maximum number of entries per request is 10\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nFor a list of services you can configure as targets for events, see [EventBridge targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) in the *Amazon EventBridge User Guide*\\. \nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are: \n+ `Amazon EBS CreateSnapshot API call` \n+ `Amazon EC2 RebootInstances API call` \n+ `Amazon EC2 StopInstances API call` \n+ `Amazon EC2 TerminateInstances API call` \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions: \n+ For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\.\n+ For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\.\nFor more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Targets": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nThe maximum number of entries per request is 10\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nFor a list of services you can configure as targets for events, see [EventBridge targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) in the *Amazon EventBridge User Guide*\\. \nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are: \n+ `Amazon EBS CreateSnapshot API call` \n+ `Amazon EC2 RebootInstances API call` \n+ `Amazon EC2 StopInstances API call` \n+ `Amazon EC2 TerminateInstances API call` \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions: \n+ For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\.\n+ For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\.\nFor more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nIf you have an IAM role on a cross\\-account event bus target, a `PutTargets` call without a role on the same target \\(same `Id` and `Arn`\\) will not remove the role\\.\nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::Events::Rule AwsVpcConfiguration": { "AssignPublicIp": "Specifies whether the task's elastic network interface receives a public IP address\\. You can specify `ENABLED` only when `LaunchType` in `EcsParameters` is set to `FARGATE`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `DISABLED | ENABLED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -11547,7 +11553,7 @@ "ORGUNIT": "The organizational unit list for the map\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::FMS::Policy NetworkFirewallPolicy": { - "FirewallDeploymentModel": "Defines the deployment model to use for the firewall policy\\. To use a distributed model, set [PolicyOption](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_PolicyOption.html) to `NULL`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CENTRALIZED | DISTRIBUTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "FirewallDeploymentModel": "Defines the deployment model to use for the firewall policy\\. To use a distributed model, set [FirewallDeploymentModel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-thirdpartyfirewallpolicy.html) to `DISTRIBUTED`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CENTRALIZED | DISTRIBUTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::FMS::Policy PolicyOption": { "NetworkFirewallPolicy": "Defines the deployment model to use for the firewall policy\\. \n*Required*: No \n*Type*: [NetworkFirewallPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -11569,6 +11575,13 @@ "AWS::FMS::Policy ThirdPartyFirewallPolicy": { "FirewallDeploymentModel": "Defines the deployment model to use for the third\\-party firewall policy\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CENTRALIZED | DISTRIBUTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::FMS::ResourceSet": { + "Description": "A description of the resource set\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The descriptive name of the resource set\\. You can't change the name of a resource set after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourceTypeList": "Determines the resources that can be associated to the resource set\\. Depending on your setting for max results and the number of resource sets, a single call might not return the full list\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Resources": "The resources included in the resource set\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "A collection of key:value pairs associated with a resource set\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::FSx::DataRepositoryAssociation": { "BatchImportMetaDataOnCreate": "A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created\\. The task runs if this flag is set to `true`\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "DataRepositoryPath": "The path to the Amazon S3 data repository that will be linked to the file system\\. The path can be an S3 bucket or prefix in the format `s3://myBucket/myPrefix/`\\. This path specifies where in the S3 data repository files will be imported from or exported to\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `4357` \n*Pattern*: `^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{3,4357}$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -13090,7 +13103,7 @@ "WindowsUser": "The Windows user to use to run this component on Windows core devices\\. The user must exist on each Windows core device, and its name and password must be in the LocalSystem account's Credentials Manager instance\\. \nIf you omit this parameter, the AWS IoT Greengrass Core software uses the default Windows user that you configure on the AWS IoT Greengrass nucleus component\\. For more information, see [Configure the user and group that run components](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-component-user)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::GreengrassV2::Deployment DeploymentComponentUpdatePolicy": { - "Action": "Whether or not to notify components and wait for components to become safe to update\\. Choose from the following options: \n+ `NOTIFY_COMPONENTS` \u2013 The deployment notifies each component before it stops and updates that component\\. Components can use the [SubscribeToComponentUpdates](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates) IPC operation to receive these notifications\\. Then, components can respond with the [DeferComponentUpdate](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate) IPC operation\\. For more information, see the [Create deployments](https://docs.aws.amazon.com/greengrass/v2/latest/developerguide/create-deployments.html) in the *AWS IoT Greengrass V2 Developer Guide*\\.\n+ `SKIP_NOTIFY_COMPONENTS` \u2013 The deployment doesn't notify components or wait for them to be safe to update\\.\nDefault: `NOTIFY_COMPONENTS` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Action": "Whether or not to notify components and wait for components to become safe to update\\. Choose from the following options: \n+ `NOTIFY_COMPONENTS` \u2013 The deployment notifies each component before it stops and updates that component\\. Components can use the [SubscribeToComponentUpdates](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates) IPC operation to receive these notifications\\. Then, components can respond with the [DeferComponentUpdate](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate) IPC operation\\. For more information, see the [Create deployments](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html) in the *AWS IoT Greengrass V2 Developer Guide*\\.\n+ `SKIP_NOTIFY_COMPONENTS` \u2013 The deployment doesn't notify components or wait for them to be safe to update\\.\nDefault: `NOTIFY_COMPONENTS` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "TimeoutInSeconds": "The amount of time in seconds that each component on a device has to report that it's safe to update\\. If the component waits for longer than this timeout, then the deployment proceeds on the device\\. \nDefault: `60` \n*Required*: No \n*Type*: Integer \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::GreengrassV2::Deployment DeploymentConfigurationValidationPolicy": { @@ -13270,7 +13283,7 @@ }, "AWS::GuardDuty::Filter": { "Action": "Specifies the action that is to be applied to the findings that match the filter\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `ARCHIVE | NOOP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Description": "The description of the filter\\. Valid special characters include period \\(\\.\\), underscore \\(\\_\\), dash \\(\\-\\), and whitespace\\. The new line character is considered to be an invalid input for description\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Description": "The description of the filter\\. Valid characters include alphanumeric characters, and special characters such as hyphen, period, colon, underscore, parentheses \\(`{ }`, `[ ]`, and `( )`\\), forward slash, horizontal tab, vertical tab, newline, form feed, return, and whitespace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "DetectorId": "The ID of the detector belonging to the GuardDuty account that you want to create a filter for\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `300` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "FindingCriteria": "Represents the criteria to be used in the filter for querying findings\\. \n*Required*: Yes \n*Type*: [FindingCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "The name of the filter\\. Valid characters include period \\(\\.\\), underscore \\(\\_\\), dash \\(\\-\\), and alphanumeric characters\\. A whitespace is considered to be an invalid character\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `64` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -13482,6 +13495,37 @@ "ChannelArn": "Channel ARN for the stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^arn:aws:[is]vs:[a-z0-9-]+:[0-9]+:channel/[a-zA-Z0-9-]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::IVSChat::LoggingConfiguration": { + "DestinationConfiguration": "The DestinationConfiguration is a complex type that contains information about where chat content will be logged\\. \n*Required*: Yes \n*Type*: [DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Logging\\-configuration name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVSChat::LoggingConfiguration CloudWatchLogsDestinationConfiguration": { + "LogGroupName": "Name of the Amazon Cloudwatch Logs destination where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[\\.\\-_/#A-Za-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVSChat::LoggingConfiguration DestinationConfiguration": { + "CloudWatchLogs": "An Amazon CloudWatch Logs destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-cloudwatchlogsdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Firehose": "An Amazon Kinesis Data Firehose destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [FirehoseDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-firehosedestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "S3": "An Amazon S3 destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVSChat::LoggingConfiguration FirehoseDestinationConfiguration": { + "DeliveryStreamName": "Name of the Amazon Kinesis Firehose delivery stream where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_.-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVSChat::LoggingConfiguration S3DestinationConfiguration": { + "BucketName": "Name of the Amazon S3 bucket where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9-.]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVSChat::Room": { + "LoggingConfigurationIdentifiers": "List of logging\\-configuration identifiers attached to the room\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumMessageLength": "Maximum number of characters in a single message\\. Messages are expected to be UTF\\-8 encoded and this limit applies specifically to rune/code\\-point count, not number of bytes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MaximumMessageRatePerSecond": "Maximum number of messages per second that can be sent to the room \\(by all clients\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MessageReviewHandler": "Configuration information for optional review of messages\\. \n*Required*: No \n*Type*: [MessageReviewHandler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-room-messagereviewhandler.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "Room name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::IVSChat::Room MessageReviewHandler": { + "FallbackResult": "Specifies the fallback behavior \\(whether the message is allowed or denied\\) if the handler does not return a valid response, encounters an error, or times out\\. \\(For the timeout period, see [ Service Quotas](https://docs.aws.amazon.com/ivs/latest/userguide/service-quotas.html)\\.\\) If allowed, the message is delivered with returned content to all users connected to the room\\. If denied, the message is not delivered to any user\\. \n*Default*: `ALLOW` \n*Required*: No \n*Type*: String \n*Allowed values*: `ALLOW | DENY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Uri": "Identifier of the message review handler\\. Currently this must be an ARN of a lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `170` \n*Pattern*: `^$|^arn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::IdentityStore::Group": { "Description": "A string containing the description of the group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "DisplayName": "Property description not available\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -13815,6 +13859,15 @@ "Comparison": "The operator to use when comparing values in the filter\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Value": "The value to filter on\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::InternetMonitor::Monitor": { + "MaxCityNetworksToMonitor": "The maximum number of city\\-networks to monitor for your resources\\. A city\\-network is the location \\(city\\) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through\\. \nFor more information, see [ Choosing a city\\-network maximum value](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/IMCityNetworksMaximum.html) in *Using Amazon CloudWatch Internet Monitor*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MonitorName": "The name of the monitor\\. A monitor name can contain only alphanumeric characters, dashes \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Resources": "The resources that have been added for the monitor, listed by their Amazon Resource Names \\(ARNs\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourcesToAdd": "The resources to add to a monitor, which you provide as a set of Amazon Resource Names \\(ARNs\\)\\. \nYou can add a combination of Virtual Private Clouds \\(VPCs\\) and Amazon CloudFront distributions, or you can add WorkSpaces directories\\. You can't add all three types of resources\\. \nIf you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResourcesToRemove": "The resources to remove from a monitor, which you provide as a set of Amazon Resource Names \\(ARNs\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Status": "The status of a monitor\\. The accepted values that you can specify for `Status` are `ACTIVE` and `INACTIVE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The tags for a monitor, listed as a set of *key:value* pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::IoT1Click::Device": { "DeviceId": "The ID of the device, such as `G030PX0312744DWM`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Enabled": "A Boolean value indicating whether the device is enabled \\(`true`\\) or not \\(`false`\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -16971,11 +17024,12 @@ }, "AWS::Lambda::EventSourceMapping": { "AmazonManagedKafkaEventSourceConfig": "Specific configuration settings for an Amazon Managed Streaming for Apache Kafka \\(Amazon MSK\\) event source\\. \n*Required*: No \n*Type*: [AmazonManagedKafkaEventSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "BatchSize": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function\\. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation \\(6 MB\\)\\. \n+ **Amazon Kinesis** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon DynamoDB Streams** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon Simple Queue Service** \u2013 Default 10\\. For standard queues the max is 10,000\\. For FIFO queues the max is 10\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Self\\-managed Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon MQ \\(ActiveMQ and RabbitMQ\\)** \u2013 Default 100\\. Max 10,000\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "BatchSize": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function\\. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation \\(6 MB\\)\\. \n+ **Amazon Kinesis** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon DynamoDB Streams** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon Simple Queue Service** \u2013 Default 10\\. For standard queues the max is 10,000\\. For FIFO queues the max is 10\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Self\\-managed Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon MQ \\(ActiveMQ and RabbitMQ\\)** \u2013 Default 100\\. Max 10,000\\.\n+ **DocumentDB** \u2013 Default 100\\. Max 10,000\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "BisectBatchOnFunctionError": "\\(Streams only\\) If the function returns an error, split the batch in two and retry\\. The default value is false\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "DestinationConfig": "\\(Streams only\\) An Amazon SQS queue or Amazon SNS topic destination for discarded records\\. \n*Required*: No \n*Type*: [DestinationConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DocumentDBEventSourceConfig": "Specific configuration settings for a DocumentDB event source\\. \n*Required*: No \n*Type*: [DocumentDBEventSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Enabled": "When true, the event source mapping is active\\. When false, Lambda pauses polling and invocation\\. \nDefault: True \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "EventSourceArn": "The Amazon Resource Name \\(ARN\\) of the event source\\. \n+ **Amazon Kinesis** \u2013 The ARN of the data stream or a stream consumer\\.\n+ **Amazon DynamoDB Streams** \u2013 The ARN of the stream\\.\n+ **Amazon Simple Queue Service** \u2013 The ARN of the queue\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 The ARN of the cluster\\.\n+ **Amazon MQ** \u2013 The ARN of the broker\\.\n*Required*: No \n*Type*: String \n*Pattern*: `arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-gov.html)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "EventSourceArn": "The Amazon Resource Name \\(ARN\\) of the event source\\. \n+ **Amazon Kinesis** \u2013 The ARN of the data stream or a stream consumer\\.\n+ **Amazon DynamoDB Streams** \u2013 The ARN of the stream\\.\n+ **Amazon Simple Queue Service** \u2013 The ARN of the queue\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 The ARN of the cluster\\.\n+ **Amazon MQ** \u2013 The ARN of the broker\\.\n+ **Amazon DocumentDB** \u2013 The ARN of the DocumentDB change stream\\.\n*Required*: No \n*Type*: String \n*Pattern*: `arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-gov.html)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "FilterCriteria": "An object that defines the filter criteria that determine whether Lambda should process an event\\. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html)\\. \n*Required*: No \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "FunctionName": "The name of the Lambda function\\.", "FunctionResponseTypes": "\\(Streams and SQS\\) A list of current response type enums applied to the event source mapping\\. \nValid Values: `ReportBatchItemFailures` \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -16999,6 +17053,11 @@ "AWS::Lambda::EventSourceMapping DestinationConfig": { "OnFailure": "The destination configuration for failed invocations\\. \n*Required*: No \n*Type*: [OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-onfailure.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::Lambda::EventSourceMapping DocumentDBEventSourceConfig": { + "CollectionName": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `57` \n*Pattern*: `(^(?!(system\\x2e)))(^[_a-zA-Z0-9])([^$]*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabaseName": "The name of the database to consume within the DocumentDB cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `[^ /\\.$\\x22]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "FullDocument": "Determines what DocumentDB sends to your event stream during document update operations\\. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, DocumentDB sends only a partial document that contains the changes\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Default | UpdateLookup` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::Lambda::EventSourceMapping Endpoints": { "KafkaBootstrapServers": "The list of bootstrap servers for your Kafka brokers in the following format: `\"KafkaBootstrapServers\": [\"abc.xyz.com:xxxx\",\"abc2.xyz.com:xxxx\"]`\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, @@ -17077,7 +17136,7 @@ }, "AWS::Lambda::Function RuntimeManagementConfig": { "RuntimeVersionArn": "The ARN of the runtime version you want the function to use\\. \nThis is only required if you're using the **Manual** runtime update mode\\.\n*Required*: No \n*Type*: String \n*Minimum*: `26` \n*Maximum*: `2048` \n*Pattern*: `^arn:(aws[a-zA-Z-]*):lambda:[a-z]{2}((https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-gov.html)|(-iso(b?)))?-[a-z]+-\\d{1}::runtime:.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "UpdateRuntimeOn": "Specify the runtime update mode\\. \n+ **Auto \\(default\\)** \\- Automatically update to the most recent and secure runtime version using a [Two\\-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase)\\. This is the best choice for most customers to ensure they always benefit from runtime updates\\.\n+ **Function update** \\- Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function\\. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early\\. When using this setting, you need to regularly update your functions to keep their runtime up\\-to\\-date\\.\n+ **Manual** \\- You specify a runtime version in your function configuration\\. The function will use this runtime version indefinitely\\. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version\\. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback)\\.\n*Valid Values*: `Auto` \\| `Function update` \\| `Manual` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "UpdateRuntimeOn": "Specify the runtime update mode\\. \n+ **Auto \\(default\\)** \\- Automatically update to the most recent and secure runtime version using a [Two\\-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase)\\. This is the best choice for most customers to ensure they always benefit from runtime updates\\.\n+ **FunctionUpdate** \\- Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function\\. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early\\. When using this setting, you need to regularly update your functions to keep their runtime up\\-to\\-date\\.\n+ **Manual** \\- You specify a runtime version in your function configuration\\. The function will use this runtime version indefinitely\\. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version\\. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback)\\.\n*Valid Values*: `Auto` \\| `FunctionUpdate` \\| `Manual` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::Lambda::Function SnapStart": { "ApplyOn": "Set `ApplyOn` to `PublishedVersions` to create a snapshot of the initialized execution environment when you publish a function version\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `None | PublishedVersions` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -18467,6 +18526,10 @@ "FindingPublishingFrequency": "Specifies how often Amazon Macie publishes updates to policy findings for the account\\. This includes publishing updates to AWS Security Hub and Amazon EventBridge \\(formerly Amazon CloudWatch Events\\)\\. Valid values are: \n+ FIFTEEN\\_MINUTES\n+ ONE\\_HOUR\n+ SIX\\_HOURS\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Status": "The status of Amazon Macie for the account\\. Valid values are: `ENABLED`, start or resume all Macie activities for the account; and, `PAUSED`, suspend all Macie activities for the account\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::ManagedBlockchain::Accessor": { + "AccessorType": "The type of the accessor\\. \nCurrently, accessor type is restricted to `BILLING_TOKEN`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BILLING_TOKEN` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags assigned to the Accessor\\. \nFor more information about tags, see [Tagging Resources](https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html) in the *Amazon Managed Blockchain Ethereum Developer Guide*, or [Tagging Resources](https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html) in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::ManagedBlockchain::Member": { "InvitationId": "The unique identifier of the invitation to join the network sent to the account that creates the member\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MemberConfiguration": "Configuration properties of the member\\. \n*Required*: Yes \n*Type*: [MemberConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -18484,7 +18547,7 @@ "Name": "The name of the member\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^(?!-|[0-9])(?!.*-$)(?!.*?--)[a-zA-Z0-9-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::ManagedBlockchain::Member MemberFabricConfiguration": { - "AdminPassword": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least eight characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AdminPassword": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least 8 characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AdminUsername": "The user name for the member's initial administrative user\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `16` \n*Pattern*: `^[a-zA-Z][a-zA-Z0-9]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::ManagedBlockchain::Member MemberFrameworkConfiguration": { @@ -18496,13 +18559,13 @@ "FrameworkVersion": "The version of the blockchain framework that the network uses\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `8` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "The name of the network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "NetworkFrameworkConfiguration": "Configuration properties relevant to the network for the blockchain framework that the network uses\\. \n*Required*: No \n*Type*: [NetworkFrameworkConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkframeworkconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "VotingPolicy": "The voting rules for the network to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "VotingPolicy": "The voting rules that the network uses to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::ManagedBlockchain::Member NetworkFabricConfiguration": { - "Edition": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Edition": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see [Amazon Managed Blockchain Pricing](http://aws.amazon.com/managed-blockchain/pricing/) \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::ManagedBlockchain::Member NetworkFrameworkConfiguration": { - "NetworkFabricConfiguration": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "NetworkFabricConfiguration": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network that is using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::ManagedBlockchain::Member VotingPolicy": { "ApprovalThresholdPolicy": "Defines the rules for the network for voting on proposals, such as the percentage of `YES` votes required for the proposal to be approved and the duration of the proposal\\. The policy applies to all proposals and is specified when the network is created\\. \n*Required*: No \n*Type*: [ApprovalThresholdPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -20262,7 +20325,7 @@ "TransportAttachmentId": "The ID of the transport attachment\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `^attachment-([0-9a-f]{8,17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::NetworkManager::ConnectAttachment ConnectAttachmentOptions": { - "Protocol": "The protocol used for the attachment connection\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + "Protocol": "The protocol used for the attachment connection\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE | NO_ENCAP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::NetworkManager::ConnectAttachment ProposedSegmentChange": { "AttachmentPolicyRuleNumber": "The rule number in the policy document that applies to this change\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -20291,7 +20354,7 @@ "CoreNetworkAddress": "The IP address of a core network\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "InsideCidrBlocks": "The inside IP addresses used for a Connect peer configuration\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "PeerAddress": "The IP address of the Connect peer\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Protocol": "The protocol used for a Connect peer configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Protocol": "The protocol used for a Connect peer configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE | NO_ENCAP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::NetworkManager::CoreNetwork": { "Description": "The description of a core network\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -20383,6 +20446,17 @@ "GlobalNetworkId": "The ID of the global network\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "TransitGatewayArn": "The Amazon Resource Name \\(ARN\\) of the transit gateway\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, + "AWS::NetworkManager::TransitGatewayRouteTableAttachment": { + "PeeringId": "The ID of the transit gateway peering\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `^peering-([0-9a-f]{8,17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ProposedSegmentChange": "This property is read\\-only\\. Values can't be assigned to it\\. \n*Required*: No \n*Type*: [ProposedSegmentChange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-transitgatewayroutetableattachment-proposedsegmentchange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The list of key\\-value pairs associated with the transit gateway route table attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "TransitGatewayRouteTableArn": "The ARN of the transit gateway attachment route table\\. For example, `\"TransitGatewayRouteTableArn\": \"arn:aws:ec2:us-west-2:123456789012:transit-gateway-route-table/tgw-rtb-9876543210123456\"`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, + "AWS::NetworkManager::TransitGatewayRouteTableAttachment ProposedSegmentChange": { + "AttachmentPolicyRuleNumber": "The rule number in the policy document that applies to this change\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SegmentName": "The name of the segment to change\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Tags": "The list of key\\-value tags that changed for the segment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::NetworkManager::VpcAttachment": { "CoreNetworkId": "The core network ID\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Options": "Options for creating the VPC attachment\\. \n*Required*: No \n*Type*: [VpcOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-vpcattachment-vpcoptions.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -20624,7 +20698,7 @@ "AWS::OpenSearchServerless::VpcEndpoint": { "Name": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "SecurityGroupIds": "The unique identifiers of the security groups that define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "SubnetIds": "The ID of the subnets from which you access OpenSearch Serverless\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SubnetIds": "The ID of the subnets from which you access OpenSearch Serverless\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "VpcId": "The ID of the VPC from which you access OpenSearch Serverless\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::OpenSearchService::Domain": { @@ -21198,7 +21272,7 @@ "CustomDeliveryConfiguration": "The delivery configuration settings for sending the treatment through a custom channel\\. This object is required if the `MessageConfiguration` object for the treatment specifies a `CustomMessage` object\\. \n*Required*: No \n*Type*: [CustomDeliveryConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-customdeliveryconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Description": "A custom description of the campaign\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "HoldoutPercent": "The allocated percentage of users \\(segment members\\) who shouldn't receive messages from the campaign\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "IsPaused": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "IsPaused": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. If a campaign is running it will complete and then pause\\. Pause only pauses or skips the next run for a recurring future scheduled campaign\\. A campaign scheduled for immediate can't be paused\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Limits": "The messaging limits for the campaign\\. \n*Required*: No \n*Type*: [Limits](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MessageConfiguration": "The message configuration settings for the campaign\\. \n*Required*: No \n*Type*: [MessageConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-messageconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "The name of the campaign\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -21928,7 +22002,7 @@ "Tags": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::QLDB::Stream KinesisConfiguration": { - "AggregationEnabled": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \n *This option is enabled by default\\.* Record aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "AggregationEnabled": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \nDefault: `True` \nRecord aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "StreamArn": "The Amazon Resource Name \\(ARN\\) of the Kinesis Data Streams resource\\. \n*Required*: No \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `1600` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::QuickSight::Analysis": { @@ -22189,7 +22263,7 @@ "NewColumnName": "The new name for the column\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::QuickSight::DataSet ResourcePermission": { - "Actions": "The IAM action to grand or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Actions": "The IAM action to grant or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Principal": "The Amazon Resource Name \\(ARN\\) of the principal\\. This can be one of the following: \n+ The ARN of an Amazon QuickSight user or group associated with a data source or dataset\\. \\(This is common\\.\\)\n+ The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme\\. \\(This is common\\.\\)\n+ The ARN of an AWS account root: This is an IAM ARN rather than a Amazon QuickSight ARN\\. Use this option only to share resources \\(templates\\) across AWS accounts\\. \\(This is less common\\.\\)\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::QuickSight::DataSet RowLevelPermissionDataSet": { @@ -22263,7 +22337,7 @@ "AWS::QuickSight::DataSource DataSourceCredentials": { "CopySourceArn": "The Amazon Resource Name \\(ARN\\) of a data source that has the credential pair that you want to use\\. When `CopySourceArn` is not null, the credential pair from the data source in the ARN is used as the credentials for the `DataSourceCredentials` structure\\. \n*Required*: No \n*Type*: String \n*Pattern*: `^arn:[-a-z0-9]*:quicksight:[-a-z0-9]*:[0-9]{12}:datasource/.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "CredentialPair": "Credential pair\\. For more information, see ` [CredentialPair](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CredentialPair.html) `\\. \n*Required*: No \n*Type*: [CredentialPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-credentialpair.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "SecretArn": "The Amazon Resource Name \\(ARN\\) of the secret associated with the data source in Amazon Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^arn:[-a-z0-9]*:secretsmanager:[-a-z0-9]*:[0-9]{12}:secret:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "SecretArn": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::QuickSight::DataSource DataSourceErrorInfo": { "Message": "Error message\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -22275,7 +22349,7 @@ "AthenaParameters": "The parameters for Amazon Athena\\. \n*Required*: No \n*Type*: [AthenaParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-athenaparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AuroraParameters": "The parameters for Amazon Aurora MySQL\\. \n*Required*: No \n*Type*: [AuroraParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-auroraparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AuroraPostgreSqlParameters": "The parameters for Amazon Aurora\\. \n*Required*: No \n*Type*: [AuroraPostgreSqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-aurorapostgresqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "DatabricksParameters": "The required parameters that are needed to connect to a Databricks data source\\. \n*Required*: No \n*Type*: [DatabricksParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-databricksparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DatabricksParameters": "Property description not available\\. \n*Required*: No \n*Type*: [DatabricksParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-databricksparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MariaDbParameters": "The parameters for MariaDB\\. \n*Required*: No \n*Type*: [MariaDbParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mariadbparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MySqlParameters": "The parameters for MySQL\\. \n*Required*: No \n*Type*: [MySqlParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "OracleParameters": "Oracle parameters\\. \n*Required*: No \n*Type*: [OracleParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-oracleparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -22290,9 +22364,9 @@ "TeradataParameters": "The parameters for Teradata\\. \n*Required*: No \n*Type*: [TeradataParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-teradataparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::QuickSight::DataSource DatabricksParameters": { - "Host": "The host name of the Databricks data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Port": "The port for the Databricks data source\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "SqlEndpointPath": "The HTTP path of the Databricks data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Host": "Property description not available\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Port": "Property description not available\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SqlEndpointPath": "Property description not available\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::QuickSight::DataSource ManifestFileLocation": { "Bucket": "Amazon S3 bucket\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -22544,7 +22618,7 @@ "EnableCloudwatchLogsExports": "The list of log types that need to be enabled for exporting to CloudWatch Logs\\. The values in the list depend on the DB engine being used\\. For more information, see [ Publishing Database Logs to Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Aurora User Guide*\\. \n **Aurora MySQL** \nValid values: `audit`, `error`, `general`, `slowquery` \n **Aurora PostgreSQL** \nValid values: `postgresql` \nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "EnableHttpEndpoint": "A value that indicates whether to enable the HTTP endpoint for an Aurora Serverless DB cluster\\. By default, the HTTP endpoint is disabled\\. \nWhen enabled, the HTTP endpoint provides a connectionless web service API for running SQL queries on the Aurora Serverless DB cluster\\. You can also query your database from inside the RDS console with the query editor\\. \nFor more information, see [Using the Data API for Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*\\. \nValid for: Aurora DB clusters only \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "EnableIAMDatabaseAuthentication": "A value that indicates whether to enable mapping of AWS Identity and Access Management \\(IAM\\) accounts to database accounts\\. By default, mapping is disabled\\. \nFor more information, see [ IAM Database Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon Aurora User Guide\\.* \nValid for: Aurora DB clusters only \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Engine": "The name of the database engine to be used for this DB cluster\\. \nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mysql`\n+ `postgres`\nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "Engine": "The name of the database engine to be used for this DB cluster\\. \nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible and MySQL 8\\.0\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mysql`\n+ `postgres`\nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "EngineMode": "The DB engine mode of the DB cluster, either `provisioned`, `serverless`, `parallelquery`, `global`, or `multimaster`\\. \nThe `parallelquery` engine mode isn't required for Aurora MySQL version 1\\.23 and higher 1\\.x versions, and version 2\\.09 and higher 2\\.x versions\\. \nThe `global` engine mode isn't required for Aurora MySQL version 1\\.22 and higher 1\\.x versions, and `global` engine mode isn't required for any 2\\.x versions\\. \nThe `multimaster` engine mode only applies for DB clusters created with Aurora MySQL version 5\\.6\\.10a\\. \nFor Aurora PostgreSQL, the `global` engine mode isn't required, and both the `parallelquery` and the `multimaster` engine modes currently aren't supported\\. \nLimitations and requirements apply to some DB engine modes\\. For more information, see the following sections in the *Amazon Aurora User Guide*: \n+ [ Limitations of Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) \n+ [ Limitations of Parallel Query](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-parallel-query.html#aurora-mysql-parallel-query-limitations) \n+ [ Limitations of Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations) \n+ [ Limitations of Multi\\-Master Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html#aurora-multi-master-limitations) \nValid for: Aurora DB clusters only \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "EngineVersion": "The version number of the database engine to use\\. \nTo list all of the available engine versions for `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\), use the following command: \n`aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"` \nTo list all of the available engine versions for `aurora-postgresql`, use the following command: \n`aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"` \nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "GlobalClusterIdentifier": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster\\. To define the primary database cluster of the global cluster, use the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource\\. \n If you aren't configuring a global database cluster, don't specify this property\\. \nTo remove the DB cluster from a global database cluster, specify an empty value for the `GlobalClusterIdentifier` property\\.\nFor information about Aurora global databases, see [ Working with Amazon Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) in the *Amazon Aurora User Guide*\\. \nValid for: Aurora DB clusters only \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", @@ -22605,7 +22679,7 @@ "MinCapacity": "The minimum number of Aurora capacity units \\(ACUs\\) for a DB instance in an Aurora Serverless v2 cluster\\. You can specify ACU values in half\\-step increments, such as 8, 8\\.5, 9, and so on\\. The smallest value that you can use is 0\\.5\\. \n*Required*: No \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::RDS::DBClusterParameterGroup": { - "DBClusterParameterGroupName": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing DB cluster parameter group\\.\nIf you don't specify a value for `DBClusterParameterGroupName` property, a name is automatically created for the DB cluster paramter group\\. \nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DBClusterParameterGroupName": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing DB cluster parameter group\\.\nIf you don't specify a value for `DBClusterParameterGroupName` property, a name is automatically created for the DB cluster parameter group\\. \nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Description": "A friendly description for this DB cluster parameter group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Family": "The DB cluster parameter group family name\\. A DB cluster parameter group can be associated with one and only one DB cluster parameter group family, and can be applied only to a DB cluster running a DB engine and engine version compatible with that DB cluster parameter group family\\. \nThe DB cluster parameter group family can't be changed when updating a DB cluster parameter group\\.\nTo list all of the available parameter group families, use the following command: \n`aws rds describe-db-engine-versions --query \"DBEngineVersions[].DBParameterGroupFamily\"` \nThe output contains duplicates\\. \nFor more information, see [`CreateDBClusterParameterGroup`](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBClusterParameterGroup.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Parameters": "Provides a list of parameters for the DB cluster parameter group\\. \n*Required*: Yes \n*Type*: Json \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -22644,7 +22718,7 @@ "Engine": "The name of the database engine that you want to use for this DB instance\\. \nWhen you are creating a DB instance, the `Engine` property is required\\.\nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `custom-oracle-ee`\n+ `custom-oracle-ee-cdb`\n+ `custom-sqlserver-ee`\n+ `custom-sqlserver-se`\n+ `custom-sqlserver-web`\n+ `mariadb`\n+ `mysql`\n+ `oracle-ee`\n+ `oracle-ee-cdb`\n+ `oracle-se2`\n+ `oracle-se2-cdb`\n+ `postgres`\n+ `sqlserver-ee`\n+ `sqlserver-se`\n+ `sqlserver-ex`\n+ `sqlserver-web`\n*Required*: Conditional \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "EngineVersion": "The version number of the database engine to use\\. \nFor a list of valid engine versions, use the `DescribeDBEngineVersions` action\\. \nThe following are the database engines and links to information about the major and minor versions that are available with Amazon RDS\\. Not every database engine is available for every AWS Region\\. \n **Amazon Aurora** \nNot applicable\\. The version number of the database engine to be used by the DB instance is managed by the DB cluster\\. \n**MariaDB** \nSee [MariaDB on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Microsoft SQL Server** \nSee [Microsoft SQL Server Versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) in the *Amazon RDS User Guide\\.* \n**MySQL** \nSee [MySQL on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide\\.* \n**Oracle** \nSee [Oracle Database Engine Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html) in the *Amazon RDS User Guide\\.* \n**PostgreSQL** \nSee [Supported PostgreSQL Database Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.DBVersions) in the *Amazon RDS User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Iops": "The number of I/O operations per second \\(IOPS\\) that the database provisions\\. The value must be equal to or greater than 1000\\. \nIf you specify this property, you must follow the range of allowed ratios of your requested IOPS rate to the amount of storage that you allocate \\(IOPS to allocated storage\\)\\. For example, you can provision an Oracle database instance with 1000 IOPS and 200 GiB of storage \\(a ratio of 5:1\\), or specify 2000 IOPS with 200 GiB of storage \\(a ratio of 10:1\\)\\. For more information, see [Amazon RDS Provisioned IOPS Storage to Improve Performance](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*\\. \nIf you specify `io1` for the `StorageType` property, then you must also specify the `Iops` property\\.\n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "KmsKeyId": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "KmsKeyId": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "LicenseModel": "License model information for this DB instance\\. \n Valid values: \n+ Aurora MySQL \\- `general-public-license`\n+ Aurora PostgreSQL \\- `postgresql-license`\n+ MariaDB \\- `general-public-license`\n+ Microsoft SQL Server \\- `license-included`\n+ MySQL \\- `general-public-license`\n+ Oracle \\- `bring-your-own-license` or `license-included`\n+ PostgreSQL \\- `postgresql-license`\nIf you've specified `DBSecurityGroups` and then you update the license model, AWS CloudFormation replaces the underlying DB instance\\. This will incur some interruptions to database availability\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ManageMasterUserPassword": "A value that indicates whether to manage the master user password with AWS Secrets Manager\\. \nFor more information, see [Password management with AWS Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide\\.* \nConstraints: \n+ Can't manage the master user password with AWS Secrets Manager if `MasterUserPassword` is specified\\.\n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MasterUserPassword": "The password for the master user\\. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\"\\. \n **Amazon Aurora** \nNot applicable\\. The password for the master user is managed by the DB cluster\\. \n **MariaDB** \nConstraints: Must contain from 8 to 41 characters\\. \n **Microsoft SQL Server** \nConstraints: Must contain from 8 to 128 characters\\. \n **MySQL** \nConstraints: Must contain from 8 to 41 characters\\. \n **Oracle** \nConstraints: Must contain from 8 to 30 characters\\. \n **PostgreSQL** \nConstraints: Must contain from 8 to 128 characters\\. \n*Required*: Conditional \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -22658,7 +22732,7 @@ "NetworkType": "The network type of the DB instance\\. \nValid values: \n+ `IPV4` \n+ `DUAL` \nThe network type is determined by the `DBSubnetGroup` specified for the DB instance\\. A `DBSubnetGroup` can support only the IPv4 protocol or the IPv4 and IPv6 protocols \\(`DUAL`\\)\\. \nFor more information, see [ Working with a DB instance in a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) in the *Amazon RDS User Guide\\.* \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "OptionGroupName": "Indicates that the DB instance should be associated with the specified option group\\. \nPermanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group\\. Also, that option group can't be removed from a DB instance once it is associated with a DB instance\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "PerformanceInsightsKMSKeyId": "The AWS KMS key identifier for encryption of Performance Insights data\\. \nThe KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key\\. \nIf you do not specify a value for `PerformanceInsightsKMSKeyId`, then Amazon RDS uses your default KMS key\\. There is a default KMS key for your AWS account\\. Your AWS account has a different default KMS key for each AWS Region\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", - "PerformanceInsightsRetentionPeriod": "The amount of time, in days, to retain Performance Insights data\\. Valid values are 7 or 731 \\(2 years\\)\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "PerformanceInsightsRetentionPeriod": "The number of days to retain Performance Insights data\\. The default is 7 days\\. The following values are valid: \n+ 7\n+ *month* \\* 31, where *month* is a number of months from 1\\-23\n+ 731\nFor example, the following values are valid: \n+ 93 \\(3 months \\* 31\\)\n+ 341 \\(11 months \\* 31\\)\n+ 589 \\(19 months \\* 31\\)\n+ 731\nIf you specify a retention period such as 94, which isn't a valid value, RDS issues an error\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Port": "The port number on which the database accepts connections\\. \n **Amazon Aurora** \nNot applicable\\. The port number is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "PreferredBackupWindow": "The daily time range during which automated backups are created if automated backups are enabled, using the `BackupRetentionPeriod` parameter\\. For more information, see [ Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide\\.* \nConstraints: \n+ Must be in the format `hh24:mi-hh24:mi`\\.\n+ Must be in Universal Coordinated Time \\(UTC\\)\\.\n+ Must not conflict with the preferred maintenance window\\.\n+ Must be at least 30 minutes\\.\n **Amazon Aurora** \nNot applicable\\. The daily time range for creating automated backups is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "PreferredMaintenanceWindow": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time \\(UTC\\)\\. \nFormat: `ddd:hh24:mi-ddd:hh24:mi` \nThe default is a 30\\-minute window selected at random from an 8\\-hour block of time for each AWS Region, occurring on a random day of the week\\. To see the time blocks available, see [ Adjusting the Preferred DB Instance Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) in the *Amazon RDS User Guide\\.* \nThis property applies when AWS CloudFormation initially creates the DB instance\\. If you use AWS CloudFormation to update the DB instance, those updates are applied immediately\\.\nConstraints: Minimum 30\\-minute window\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", @@ -22722,7 +22796,7 @@ }, "AWS::RDS::DBProxy AuthFormat": { "AuthScheme": "The type of authentication that the proxy uses for connections from the proxy to the underlying database\\. \nValid Values: `SECRETS` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "ClientPasswordAuthType": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ClientPasswordAuthType": "Specifies the details of authentication used by a proxy to log in as a specific database user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Description": "A user\\-specified description about the authentication used by a proxy to log in as a specific database user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "IAMAuth": "Whether to require or disallow AWS Identity and Access Management \\(IAM\\) authentication for connections to the proxy\\. The `ENABLED` value is valid only for proxies with RDS for Microsoft SQL Server\\. \nValid Values: `ENABLED | DISABLED | REQUIRED` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "SecretArn": "The Amazon Resource Name \\(ARN\\) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster\\. These secrets are stored within Amazon Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" @@ -22746,7 +22820,7 @@ "ConnectionPoolConfigurationInfo": "Settings that control the size and behavior of the connection pool associated with a `DBProxyTargetGroup`\\. \n*Required*: No \n*Type*: [ConnectionPoolConfigurationInfoFormat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbproxytargetgroup-connectionpoolconfigurationinfoformat.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "DBClusterIdentifiers": "One or more DB cluster identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "DBInstanceIdentifiers": "One or more DB instance identifiers\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "DBProxyName": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "DBProxyName": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "TargetGroupName": "The identifier for the target group\\. \nCurrently, this property must be set to `default`\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::RDS::DBProxyTargetGroup ConnectionPoolConfigurationInfoFormat": { @@ -22885,8 +22959,8 @@ "LoggingProperties": "Specifies logging information, such as queries and connection attempts, for the specified Amazon Redshift cluster\\. \n*Required*: No \n*Type*: [LoggingProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-cluster-loggingproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "MaintenanceTrackName": "An optional parameter for the name of the maintenance track for the cluster\\. If you don't provide a maintenance track name, the cluster is assigned to the `current` track\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ManualSnapshotRetentionPeriod": "The default number of days to retain a manual snapshot\\. If the value is \\-1, the snapshot is retained indefinitely\\. This setting doesn't change the retention period of existing snapshots\\. \nThe value must be either \\-1 or an integer between 1 and 3,653\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "MasterUserPassword": "The password associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except `'` \\(single quote\\), `\"` \\(double quote\\), `\\`, `/`, or `@`\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "MasterUsername": "The user name associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters or hyphens\\. The user name can't be `PUBLIC`\\.\n+ Must contain only lowercase letters, numbers, underscore, plus sign, period \\(dot\\), at symbol \\(@\\), or hyphen\\.\n+ The first character must be a letter\\.\n+ Must not contain a colon \\(:\\) or a slash \\(/\\)\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "MasterUserPassword": "The password associated with the admin user for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except `'` \\(single quote\\), `\"` \\(double quote\\), `\\`, `/`, or `@`\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterUsername": "The user name associated with the admin user for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters or hyphens\\. The user name can't be `PUBLIC`\\.\n+ Must contain only lowercase letters, numbers, underscore, plus sign, period \\(dot\\), at symbol \\(@\\), or hyphen\\.\n+ The first character must be a letter\\.\n+ Must not contain a colon \\(:\\) or a slash \\(/\\)\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "NodeType": "The node type to be provisioned for the cluster\\. For information about node types, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nValid Values: `ds2.xlarge` \\| `ds2.8xlarge` \\| `dc1.large` \\| `dc1.8xlarge` \\| `dc2.large` \\| `dc2.8xlarge` \\| `ra3.xlplus` \\| `ra3.4xlarge` \\| `ra3.16xlarge` \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "NumberOfNodes": "The number of compute nodes in the cluster\\. This parameter is required when the **ClusterType** parameter is specified as `multi-node`\\. \nFor information about determining how many nodes you need, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the *Amazon Redshift Cluster Management Guide*\\. \nIf you don't specify this parameter, you get a single\\-node cluster\\. When requesting a multi\\-node cluster, you must specify the number of nodes that you want in the cluster\\. \nDefault: `1` \nConstraints: Value must be at least 1 and no more than 100\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "OwnerAccount": "The AWS account used to create or copy the snapshot\\. Required if you are restoring a snapshot you do not own, optional if you own the snapshot\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -22896,7 +22970,7 @@ "ResourceAction": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RevisionTarget": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RotateEncryptionKey": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "SnapshotClusterIdentifier": "The name of the cluster the source snapshot was created from\\. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SnapshotClusterIdentifier": "The name of the cluster the source snapshot was created from\\. This parameter is required if your user or role has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "SnapshotCopyGrantName": "The name of the snapshot copy grant\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "SnapshotCopyManual": "Indicates whether to apply the snapshot retention period to newly copied manual snapshots instead of automated snapshots\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "SnapshotCopyRetentionPeriod": "The number of days to retain automated snapshots in the destination AWS Region after they are copied from the source AWS Region\\. \nBy default, this only changes the retention period of copied automated snapshots\\. \nIf you decrease the retention period for automated snapshots that are copied to a destination AWS Region, Amazon Redshift deletes any existing automated snapshots that were copied to the destination AWS Region and that fall outside of the new retention period\\. \nConstraints: Must be at least 1 and no more than 35 for automated snapshots\\. \nIf you specify the `manual` option, only newly copied manual snapshots will have the new retention period\\. \nIf you specify the value of \\-1 newly copied manual snapshots are retained indefinitely\\. \nConstraints: The number of days must be either \\-1 or an integer between 1 and 3,653 for manual snapshots\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -22915,6 +22989,7 @@ "AWS::Redshift::ClusterParameterGroup": { "Description": "The description of the parameter group\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ParameterGroupFamily": "The name of the cluster parameter group family that this cluster parameter group is compatible with\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ParameterGroupName": "The name of the cluster parameter group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Parameters": "An array of parameters to be modified\\. A maximum of 20 parameters can be modified in a single request\\. \nFor each parameter to be modified, you must supply at least the parameter name and parameter value; other name\\-value pairs of the parameter are optional\\. \nFor the workload management \\(WLM\\) configuration, you must supply all the name\\-value pairs in the wlm\\_json\\_configuration parameter\\. \n*Required*: No \n*Type*: List of [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-redshift-clusterparametergroup-parameter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Tags": "The list of tags for the cluster parameter group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, @@ -23184,7 +23259,7 @@ }, "AWS::ResilienceHub::App": { "AppAssessmentSchedule": "Assessment execution schedule with 'Daily' or 'Disabled' values\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "AppTemplateBody": "A string containing a full Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AppTemplateBody": "A string containing a full AWS Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Description": "The optional description for an app\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "The name for the application\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ResiliencyPolicyArn": "The Amazon Resource Name \\(ARN\\) of the resiliency policy\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -23195,7 +23270,7 @@ "AwsAccountId": "The AWS account that owns the physical resource\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AwsRegion": "The AWS Region that the physical resource is located in\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Identifier": "The identifier of the physical resource\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Type": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is a Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "Type": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is an AWS Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::ResilienceHub::App ResourceMapping": { "LogicalStackName": "The name of the CloudFormation stack this resource is mapped to\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -23497,8 +23572,7 @@ "Weight": "*Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set\\. Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type\\. Route 53 then responds to queries based on the ratio of a resource's weight to the total\\. Note the following: \n+ You must specify a value for the `Weight` element for every weighted resource record set\\.\n+ You can only specify one `ResourceRecord` per weighted resource record set\\.\n+ You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets\\.\n+ You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements\\.\n+ For weighted \\(but not weighted alias\\) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set\\. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability\\." }, "AWS::Route53RecoveryControl::Cluster": { - "ClusterEndpoints": "Property description not available\\. \n*Required*: No \n*Type*: List of [ClusterEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53recoverycontrol-cluster-clusterendpoint.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "Name": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Name": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "Tags": "The value for a tag\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::Route53RecoveryControl::Cluster ClusterEndpoint": { @@ -24379,7 +24453,7 @@ "Subscription": "The Amazon SNS subscriptions \\(endpoints\\) for this topic\\. \n*Required*: No \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic-subscription.html) of [Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic-subscription.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Tags": "The list of tags to add to a new topic\\. \nTo be able to tag a topic on creation, you must have the `sns:CreateTopic` and `sns:TagResource` permissions\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "TopicName": "The name of the topic you want to create\\. Topic names must include only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 256 characters long\\. FIFO topic names must end with `.fifo`\\. \nIf you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the topic name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you can't perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", - "TracingConfig": "Tracing mode of an Amazon SNS topic\\. By default `TracingConfig` is set to `PassThrough`, and the topic passes through the tracing header it receives from an SNS publisher to its subscriptions\\. If set to Active, SNS will vend X\\-Ray segment data to topic owner account if the sampled flag in the tracing header is true\\. Only supported on standard topics\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + "TracingConfig": "Tracing mode of an Amazon SNS topic\\. By default `TracingConfig` is set to `PassThrough`, and the topic passes through the tracing header it receives from an SNS publisher to its subscriptions\\. If set to `Active`, SNS will vend X\\-Ray segment data to topic owner account if the sampled flag in the tracing header is true\\. Only supported on standard topics\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::SNS::Topic Subscription": { "Endpoint": "The endpoint that receives notifications from the Amazon SNS topic\\. The endpoint value depends on the protocol that you specify\\. For more information, see the `Endpoint` parameter of the ` [Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) ` action in the *Amazon SNS API Reference*\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -24754,7 +24828,7 @@ "AWS::SSO::PermissionSet": { "CustomerManagedPolicyReferences": "Specifies the names and paths of the customer managed policies that you have attached to your permission set\\. \n*Required*: No \n*Type*: List of [CustomerManagedPolicyReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sso-permissionset-customermanagedpolicyreference.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Description": "The description of the [AWS::SSO::PermissionSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/#aws-resource-sso-permissionset.html#aws-resource-sso-permissionset)\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `700` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "InlinePolicy": "The inline policy that is attached to the permission set\\. \nFor `Length Constraints`, if a valid ARN is provided for a permission set, it is possible for an empty inline policy to be returned\\.\n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "InlinePolicy": "The inline policy that is attached to the permission set\\. \nFor `Length Constraints`, if a valid ARN is provided for a permission set, it is possible for an empty inline policy to be returned\\.\n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `32768` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "InstanceArn": "The ARN of the IAM Identity Center instance under which the operation will be executed\\. For more information about ARNs, see [Amazon Resource Names \\(ARNs\\) and AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `10` \n*Maximum*: `1224` \n*Pattern*: `arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html:::instance/(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sso.html)?ins-[a-zA-Z0-9-.]{16}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "ManagedPolicies": "A structure that stores the details of the AWS managed policy\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Name": "The name of the permission set\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `32` \n*Pattern*: `[\\w+=,.@-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -26201,12 +26275,13 @@ "AWS::SecretsManager::RotationSchedule HostedRotationLambda": { "ExcludeCharacters": "A string of the characters that you don't want in the password\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "KmsKeyArn": "The ARN of the KMS key that Secrets Manager uses to encrypt the secret\\. If you don't specify this value, then Secrets Manager uses the key `aws/secretsmanager`\\. If `aws/secretsmanager` doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "MasterSecretArn": "The ARN of the secret that contains elevated credentials\\. You must create the elevated secret before you can set this property\\. The Lambda rotation function uses this secret for the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "MasterSecretKmsKeyArn": "The ARN of the KMS key that Secrets Manager uses to encrypt the elevated secret if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. If you don't specify this value and you use the alternating users strategy, then Secrets Manager uses the key `aws/secretsmanager`\\. If `aws/secretsmanager` doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterSecretArn": "The ARN of the secret that contains superuser credentials, if you use the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. CloudFormation grants the execution role for the Lambda rotation function `GetSecretValue` permission to the secret in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou must create the superuser secret before you can set this property\\. \nYou must also include the superuser secret ARN as a key in the JSON of the rotating secret so that the Lambda rotation function can find it\\. CloudFormation does not hardcode secret ARNs in the Lambda rotation function, so you can use the function to rotate multiple secrets\\. For more information, see [JSON structure of Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "MasterSecretKmsKeyArn": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users) and the superuser secret is encrypted with a customer managed key\\. You don't need to specify this property if the superuser secret is encrypted using the key `aws/secretsmanager`\\. CloudFormation grants the execution role for the Lambda rotation function `Decrypt`, `DescribeKey`, and `GenerateDataKey` permission to the key in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RotationLambdaName": "The name of the Lambda rotation function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "RotationType": "The rotation template to base the rotation function on, one of the following: \n+ `MySQLSingleUser` to use the template [SecretsManagerRDSMySQLRotationSingleUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-mysql-singleuser)\\.\n+ `MySQLMultiUser` to use the template [SecretsManagerRDSMySQLRotationMultiUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-mysql-multiuser)\\. \n+ `PostgreSQLSingleUser` to use the template [ SecretsManagerRDSPostgreSQLRotationSingleUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-postgre-singleuser)\n+ `PostgreSQLMultiUser` to use the template [SecretsManagerRDSPostgreSQLRotationMultiUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-postgre-multiuser)\\.\n+ `OracleSingleUser` to use the template [SecretsManagerRDSOracleRotationSingleUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-oracle-singleuser)\\.\n+ `OracleMultiUser` to use the template [SecretsManagerRDSOracleRotationMultiUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-oracle-multiuser)\\.\n+ `MariaDBSingleUser` to use the template [SecretsManagerRDSMariaDBRotationSingleUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-mariadb-singleuser)\\.\n+ `MariaDBMultiUser` to use the template [SecretsManagerRDSMariaDBRotationMultiUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-mariadb-multiuser)\\.\n+ `SQLServerSingleUser` to use the template [SecretsManagerRDSSQLServerRotationSingleUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-sqlserver-singleuser)\\.\n+ `SQLServerMultiUser` to use the template [SecretsManagerRDSSQLServerRotationMultiUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-sqlserver-multiuser)\\.\n+ `RedshiftSingleUser` to use the template [SecretsManagerRedshiftRotationSingleUsr](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-redshift-singleuser)\\.\n+ `RedshiftMultiUser` to use the template [SecretsManagerRedshiftRotationMultiUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-redshift-multiuser)\\.\n+ `MongoDBSingleUser` to use the template [SecretsManagerMongoDBRotationSingleUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-mongodb-singleuser)\\.\n+ `MongoDBMultiUser` to use the template [SecretsManagerMongoDBRotationMultiUser](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#sar-template-mongodb-multiuser)\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "SuperuserSecretArn": "The ARN of the secret that contains elevated credentials\\. You must create the superuser secret before you can set this property\\. The Lambda rotation function uses this secret for the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "SuperuserSecretKmsKeyArn": "The ARN of the KMS key that Secrets Manager uses to encrypt the elevated secret if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. If you don't specify this value and you use the alternating users strategy, then Secrets Manager uses the key `aws/secretsmanager`\\. If `aws/secretsmanager` doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Runtime": "The Python runtime version associated with the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuperuserSecretArn": "The ARN of the secret that contains superuser credentials, if you use the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. CloudFormation grants the execution role for the Lambda rotation function `GetSecretValue` permission to the secret in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou must create the superuser secret before you can set this property\\. \nYou must also include the superuser secret ARN as a key in the JSON of the rotating secret so that the Lambda rotation function can find it\\. CloudFormation does not hardcode secret ARNs in the Lambda rotation function, so you can use the function to rotate multiple secrets\\. For more information, see [JSON structure of Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuperuserSecretKmsKeyArn": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users) and the superuser secret is encrypted with a customer managed key\\. You don't need to specify this property if the superuser secret is encrypted using the key `aws/secretsmanager`\\. CloudFormation grants the execution role for the Lambda rotation function `Decrypt`, `DescribeKey`, and `GenerateDataKey` permission to the key in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "VpcSecurityGroupIds": "A comma\\-separated list of security group IDs applied to the target database\\. \nThe templates applies the same security groups as on the Lambda rotation function that is created as part of this stack\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "VpcSubnetIds": "A comma separated list of VPC subnet IDs of the target database network\\. The Lambda rotation function is in the same subnet group\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, @@ -26620,6 +26695,20 @@ "ResourceArns": "The ARNs of the canaries that you want to associate with this group\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Tags": "The list of key\\-value pairs that are associated with the group\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::SystemsManagerSAP::Application": { + "ApplicationId": "The ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[\\w\\d]{1,50}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ApplicationType": "The type of the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HANA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Credentials": "The credentials of the SAP application\\. \n*Required*: No \n*Type*: List of [Credential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-systemsmanagersap-application-credential.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Instances": "The Amazon EC2 instances on which your SAP application is running\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SapInstanceNumber": "The SAP instance number of the application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Sid": "The System ID of the application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[A-Z][A-Z0-9]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "Tags": "The tags on the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::SystemsManagerSAP::Application Credential": { + "CredentialType": "The type of the application credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "DatabaseName": "The name of the SAP HANA database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "SecretId": "The secret ID created in AWS Secrets Manager to store the credentials of the SAP application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" + }, "AWS::Timestream::Database": { "DatabaseName": "The name of the Timestream database\\. \n*Length Constraints*: Minimum length of 3 bytes\\. Maximum length of 256 bytes\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "KmsKeyId": "The identifier of the AWS KMS key used to encrypt the data stored in the database\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -27096,7 +27185,7 @@ "AWS::WAFv2::LoggingConfiguration": { "LogDestinationConfigs": "The logging destination configuration that you want to associate with the web ACL\\. \nYou can associate one logging destination to a web ACL\\.\n*Required*: Yes \n*Type*: List of String \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "LoggingFilter": "Filtering that specifies which web requests are kept in the logs and which are dropped\\. You can filter on the rule action and on the web request labels that were applied by matching rules during web ACL evaluation\\. \n*Required*: No \n*Type*: [LoggingFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-loggingfilter.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "RedactedFields": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `xxx`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RedactedFields": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `REDACTED`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with `LogDestinationConfigs`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::WAFv2::LoggingConfiguration ActionCondition": { @@ -27145,7 +27234,7 @@ "Tags": "Key:value pairs associated with an AWS resource\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \nTo modify tags on existing resources, use the AWS WAF APIs or command line interface\\. With AWS CloudFormation, you can only add tags to AWS WAF resources during resource creation\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::WAFv2::RuleGroup": { - "AvailableLabels": "The labels that one or more rules in this rule group add to matching web requests\\. These labels are defined in the `RuleLabels` for a Rule\\. \n*Required*: No \n*Type*: List of [LabelSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "AvailableLabels": "The labels that one or more rules in this rule group add to matching web requests\\. These labels are defined in the `RuleLabels` for a `Rule`\\. \n*Required*: No \n*Type*: List of [LabelSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "Capacity": "The web ACL capacity units \\(WCUs\\) required for this rule group\\. \nWhen you create your own rule group, you define this, and you cannot change it after creation\\. When you add or modify the rules in a rule group, AWS WAF enforces this limit\\. \n AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs\\. AWS WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule\\. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power\\. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group\\. The WCU limit for web ACLs is 1,500\\. \n*Required*: Yes \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "ConsumedLabels": "The labels that one or more rules in this rule group match against in label match statements\\. These labels are defined in a `LabelMatchStatement` specification, in the [Statement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-notstatement.html#cfn-wafv2-webacl-notstatement-statement) definition of a rule\\. \n*Required*: No \n*Type*: List of [LabelSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "CustomResponseBodies": "A map of custom response keys and content bodies\\. When you create a rule with a block action, you can send a custom response to the web request\\. You define these for the rule group, and then use them in the rules that you define in the rule group\\. \nFor information about customizing web requests and responses, see [Customizing web requests and responses in AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \nFor information about the limits on count and size for custom request and response settings, see [AWS WAF quotas](https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) in the [AWS WAF Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)\\. \n*Required*: No \n*Type*: Map of [CustomResponseBody](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customresponsebody.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -27375,6 +27464,11 @@ "TokenDomains": "Specifies the domains that AWS WAF should accept in a web request token\\. This enables the use of tokens across multiple protected websites\\. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting\\. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource\\. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "VisibilityConfig": "Defines and enables Amazon CloudWatch metrics and web request sample collection\\. \n*Required*: Yes \n*Type*: [VisibilityConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-visibilityconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::WAFv2::WebACL AWSManagedRulesATPRuleSet": { + "LoginPath": "The path of the login endpoint for your application\\. For example, for the URL `https://example.com/web/login`, you would provide the path `/web/login`\\. \nThe rule group inspects only HTTP `POST` requests to your specified login endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "RequestInspection": "The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage\\. \n*Required*: No \n*Type*: [RequestInspection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-requestinspection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "ResponseInspection": "The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates\\. \nThe ATP rule group evaluates the responses that your protected resources send back to client login attempts, keeping count of successful and failed attempts from each IP address and client session\\. Using this information, the rule group labels and mitigates requests from client sessions and IP addresses that submit too many failed login attempts in a short amount of time\\. \nResponse inspection is available only in web ACLs that protect Amazon CloudFront distributions\\.\n*Required*: No \n*Type*: [ResponseInspection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::WAFv2::WebACL AWSManagedRulesBotControlRuleSet": { "InspectionLevel": "The inspection level to use for the Bot Control rule group\\. The common level is the least expensive\\. The targeted level includes all common level rules and adds rules with more advanced inspection criteria\\. For details, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html)\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, @@ -27508,6 +27602,7 @@ "Scope": "Specify whether you want to match using the label name or just the namespace\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `LABEL | NAMESPACE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::WAFv2::WebACL ManagedRuleGroupConfig": { + "AWSManagedRulesATPRuleSet": "Additional configuration for using the account takeover prevention \\(ATP\\) managed rule group, `AWSManagedRulesATPRuleSet`\\. Use this to provide login request information to the rule group\\. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests\\. \nThis configuration replaces the individual configuration fields in `ManagedRuleGroupConfig` and provides additional feature configuration\\. \nFor information about using the ATP managed rule group, see [AWS WAF Fraud Control account takeover prevention \\(ATP\\) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html) and [AWS WAF Fraud Control account takeover prevention \\(ATP\\)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) in the * AWS WAF Developer Guide*\\. \n*Required*: No \n*Type*: [AWSManagedRulesATPRuleSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesatpruleset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "AWSManagedRulesBotControlRuleSet": "Additional configuration for using the Bot Control managed rule group\\. Use this to specify the inspection level that you want to use\\. For information about using the Bot Control managed rule group, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html) and [AWS WAF Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html) in the * AWS WAF Developer Guide*\\. \n*Required*: No \n*Type*: [AWSManagedRulesBotControlRuleSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesbotcontrolruleset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "LoginPath": "Instead of this setting, provide your configuration under `AWSManagedRulesATPRuleSet`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "PasswordField": "Instead of this setting, provide your configuration under `AWSManagedRulesATPRuleSet` `RequestInspection`\\. \n*Required*: No \n*Type*: [FieldIdentifier](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldidentifier.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -27549,6 +27644,35 @@ "FieldToMatch": "The part of the web request that you want AWS WAF to inspect\\. \n*Required*: Yes \n*Type*: [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, + "AWS::WAFv2::WebACL RequestInspection": { + "PasswordField": "Details about your login page password field\\. \nHow you specify this depends on the payload type\\. \n+ For JSON payloads, specify the field name in JSON pointer syntax\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\.", + "PayloadType": "The payload type for your login endpoint, either JSON or form encoded\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORM_ENCODED | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "UsernameField": "Details about your login page username field\\. \nHow you specify this depends on the payload type\\. \n+ For JSON payloads, specify the field name in JSON pointer syntax\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\." + }, + "AWS::WAFv2::WebACL ResponseInspection": { + "BodyContains": "Configures inspection of the response body\\. AWS WAF can inspect the first 65,536 bytes \\(64 KB\\) of the response body\\. \n*Required*: No \n*Type*: [ResponseInspectionBodyContains](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionbodycontains.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Header": "Configures inspection of the response header\\. \n*Required*: No \n*Type*: [ResponseInspectionHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Json": "Configures inspection of the response JSON\\. AWS WAF can inspect the first 65,536 bytes \\(64 KB\\) of the response JSON\\. \n*Required*: No \n*Type*: [ResponseInspectionJson](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionjson.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "StatusCode": "Configures inspection of the response status code\\. \n*Required*: No \n*Type*: [ResponseInspectionStatusCode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionstatuscode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ResponseInspectionBodyContains": { + "FailureStrings": "Strings in the body of the response that indicate a failed login attempt\\. To be counted as a failed login, the string can be anywhere in the body and must be an exact match, including case\\. Each string must be unique among the success and failure strings\\. \nJSON example: `\"FailureStrings\": [ \"Login failed\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessStrings": "Strings in the body of the response that indicate a successful login attempt\\. To be counted as a successful login, the string can be anywhere in the body and must be an exact match, including case\\. Each string must be unique among the success and failure strings\\. \nJSON example: `\"SuccessStrings\": [ \"Login successful\", \"Welcome to our site!\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ResponseInspectionHeader": { + "FailureValues": "Values in the response header with the specified name that indicate a failed login attempt\\. To be counted as a failed login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"FailureValues\": [ \"LoginFailed\", \"Failed login\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Name": "The name of the header to match against\\. The name must be an exact match, including case\\. \nJSON example: `\"Name\": [ \"LoginResult\" ]` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessValues": "Values in the response header with the specified name that indicate a successful login attempt\\. To be counted as a successful login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"SuccessValues\": [ \"LoginPassed\", \"Successful login\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ResponseInspectionJson": { + "FailureValues": "Values for the specified identifier in the response JSON that indicate a failed login attempt\\. To be counted as a failed login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"FailureValues\": [ \"False\", \"Failed\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "Identifier": "The identifier for the value to match against in the JSON\\. The identifier must be an exact match, including case\\. \nJSON example: `\"Identifier\": [ \"/login/success\" ]` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessValues": "Values for the specified identifier in the response JSON that indicate a successful login attempt\\. To be counted as a successful login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"SuccessValues\": [ \"True\", \"Succeeded\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, + "AWS::WAFv2::WebACL ResponseInspectionStatusCode": { + "FailureCodes": "Status codes in the response that indicate a failed login attempt\\. To be counted as a failed login, the response status code must match one of these\\. Each code must be unique among the success and failure status codes\\. \nJSON example: `\"FailureCodes\": [ 400, 404 ]` \n*Required*: Yes \n*Type*: List of Integer \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "SuccessCodes": "Status codes in the response that indicate a successful login attempt\\. To be counted as a successful login, the response status code must match one of these\\. Each code must be unique among the success and failure status codes\\. \nJSON example: `\"SuccessCodes\": [ 200, 201 ]` \n*Required*: Yes \n*Type*: List of Integer \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" + }, "AWS::WAFv2::WebACL Rule": { "Action": "The action that AWS WAF should take on a web request when it matches the rule's statement\\. Settings at the web ACL level can override the rule action setting\\. \nThis is used only for rules whose statements don't reference a rule group\\. Rule statements that reference a rule group are `RuleGroupReferenceStatement` and `ManagedRuleGroupStatement`\\. \nYou must set either this `Action` setting or the rule's `OverrideAction`, but not both: \n+ If the rule statement doesn't reference a rule group, you must set this rule action setting and you must not set the rule's override action setting\\. \n+ If the rule statement references a rule group, you must not set this action setting, because the actions are already set on the rules inside the rule group\\. You must set the rule's override action setting to indicate specifically whether to override the actions that are set on the rules in the rule group\\. \n*Required*: Conditional \n*Type*: [RuleAction](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ruleaction.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "CaptchaConfig": "Specifies how AWS WAF should handle `CAPTCHA` evaluations\\. If you don't specify this, AWS WAF uses the `CAPTCHA` configuration that's defined for the web ACL\\. \n*Required*: No \n*Type*: [CaptchaConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-captchaconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -27624,7 +27748,7 @@ "TextTransformations": "Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection\\. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by `FieldToMatch`, starting from the lowest priority setting, before inspecting the content for a match\\. \n*Required*: Yes \n*Type*: List of [TextTransformation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-texttransformation.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)" }, "AWS::WAFv2::WebACLAssociation": { - "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId ` \n+ For an Amazon Cognito user pool: `arn:aws:cognito-idp:region:account-id:userpool/user-pool-id ` \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "ResourceArn": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId ` \n+ For an Amazon Cognito user pool: `arn:aws:cognito-idp:region:account-id:userpool/user-pool-id ` \n+ For an AWS App Runner service: `arn:aws:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id ` \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "WebACLArn": "The Amazon Resource Name \\(ARN\\) of the web ACL that you want to associate with the resource\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)" }, "AWS::Wisdom::Assistant": { diff --git a/schema_source/cloudformation.schema.json b/schema_source/cloudformation.schema.json index b516d55fd..81558363d 100644 --- a/schema_source/cloudformation.schema.json +++ b/schema_source/cloudformation.schema.json @@ -5245,7 +5245,7 @@ "type": "string" }, "AuthorizerId": { - "markdownDescription": "The identifier of an Authorizer to use on this method\\. The `authorizationType` must be `CUSTOM`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The identifier of an authorizer to use on this method\\. The method's authorization type must be `CUSTOM` or `COGNITO_USER_POOLS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AuthorizerId", "type": "string" }, @@ -8989,6 +8989,8 @@ "type": "number" }, "VersionLabel": { + "markdownDescription": "A user\\-defined label for an AWS AppConfig hosted configuration version\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `.*[^0-9].*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "VersionLabel", "type": "string" } }, @@ -9072,7 +9074,7 @@ "type": "string" }, "Description": { - "markdownDescription": "A description of the connector entity field\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A description about the connector runtime setting\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Pattern*: `[\\s\\w/!@#+=.-]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Description", "type": "string" } @@ -9947,17 +9949,17 @@ "type": "string" }, "ClusterIdentifier": { - "markdownDescription": "The unique ID that's assigned to an Amazon Redshift cluster\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ClusterIdentifier", "type": "string" }, "DataApiRoleArn": { - "markdownDescription": "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 [Allow Amazon AppFlow to access Amazon Redshift databases with the Data API](https://docs.aws.amazon.com/appflow/latest/userguide/security_iam_service-role-policies.html#access-redshift)\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `arn:aws:iam:.*:[0-9]+:.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DataApiRoleArn", "type": "string" }, "DatabaseName": { - "markdownDescription": "The name of an Amazon Redshift database\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DatabaseName", "type": "string" }, @@ -9967,7 +9969,7 @@ "type": "string" }, "IsRedshiftServerless": { - "markdownDescription": "Indicates whether the connector profile defines a connection to an Amazon Redshift Serverless data warehouse\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IsRedshiftServerless", "type": "boolean" }, @@ -9977,7 +9979,7 @@ "type": "string" }, "WorkgroupName": { - "markdownDescription": "The name of an Amazon Redshift workgroup\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `\\S+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "WorkgroupName", "type": "string" } @@ -10466,7 +10468,7 @@ "type": "string" }, "TargetFileSize": { - "markdownDescription": "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\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TargetFileSize", "type": "number" } @@ -10919,7 +10921,7 @@ "properties": { "GlueDataCatalog": { "$ref": "#/definitions/AWS::AppFlow::Flow.GlueDataCatalog", - "markdownDescription": "Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the AWS Glue Data Catalog\\. \n*Required*: No \n*Type*: [GlueDataCatalog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: [GlueDataCatalog](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-gluedatacatalog.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "GlueDataCatalog" } }, @@ -10946,7 +10948,7 @@ "items": { "type": "string" }, - "markdownDescription": "Specifies whether the destination file path includes either or both of the following elements: \nEXECUTION\\_ID \nThe ID that Amazon AppFlow assigns to the flow run\\. \nSCHEMA\\_VERSION \nThe 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: \n+ Source\\-to\\-destination field mappings\n+ Field data types\n+ Partition keys\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "PathPrefixHierarchy", "type": "array" }, @@ -11422,7 +11424,7 @@ "type": "string" }, "ConnectorType": { - "markdownDescription": "The type of source connector, such as Salesforce, Amplitude, and so on\\. \n*Allowed Values*: S3 \\| Amplitude \\| Datadog \\| Dynatrace \\| Googleanalytics \\| Infornexus \\| Salesforce \\| Servicenow \\| Singular \\| Slack \\| Trendmicro \\| Veeva \\| Zendesk \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The type of connector, such as Salesforce, Amplitude, and so on\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `Amplitude | CustomConnector | CustomerProfiles | Datadog | Dynatrace | EventBridge | Googleanalytics | Honeycode | Infornexus | LookoutMetrics | Marketo | Pardot | Redshift | S3 | Salesforce | SAPOData | Servicenow | Singular | Slack | Snowflake | Trendmicro | Upsolver | Veeva | Zendesk` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ConnectorType", "type": "string" }, @@ -28894,7 +28896,7 @@ "type": "array" }, "PermissionModel": { - "markdownDescription": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Describes how the IAM roles required for stack set operations are created\\. \n+ With `SELF_MANAGED` permissions, you must create the administrator and execution roles required to deploy to target accounts\\. For more information, see [Grant Self\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html)\\.\n+ With `SERVICE_MANAGED` permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations\\. For more information, see [Grant Service\\-Managed Stack Set Permissions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html)\\.\n*Allowed Values*: `SERVICE_MANAGED` \\| `SELF_MANAGED` \nThe `PermissionModel` property is required\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `SELF_MANAGED | SERVICE_MANAGED` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "PermissionModel", "type": "string" }, @@ -28977,7 +28979,7 @@ "additionalProperties": false, "properties": { "AccountFilterType": { - "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Limit deployment targets to individual accounts or include additional accounts with provided OUs\\. \nThe following is a list of possible values for the `AccountFilterType` operation\\. \n+ `INTERSECTION`: StackSets deploys to the accounts specified in `Accounts` parameter\\. \n+ `DIFFERENCE`: StackSets excludes the accounts specified in `Accounts` parameter\\. This enables user to avoid certain accounts within an OU such as suspended accounts\\.\n+ `UNION`: StackSets includes additional accounts deployment targets\\.", "title": "AccountFilterType", "type": "string" }, @@ -29004,7 +29006,7 @@ "additionalProperties": false, "properties": { "Active": { - "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "When `true`, StackSets performs non\\-conflicting operations concurrently and queues conflicting operations\\. After conflicting operations finish, StackSets starts queued operations in request order\\. \nIf there are already running or queued operations, StackSets queues all incoming operations even if they are non\\-conflicting\\. \nYou can't modify your stack set's execution configuration while there are running or queued operations for that stack set\\.\nWhen `false` \\(default\\), StackSets performs one operation at a time in request order\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Active", "type": "boolean" } @@ -29020,22 +29022,22 @@ "type": "number" }, "FailureTolerancePercentage": { - "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region\\. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds *down* to the next whole number\\. \nConditional: You must specify either `FailureToleranceCount` or `FailureTolerancePercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `0` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "FailureTolerancePercentage", "type": "number" }, "MaxConcurrentCount": { - "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The maximum number of accounts in which to perform this operation at one time\\. This is dependent on the value of `FailureToleranceCount`\\. `MaxConcurrentCount` is at most one more than the `FailureToleranceCount`\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MaxConcurrentCount", "type": "number" }, "MaxConcurrentPercentage": { - "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The maximum percentage of accounts in which to perform this operation at one time\\. \nWhen calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number\\. This is true except in cases where rounding down would result is zero\\. In this case, CloudFormation sets the number as one instead\\. \nNote that this setting lets you specify the *maximum* for operations\\. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling\\. \nConditional: You must specify either `MaxConcurrentCount` or `MaxConcurrentPercentage`, but not both\\. \n*Required*: Conditional \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MaxConcurrentPercentage", "type": "number" }, "RegionConcurrencyType": { - "markdownDescription": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The concurrency type of deploying StackSets operations in Regions, could be in parallel or one Region at a time\\. \n*Allowed values*: `SEQUENTIAL` \\| `PARALLEL` \n*Required*: No \n*Type*: String \n*Allowed values*: `PARALLEL | SEQUENTIAL` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "RegionConcurrencyType", "type": "string" }, @@ -29455,7 +29457,7 @@ }, "ParametersInCacheKeyAndForwardedToOrigin": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin", - "markdownDescription": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The HTTP headers, cookies, and URL query strings to include in the cache key\\. The values included in the cache key are also included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [ParametersInCacheKeyAndForwardedToOrigin](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ParametersInCacheKeyAndForwardedToOrigin" } }, @@ -29472,7 +29474,7 @@ "additionalProperties": false, "properties": { "CookieBehavior": { - "markdownDescription": "Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests that are * **not** * listed in the `CookieNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No cookies in viewer requests are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the cookies in viewer requests that are listed in the `CookieNames` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, * **except** * for those that are listed in the `CookieNames` type, which are not included\\.\n+ `all` \u2013 All cookies in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "CookieBehavior", "type": "string" }, @@ -29494,7 +29496,7 @@ "additionalProperties": false, "properties": { "HeaderBehavior": { - "markdownDescription": "Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any HTTP headers are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No HTTP headers are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the HTTP headers that are listed in the `Headers` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HeaderBehavior", "type": "string" }, @@ -29517,7 +29519,7 @@ "properties": { "CookiesConfig": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CookiesConfig", - "markdownDescription": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "An object that determines whether any cookies in viewer requests \\(and if so, which cookies\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [CookiesConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "CookiesConfig" }, "EnableAcceptEncodingBrotli": { @@ -29532,12 +29534,12 @@ }, "HeadersConfig": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.HeadersConfig", - "markdownDescription": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "An object that determines whether any HTTP headers \\(and if so, which headers\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [HeadersConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HeadersConfig" }, "QueryStringsConfig": { "$ref": "#/definitions/AWS::CloudFront::CachePolicy.QueryStringsConfig", - "markdownDescription": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "An object that determines whether any URL query strings in viewer requests \\(and if so, which query strings\\) are included in the cache key and in requests that CloudFront sends to the origin\\. \n*Required*: Yes \n*Type*: [QueryStringsConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "QueryStringsConfig" } }, @@ -29553,7 +29555,7 @@ "additionalProperties": false, "properties": { "QueryStringBehavior": { - "markdownDescription": "Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests that are * **not** * listed in the `QueryStringNames` type are included in the cache key and automatically included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No query strings in viewer requests are included in the cache key or in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in an `OriginRequestPolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the query strings in viewer requests that are listed in the `QueryStringNames` type are included in the cache key and in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin, * **except** * those that are listed in the `QueryStringNames` type, which are not included\\.\n+ `all` \u2013 All query strings in viewer requests are included in the cache key and in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "QueryStringBehavior", "type": "string" }, @@ -31321,7 +31323,7 @@ "additionalProperties": false, "properties": { "CookieBehavior": { - "markdownDescription": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Cookies in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No cookies in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any cookies that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the cookies in viewer requests that are listed in the `CookieNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All cookies in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `CookieNames` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "CookieBehavior", "type": "string" }, @@ -31343,7 +31345,7 @@ "additionalProperties": false, "properties": { "HeaderBehavior": { - "markdownDescription": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 HTTP headers are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any HTTP headers are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any headers that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the HTTP headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\.\n+ `allViewer` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allViewerAndWhitelistCloudFront` \u2013 All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the `Headers` type are included in requests that CloudFront sends to the origin\\. The additional headers are added by CloudFront\\.\n+ `allExcept` \u2013 All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `Headers` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `allExcept | allViewer | allViewerAndWhitelistCloudFront | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HeaderBehavior", "type": "string" }, @@ -31402,7 +31404,7 @@ "additionalProperties": false, "properties": { "QueryStringBehavior": { - "markdownDescription": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 Query strings in viewer requests are not included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 The query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Valid values are: \n+ `none` \u2013 No query strings in viewer requests are included in requests that CloudFront sends to the origin\\. Even when this field is set to `none`, any query strings that are listed in a `CachePolicy` *are* included in origin requests\\.\n+ `whitelist` \u2013 Only the query strings in viewer requests that are listed in the `QueryStringNames` type are included in requests that CloudFront sends to the origin\\.\n+ `all` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin\\.\n+ `allExcept` \u2013 All query strings in viewer requests are included in requests that CloudFront sends to the origin, * **except** * for those listed in the `QueryStringNames` type, which are not included\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `all | allExcept | none | whitelist` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "QueryStringBehavior", "type": "string" }, @@ -32382,7 +32384,7 @@ "type": "string" }, "Source": { - "markdownDescription": "The name of the partner or external event source\\. You cannot change this name after you create the channel\\. A maximum of one channel is allowed per source\\. \n A source can be either `Custom` for all valid non\\-AWS events, or the name of a partner event source\\. For information about the source names for available partners, see [Additional information about integration partners](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-integration.html#cloudtrail-lake-partner-information) in the CloudTrail User Guide\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The name of the partner or external event source\\. You cannot change this name after you create the channel\\. A maximum of one channel is allowed per source\\. \n A source can be either `Custom` for all valid non\\-AWS events, or the name of a partner event source\\. For information about the source names for available partners, see [Additional information about integration partners](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store-integration.html#cloudtrail-lake-partner-information) in the CloudTrail User Guide\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Pattern*: `.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Source", "type": "string" }, @@ -32583,7 +32585,7 @@ "type": "array" }, "Field": { - "markdownDescription": "A field in a CloudTrail event record on which to filter events to be logged\\. For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the field is used only for selecting events as filtering is not supported\\. \n For CloudTrail event records, supported fields include `readOnly`, `eventCategory`, `eventSource` \\(for management events\\), `eventName`, `resources.type`, and `resources.ARN`\\. \n For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the only supported field is `eventCategory`\\. \n+ ** `readOnly` ** \\- Optional\\. Can be set to `Equals` a value of `true` or `false`\\. If you do not add this field, CloudTrail logs both `read` and `write` events\\. A value of `true` logs only `read` events\\. A value of `false` logs only `write` events\\.\n+ ** `eventSource` ** \\- For filtering management events only\\. This can be set only to `NotEquals` `kms.amazonaws.com`\\.\n+ ** `eventName` ** \\- Can use any operator\\. You can use it to \ufb01lter in or \ufb01lter out any data event logged to CloudTrail, such as `PutBucket` or `GetSnapshotBlock`\\. You can have multiple values for this \ufb01eld, separated by commas\\.\n+ ** `eventCategory` ** \\- This is required and must be set to `Equals`\\. \n + For CloudTrail event records, the value must be `Management` or `Data`\\. \n + For AWS Config configuration items, the value must be `ConfigurationItem`\\. \n + For Audit Manager evidence, the value must be `Evidence`\\. \n + For non\\-AWS events, the value must be `ActivityAuditLog`\\. \n+ ** `resources.type` ** \\- This \ufb01eld is required for CloudTrail data events\\. `resources.type` can only use the `Equals` operator, and the value can be one of the following:\n + `AWS::DynamoDB::Table` \n + `AWS::Lambda::Function` \n + `AWS::S3::Object` \n + `AWS::CloudTrail::Channel` \n + `AWS::Cognito::IdentityPool` \n + `AWS::DynamoDB::Stream` \n + `AWS::EC2::Snapshot` \n + `AWS::FinSpace::Environment` \n + `AWS::Glue::Table` \n + `AWS::KendraRanking::ExecutionPlan` \n + `AWS::ManagedBlockchain::Node` \n + `AWS::SageMaker::ExperimentTrialComponent` \n + `AWS::SageMaker::FeatureGroup` \n + `AWS::S3::AccessPoint` \n + `AWS::S3ObjectLambda::AccessPoint` \n + `AWS::S3Outposts::Object`", + "markdownDescription": "A field in a CloudTrail event record on which to filter events to be logged\\. For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the field is used only for selecting events as filtering is not supported\\. \n For CloudTrail event records, supported fields include `readOnly`, `eventCategory`, `eventSource` \\(for management events\\), `eventName`, `resources.type`, and `resources.ARN`\\. \n For event data stores for AWS Config configuration items, Audit Manager evidence, or non\\-AWS events, the only supported field is `eventCategory`\\. \n+ ** `readOnly` ** \\- Optional\\. Can be set to `Equals` a value of `true` or `false`\\. If you do not add this field, CloudTrail logs both `read` and `write` events\\. A value of `true` logs only `read` events\\. A value of `false` logs only `write` events\\.\n+ ** `eventSource` ** \\- For filtering management events only\\. This can be set only to `NotEquals` `kms.amazonaws.com`\\.\n+ ** `eventName` ** \\- Can use any operator\\. You can use it to \ufb01lter in or \ufb01lter out any data event logged to CloudTrail, such as `PutBucket` or `GetSnapshotBlock`\\. You can have multiple values for this \ufb01eld, separated by commas\\.\n+ ** `eventCategory` ** \\- This is required and must be set to `Equals`\\. \n + For CloudTrail event records, the value must be `Management` or `Data`\\. \n + For AWS Config configuration items, the value must be `ConfigurationItem`\\. \n + For Audit Manager evidence, the value must be `Evidence`\\. \n + For non\\-AWS events, the value must be `ActivityAuditLog`\\. \n+ ** `resources.type` ** \\- This \ufb01eld is required for CloudTrail data events\\. `resources.type` can only use the `Equals` operator, and the value can be one of the following:\n + `AWS::DynamoDB::Table` \n + `AWS::Lambda::Function` \n + `AWS::S3::Object` \n + `AWS::CloudTrail::Channel` \n + `AWS::Cognito::IdentityPool` \n + `AWS::DynamoDB::Stream` \n + `AWS::EC2::InstanceConnectEndpoint` \n + `AWS::EC2::Snapshot` \n + `AWS::FinSpace::Environment` \n + `AWS::Glue::Table` \n + `AWS::KendraRanking::ExecutionPlan` \n + `AWS::ManagedBlockchain::Node` \n + `AWS::SageMaker::ExperimentTrialComponent` \n + `AWS::SageMaker::FeatureGroup` \n + `AWS::S3::AccessPoint` \n + `AWS::S3ObjectLambda::AccessPoint` \n + `AWS::S3Outposts::Object`", "title": "Field", "type": "string" }, @@ -32765,7 +32767,7 @@ "items": { "$ref": "#/definitions/AWS::CloudTrail::Trail.InsightSelector" }, - "markdownDescription": "A JSON string that contains the insight types you want to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A JSON string that contains the insight types you want to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid Insight types\\. \nThe `ApiCallRateInsight` Insights type analyzes write\\-only management API calls that are aggregated per minute against a baseline API call volume\\. \nThe `ApiErrorRateInsight` Insights type analyzes management API calls that result in error codes\\. The error is shown if the API call is unsuccessful\\. \n*Required*: No \n*Type*: List of [InsightSelector](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "InsightSelectors", "type": "array" }, @@ -32903,7 +32905,7 @@ "additionalProperties": false, "properties": { "InsightType": { - "markdownDescription": "The type of insights to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid insight types\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The type of Insights events to log on a trail\\. `ApiCallRateInsight` and `ApiErrorRateInsight` are valid Insight types\\. \nThe `ApiCallRateInsight` Insights type analyzes write\\-only management API calls that are aggregated per minute against a baseline API call volume\\. \nThe `ApiErrorRateInsight` Insights type analyzes management API calls that result in error codes\\. The error is shown if the API call is unsuccessful\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `ApiCallRateInsight | ApiErrorRateInsight` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "InsightType", "type": "string" } @@ -34559,7 +34561,7 @@ "type": "string" }, "Value": { - "markdownDescription": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs and secret access keys\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The value of the environment variable\\. \nWe strongly discourage the use of `PLAINTEXT` environment variables to store sensitive values, especially AWS secret key IDs\\. `PLAINTEXT` environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS CLI\\. For sensitive values, we recommend you use an environment variable of type `PARAMETER_STORE` or `SECRETS_MANAGER`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Value", "type": "string" } @@ -38617,7 +38619,7 @@ "type": "boolean" }, "IdTokenValidity": { - "markdownDescription": "The ID token time limit\\. After this limit expires, your user can't use their ID token\\. To specify the time unit for `IdTokenValidity` as `seconds`, `minutes`, `hours`, or `days`, set a `TokenValidityUnits` value in your API request\\. \nFor example, when you set `IdTokenValidity` as `10` and `TokenValidityUnits` as `hours`, your user can authenticate their session with their ID token for 10 hours\\. \nThe default time unit for `AccessTokenValidity` in an API request is hours\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ID token time limit\\. After this limit expires, your user can't use their ID token\\. To specify the time unit for `IdTokenValidity` as `seconds`, `minutes`, `hours`, or `days`, set a `TokenValidityUnits` value in your API request\\. \nFor example, when you set `IdTokenValidity` as `10` and `TokenValidityUnits` as `hours`, your user can authenticate their session with their ID token for 10 hours\\. \nThe default time unit for `IdTokenValidity` in an API request is hours\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IdTokenValidity", "type": "number" }, @@ -38735,17 +38737,17 @@ "additionalProperties": false, "properties": { "AccessToken": { - "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `AccessTokenValidity` parameter\\. The default `AccessTokenValidity` time unit is hours\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `AccessTokenValidity` parameter\\. The default `AccessTokenValidity` time unit is hours\\. `AccessTokenValidity` duration can range from five minutes to one day\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AccessToken", "type": "string" }, "IdToken": { - "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `IdTokenValidity` parameter\\. The default `IdTokenValidity` time unit is hours\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `IdTokenValidity` parameter\\. The default `IdTokenValidity` time unit is hours\\. `IdTokenValidity` duration can range from five minutes to one day\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IdToken", "type": "string" }, "RefreshToken": { - "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `RefreshTokenValidity` parameter\\. The default `RefreshTokenValidity` time unit is days\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A time unit of `seconds`, `minutes`, `hours`, or `days` for the value that you set in the `RefreshTokenValidity` parameter\\. The default `RefreshTokenValidity` time unit is days\\. `RefreshTokenValidity` duration can range from 60 minutes to 10 years\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `days | hours | minutes | seconds` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "RefreshToken", "type": "string" } @@ -40200,7 +40202,7 @@ "items": { "type": "string" }, - "markdownDescription": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set this option to `true`, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A comma\\-separated list that specifies the types of AWS resources for which AWS Config records configuration changes \\(for example, `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`\\)\\. \nTo record all configuration changes, you must set the `AllSupported` option to `false`\\. \nIf you set the `AllSupported` option to false and populate the `ResourceTypes` option with values, when AWS Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group\\. \nFor a list of valid `resourceTypes` values, see the **resourceType Value** column in [Supported AWS Resource Types](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ResourceTypes", "type": "array" } @@ -41585,7 +41587,7 @@ "type": "string" }, "InstanceAlias": { - "markdownDescription": "The alias of instance\\. `InstanceAlias` is only required when `IdentityManagementType` is `CONNECT_MANAGED` or `SAML`\\. `InstanceAlias` is not required when `IdentityManagementType` is `EXISTING_DIRECTORY`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `62` \n*Pattern*: `^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The alias of instance\\. `InstanceAlias` is only required when `IdentityManagementType` is `CONNECT_MANAGED` or `SAML`\\. `InstanceAlias` is not required when `IdentityManagementType` is `EXISTING_DIRECTORY`\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `45` \n*Pattern*: `^(?!d-)([\\da-zA-Z]+)([-]*[\\da-zA-Z])*$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InstanceAlias", "type": "string" } @@ -41770,7 +41772,7 @@ "type": "string" }, "KeyId": { - "markdownDescription": "The full ARN of the encryption key\\. \nBe sure to provide the full ARN of the encryption key, not just the ID\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The full ARN of the encryption key\\. \nBe sure to provide the full ARN of the encryption key, not just the ID\\. \nAmazon Connect supports only KMS keys with the default key spec of [https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-symmetric-default](https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-symmetric-default)\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "KeyId", "type": "string" } @@ -49931,7 +49933,7 @@ "additionalProperties": false, "properties": { "Version": { - "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate a protocol version that they mutually support\\. \\(DataSync supports SMB versions 1\\.0 and later\\.\\)", + "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate the highest version of SMB that they mutually support between 2\\.1 and 3\\.1\\.1\\.", "title": "Version", "type": "string" } @@ -50500,7 +50502,7 @@ "additionalProperties": false, "properties": { "AccessKey": { - "markdownDescription": "Specifies the access key \\(for example, a user name\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the access key \\(for example, a user name\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AccessKey", "type": "string" }, @@ -50518,7 +50520,7 @@ "type": "string" }, "SecretKey": { - "markdownDescription": "Specifies the secret key \\(for example, a password\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the secret key \\(for example, a password\\) if credentials are required to authenticate with the object storage server\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `^.+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SecretKey", "type": "string" }, @@ -50799,7 +50801,7 @@ "additionalProperties": false, "properties": { "Version": { - "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate a protocol version that they mutually support\\. \\(DataSync supports SMB versions 1\\.0 and later\\.\\)", + "markdownDescription": "By default, DataSync automatically chooses an SMB protocol version based on negotiation with your SMB file server\\. You also can configure DataSync to use a specific SMB version, but we recommend doing this only if DataSync has trouble negotiating with the SMB file server automatically\\. \nThese are the following options for configuring the SMB version: \n+ `AUTOMATIC` \\(default\\): DataSync and the SMB file server negotiate the highest version of SMB that they mutually support between 2\\.1 and 3\\.1\\.1\\.", "title": "Version", "type": "string" } @@ -51266,7 +51268,7 @@ }, "Sns": { "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig", - "markdownDescription": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for cross account Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. For more information, see Permissions for cross account Amazon SNS topics\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Information about a notification channel configured in DevOps Guru to send notifications when insights are created\\. \nIf you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to send it notifications\\. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account\\. DevOps Guru only supports standard SNS topics\\. For more information, see [Permissions for Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html)\\. \nIf you use an Amazon SNS topic that is encrypted by an AWS Key Management Service customer\\-managed key \\(CMK\\), then you must add permissions to the CMK\\. For more information, see [Permissions for AWS KMS\u2013encrypted Amazon SNS topics](https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html)\\. \n*Required*: No \n*Type*: [SnsChannelConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Sns" } }, @@ -52319,7 +52321,7 @@ "type": "array" }, "BillingMode": { - "markdownDescription": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies how you are charged for read and write throughput and how you manage capacity\\. Valid values are: \n+ `PAY_PER_REQUEST`\n+ `PROVISIONED`\nAll replicas in your global table will have the same billing mode\\. If you use `PROVISIONED` billing mode, you must provide an auto scaling configuration via the `WriteProvisionedThroughputSettings` property\\. The default value of this property is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "BillingMode", "type": "string" }, @@ -52366,7 +52368,7 @@ "title": "StreamSpecification" }, "TableName": { - "markdownDescription": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "A name for the global table\\. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID as the table name\\. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)\\. \nIf you specify a name, you cannot perform updates that require replacement of this resource\\. You can perform updates that require no or some interruption\\. If you must replace the resource, specify a new name\\.\n*Required*: No \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "TableName", "type": "string" }, @@ -52413,12 +52415,12 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, "AttributeType": { - "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeType", "type": "string" } @@ -52464,7 +52466,7 @@ "additionalProperties": false, "properties": { "Enabled": { - "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Enabled", "type": "boolean" } @@ -52478,7 +52480,7 @@ "additionalProperties": false, "properties": { "IndexName": { - "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -52486,7 +52488,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" }, - "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -52517,7 +52519,7 @@ "type": "string" }, "KeyType": { - "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "KeyType", "type": "string" } @@ -52532,7 +52534,7 @@ "additionalProperties": false, "properties": { "StreamArn": { - "markdownDescription": "The ARN for a specific Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN for a specific Kinesis data stream\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamArn", "type": "string" } @@ -52546,7 +52548,7 @@ "additionalProperties": false, "properties": { "IndexName": { - "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -52554,7 +52556,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" }, - "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -52589,12 +52591,12 @@ "items": { "type": "string" }, - "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "title": "NonKeyAttributes", "type": "array" }, "ProjectionType": { - "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "title": "ProjectionType", "type": "string" } @@ -52626,7 +52628,7 @@ "title": "ContributorInsightsSpecification" }, "IndexName": { - "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "IndexName", "type": "string" }, @@ -52697,7 +52699,7 @@ "title": "SSESpecification" }, "TableClass": { - "markdownDescription": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The table class of the specified table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TableClass", "type": "string" }, @@ -52724,7 +52726,7 @@ "type": "boolean" }, "SSEType": { - "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Server\\-side encryption type\\. The only supported value is: \n+ `KMS` \\- Server\\-side encryption that uses AWS Key Management Service\\. The key is stored in your account and is managed by AWS KMS \\(AWS KMS charges apply\\)\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `AES256 | KMS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SSEType", "type": "string" } @@ -52738,7 +52740,7 @@ "additionalProperties": false, "properties": { "StreamViewType": { - "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamViewType", "type": "string" } @@ -52781,7 +52783,7 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The name of the attribute used to store the expiration time for items in the table\\. \nCurrently, you cannot directly change the attribute name used to evaluate time to live\\. In order to do so, you must first disable time to live, and then re\\-enable it with the new attribute name\\. It can take up to one hour for changes to time to live to take effect\\. If you attempt to modify time to live within that time window, your stack operation might be delayed\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, @@ -52851,7 +52853,7 @@ "type": "array" }, "BillingMode": { - "markdownDescription": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specify how you are charged for read and write throughput and how you manage capacity\\. \nValid values include: \n+ `PROVISIONED` \\- We recommend using `PROVISIONED` for predictable workloads\\. `PROVISIONED` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual)\\.\n+ `PAY_PER_REQUEST` \\- We recommend using `PAY_PER_REQUEST` for unpredictable workloads\\. `PAY_PER_REQUEST` sets the billing mode to [On\\-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand)\\.\nIf not specified, the default is `PROVISIONED`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `PAY_PER_REQUEST | PROVISIONED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "BillingMode", "type": "string" }, @@ -52918,7 +52920,7 @@ "title": "StreamSpecification" }, "TableClass": { - "markdownDescription": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The table class of the new table\\. Valid values are `STANDARD` and `STANDARD_INFREQUENT_ACCESS`\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `STANDARD | STANDARD_INFREQUENT_ACCESS` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TableClass", "type": "string" }, @@ -52971,12 +52973,12 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A name for the attribute\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, "AttributeType": { - "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The data type for the attribute, where: \n+ `S` \\- the attribute is of type String\n+ `N` \\- the attribute is of type Number\n+ `B` \\- the attribute is of type Binary\n*Required*: Yes \n*Type*: String \n*Allowed values*: `B | N | S` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeType", "type": "string" } @@ -52991,7 +52993,7 @@ "additionalProperties": false, "properties": { "Enabled": { - "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Indicates whether CloudWatch Contributor Insights are to be enabled \\(true\\) or disabled \\(false\\)\\. \n*Required*: Yes \n*Type*: Boolean \n*Allowed values*: `DISABLE | ENABLE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Enabled", "type": "boolean" } @@ -53005,7 +53007,7 @@ "additionalProperties": false, "properties": { "Delimiter": { - "markdownDescription": "The delimiter used for separating items in the CSV file being imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The delimiter used for separating items in the CSV file being imported\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1` \n*Pattern*: `[,;:|\\t ]` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Delimiter", "type": "string" }, @@ -53013,7 +53015,7 @@ "items": { "type": "string" }, - "markdownDescription": "List of the headers used to specify a common header for all source CSV files being imported\\. If this field is specified then the first line of each CSV file is treated as data instead of the header\\. If this field is not specified the the first line of each CSV file is treated as the header\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "List of the headers used to specify a common header for all source CSV files being imported\\. If this field is specified then the first line of each CSV file is treated as data instead of the header\\. If this field is not specified the the first line of each CSV file is treated as the header\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `255` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "HeaderList", "type": "array" } @@ -53029,7 +53031,7 @@ "title": "ContributorInsightsSpecification" }, "IndexName": { - "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the global secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -53037,7 +53039,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -53063,12 +53065,12 @@ "additionalProperties": false, "properties": { "InputCompressionType": { - "markdownDescription": "Type of compression to be used on the input coming from the imported table\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Type of compression to be used on the input coming from the imported table\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GZIP | NONE | ZSTD` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InputCompressionType", "type": "string" }, "InputFormat": { - "markdownDescription": "The format of the source data\\. Valid values for `ImportFormat` are `CSV`, `DYNAMODB_JSON` or `ION`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The format of the source data\\. Valid values for `ImportFormat` are `CSV`, `DYNAMODB_JSON` or `ION`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CSV | DYNAMODB_JSON | ION` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InputFormat", "type": "string" }, @@ -53109,7 +53111,7 @@ "type": "string" }, "KeyType": { - "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The role that this key attribute will assume: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `HASH | RANGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "KeyType", "type": "string" } @@ -53124,7 +53126,7 @@ "additionalProperties": false, "properties": { "StreamArn": { - "markdownDescription": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN for a specific Kinesis data stream\\. \nLength Constraints: Minimum length of 37\\. Maximum length of 1024\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `37` \n*Maximum*: `1024` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamArn", "type": "string" } @@ -53138,7 +53140,7 @@ "additionalProperties": false, "properties": { "IndexName": { - "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The name of the local secondary index\\. The name must be unique among all other indexes on this table\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `255` \n*Pattern*: `[a-zA-Z0-9_.-]+` \n*Update requires*: Updates are not supported\\.", "title": "IndexName", "type": "string" }, @@ -53146,7 +53148,7 @@ "items": { "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" }, - "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Update requires*: Updates are not supported\\.", + "markdownDescription": "The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: \n+ `HASH` \\- partition key\n+ `RANGE` \\- sort key\nThe partition key of an item is also known as its *hash attribute*\\. The term \"hash attribute\" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values\\. \nThe sort key of an item is also known as its *range attribute*\\. The term \"range attribute\" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value\\.\n*Required*: Yes \n*Type*: [List](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) of [KeySchema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-keyschema.html) \n*Maximum*: `2` \n*Update requires*: Updates are not supported\\.", "title": "KeySchema", "type": "array" }, @@ -53181,12 +53183,12 @@ "items": { "type": "string" }, - "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Represents the non\\-key attribute names which will be projected into the index\\. \nFor local secondary indexes, the total count of `NonKeyAttributes` summed across all of the local secondary indexes, must not exceed 100\\. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `20` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "NonKeyAttributes", "type": "array" }, "ProjectionType": { - "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The set of attributes that are projected into the index: \n+ `KEYS_ONLY` \\- Only the index and primary keys are projected into the index\\.\n+ `INCLUDE` \\- In addition to the attributes described in `KEYS_ONLY`, the secondary index will include other non\\-key attributes that you specify\\.\n+ `ALL` \\- All of the table attributes are projected into the index\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `ALL | INCLUDE | KEYS_ONLY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ProjectionType", "type": "string" } @@ -53217,17 +53219,17 @@ "additionalProperties": false, "properties": { "S3Bucket": { - "markdownDescription": "The S3 bucket that is being imported from\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The S3 bucket that is being imported from\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `255` \n*Pattern*: `^[a-z0-9A-Z]+[\\.\\-\\w]*[a-z0-9A-Z]+$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "S3Bucket", "type": "string" }, "S3BucketOwner": { - "markdownDescription": "The account number of the S3 bucket that is being imported from\\. If the bucket is owned by the requester this is optional\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The account number of the S3 bucket that is being imported from\\. If the bucket is owned by the requester this is optional\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{12}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "S3BucketOwner", "type": "string" }, "S3KeyPrefix": { - "markdownDescription": "The key prefix shared by all S3 Objects that are being imported\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The key prefix shared by all S3 Objects that are being imported\\. \n*Required*: No \n*Type*: String \n*Maximum*: `1024` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "S3KeyPrefix", "type": "string" } @@ -53265,7 +53267,7 @@ "additionalProperties": false, "properties": { "StreamViewType": { - "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table\\. Valid values for `StreamViewType` are: \n+ `KEYS_ONLY` \\- Only the key attributes of the modified item are written to the stream\\.\n+ `NEW_IMAGE` \\- The entire item, as it appears after it was modified, is written to the stream\\.\n+ `OLD_IMAGE` \\- The entire item, as it appeared before it was modified, is written to the stream\\.\n+ `NEW_AND_OLD_IMAGES` \\- Both the new and the old item images of the item are written to the stream\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `KEYS_ONLY | NEW_AND_OLD_IMAGES | NEW_IMAGE | OLD_IMAGE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "StreamViewType", "type": "string" } @@ -53279,7 +53281,7 @@ "additionalProperties": false, "properties": { "AttributeName": { - "markdownDescription": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The name of the TTL attribute used to store the expiration time for items in the table\\. \nTo update this property, you must first disable TTL then enable TTL with the new attribute name\\.\n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `255` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AttributeName", "type": "string" }, @@ -54683,7 +54685,7 @@ "title": "InstanceRequirements" }, "InstanceType": { - "markdownDescription": "The instance type\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.2xlarge | c6in.32xlarge | c6in.4xlarge | c6in.8xlarge | c6in.large | c6in.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.2xlarge | m6idn.32xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.large | m6idn.xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.2xlarge | m6in.32xlarge | m6in.4xlarge | m6in.8xlarge | m6in.large | m6in.xlarge | mac1.metal | mac2.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.2xlarge | r6idn.32xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.large | r6idn.xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.2xlarge | r6in.32xlarge | r6in.4xlarge | r6in.8xlarge | r6in.large | r6in.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-3tb1.56xlarge | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The instance type\\. \n `mac1.metal` is not supported as a launch template override\\. \nIf you specify `InstanceType`, you can't specify `InstanceRequirements`\\.\n*Required*: No \n*Type*: String \n*Allowed values*: `a1.2xlarge | a1.4xlarge | a1.large | a1.medium | a1.metal | a1.xlarge | c1.medium | c1.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | c3.large | c3.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c4.large | c4.xlarge | c5.12xlarge | c5.18xlarge | c5.24xlarge | c5.2xlarge | c5.4xlarge | c5.9xlarge | c5.large | c5.metal | c5.xlarge | c5a.12xlarge | c5a.16xlarge | c5a.24xlarge | c5a.2xlarge | c5a.4xlarge | c5a.8xlarge | c5a.large | c5a.xlarge | c5ad.12xlarge | c5ad.16xlarge | c5ad.24xlarge | c5ad.2xlarge | c5ad.4xlarge | c5ad.8xlarge | c5ad.large | c5ad.xlarge | c5d.12xlarge | c5d.18xlarge | c5d.24xlarge | c5d.2xlarge | c5d.4xlarge | c5d.9xlarge | c5d.large | c5d.metal | c5d.xlarge | c5n.18xlarge | c5n.2xlarge | c5n.4xlarge | c5n.9xlarge | c5n.large | c5n.metal | c5n.xlarge | c6a.12xlarge | c6a.16xlarge | c6a.24xlarge | c6a.2xlarge | c6a.32xlarge | c6a.48xlarge | c6a.4xlarge | c6a.8xlarge | c6a.large | c6a.metal | c6a.xlarge | c6g.12xlarge | c6g.16xlarge | c6g.2xlarge | c6g.4xlarge | c6g.8xlarge | c6g.large | c6g.medium | c6g.metal | c6g.xlarge | c6gd.12xlarge | c6gd.16xlarge | c6gd.2xlarge | c6gd.4xlarge | c6gd.8xlarge | c6gd.large | c6gd.medium | c6gd.metal | c6gd.xlarge | c6gn.12xlarge | c6gn.16xlarge | c6gn.2xlarge | c6gn.4xlarge | c6gn.8xlarge | c6gn.large | c6gn.medium | c6gn.xlarge | c6i.12xlarge | c6i.16xlarge | c6i.24xlarge | c6i.2xlarge | c6i.32xlarge | c6i.4xlarge | c6i.8xlarge | c6i.large | c6i.metal | c6i.xlarge | c6id.12xlarge | c6id.16xlarge | c6id.24xlarge | c6id.2xlarge | c6id.32xlarge | c6id.4xlarge | c6id.8xlarge | c6id.large | c6id.metal | c6id.xlarge | c6in.12xlarge | c6in.16xlarge | c6in.24xlarge | c6in.2xlarge | c6in.32xlarge | c6in.4xlarge | c6in.8xlarge | c6in.large | c6in.xlarge | c7g.12xlarge | c7g.16xlarge | c7g.2xlarge | c7g.4xlarge | c7g.8xlarge | c7g.large | c7g.medium | c7g.xlarge | cc1.4xlarge | cc2.8xlarge | cg1.4xlarge | cr1.8xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge | d2.xlarge | d3.2xlarge | d3.4xlarge | d3.8xlarge | d3.xlarge | d3en.12xlarge | d3en.2xlarge | d3en.4xlarge | d3en.6xlarge | d3en.8xlarge | d3en.xlarge | dl1.24xlarge | f1.16xlarge | f1.2xlarge | f1.4xlarge | g2.2xlarge | g2.8xlarge | g3.16xlarge | g3.4xlarge | g3.8xlarge | g3s.xlarge | g4ad.16xlarge | g4ad.2xlarge | g4ad.4xlarge | g4ad.8xlarge | g4ad.xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.2xlarge | g4dn.4xlarge | g4dn.8xlarge | g4dn.metal | g4dn.xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.2xlarge | g5.48xlarge | g5.4xlarge | g5.8xlarge | g5.xlarge | g5g.16xlarge | g5g.2xlarge | g5g.4xlarge | g5g.8xlarge | g5g.metal | g5g.xlarge | h1.16xlarge | h1.2xlarge | h1.4xlarge | h1.8xlarge | hi1.4xlarge | hpc6a.48xlarge | hpc6id.32xlarge | hs1.8xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | i2.xlarge | i3.16xlarge | i3.2xlarge | i3.4xlarge | i3.8xlarge | i3.large | i3.metal | i3.xlarge | i3en.12xlarge | i3en.24xlarge | i3en.2xlarge | i3en.3xlarge | i3en.6xlarge | i3en.large | i3en.metal | i3en.xlarge | i4i.16xlarge | i4i.2xlarge | i4i.32xlarge | i4i.4xlarge | i4i.8xlarge | i4i.large | i4i.metal | i4i.xlarge | im4gn.16xlarge | im4gn.2xlarge | im4gn.4xlarge | im4gn.8xlarge | im4gn.large | im4gn.xlarge | inf1.24xlarge | inf1.2xlarge | inf1.6xlarge | inf1.xlarge | is4gen.2xlarge | is4gen.4xlarge | is4gen.8xlarge | is4gen.large | is4gen.medium | is4gen.xlarge | m1.large | m1.medium | m1.small | m1.xlarge | m2.2xlarge | m2.4xlarge | m2.xlarge | m3.2xlarge | m3.large | m3.medium | m3.xlarge | m4.10xlarge | m4.16xlarge | m4.2xlarge | m4.4xlarge | m4.large | m4.xlarge | m5.12xlarge | m5.16xlarge | m5.24xlarge | m5.2xlarge | m5.4xlarge | m5.8xlarge | m5.large | m5.metal | m5.xlarge | m5a.12xlarge | m5a.16xlarge | m5a.24xlarge | m5a.2xlarge | m5a.4xlarge | m5a.8xlarge | m5a.large | m5a.xlarge | m5ad.12xlarge | m5ad.16xlarge | m5ad.24xlarge | m5ad.2xlarge | m5ad.4xlarge | m5ad.8xlarge | m5ad.large | m5ad.xlarge | m5d.12xlarge | m5d.16xlarge | m5d.24xlarge | m5d.2xlarge | m5d.4xlarge | m5d.8xlarge | m5d.large | m5d.metal | m5d.xlarge | m5dn.12xlarge | m5dn.16xlarge | m5dn.24xlarge | m5dn.2xlarge | m5dn.4xlarge | m5dn.8xlarge | m5dn.large | m5dn.metal | m5dn.xlarge | m5n.12xlarge | m5n.16xlarge | m5n.24xlarge | m5n.2xlarge | m5n.4xlarge | m5n.8xlarge | m5n.large | m5n.metal | m5n.xlarge | m5zn.12xlarge | m5zn.2xlarge | m5zn.3xlarge | m5zn.6xlarge | m5zn.large | m5zn.metal | m5zn.xlarge | m6a.12xlarge | m6a.16xlarge | m6a.24xlarge | m6a.2xlarge | m6a.32xlarge | m6a.48xlarge | m6a.4xlarge | m6a.8xlarge | m6a.large | m6a.metal | m6a.xlarge | m6g.12xlarge | m6g.16xlarge | m6g.2xlarge | m6g.4xlarge | m6g.8xlarge | m6g.large | m6g.medium | m6g.metal | m6g.xlarge | m6gd.12xlarge | m6gd.16xlarge | m6gd.2xlarge | m6gd.4xlarge | m6gd.8xlarge | m6gd.large | m6gd.medium | m6gd.metal | m6gd.xlarge | m6i.12xlarge | m6i.16xlarge | m6i.24xlarge | m6i.2xlarge | m6i.32xlarge | m6i.4xlarge | m6i.8xlarge | m6i.large | m6i.metal | m6i.xlarge | m6id.12xlarge | m6id.16xlarge | m6id.24xlarge | m6id.2xlarge | m6id.32xlarge | m6id.4xlarge | m6id.8xlarge | m6id.large | m6id.metal | m6id.xlarge | m6idn.12xlarge | m6idn.16xlarge | m6idn.24xlarge | m6idn.2xlarge | m6idn.32xlarge | m6idn.4xlarge | m6idn.8xlarge | m6idn.large | m6idn.xlarge | m6in.12xlarge | m6in.16xlarge | m6in.24xlarge | m6in.2xlarge | m6in.32xlarge | m6in.4xlarge | m6in.8xlarge | m6in.large | m6in.xlarge | mac1.metal | mac2.metal | p2.16xlarge | p2.8xlarge | p2.xlarge | p3.16xlarge | p3.2xlarge | p3.8xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | r3.large | r3.xlarge | r4.16xlarge | r4.2xlarge | r4.4xlarge | r4.8xlarge | r4.large | r4.xlarge | r5.12xlarge | r5.16xlarge | r5.24xlarge | r5.2xlarge | r5.4xlarge | r5.8xlarge | r5.large | r5.metal | r5.xlarge | r5a.12xlarge | r5a.16xlarge | r5a.24xlarge | r5a.2xlarge | r5a.4xlarge | r5a.8xlarge | r5a.large | r5a.xlarge | r5ad.12xlarge | r5ad.16xlarge | r5ad.24xlarge | r5ad.2xlarge | r5ad.4xlarge | r5ad.8xlarge | r5ad.large | r5ad.xlarge | r5b.12xlarge | r5b.16xlarge | r5b.24xlarge | r5b.2xlarge | r5b.4xlarge | r5b.8xlarge | r5b.large | r5b.metal | r5b.xlarge | r5d.12xlarge | r5d.16xlarge | r5d.24xlarge | r5d.2xlarge | r5d.4xlarge | r5d.8xlarge | r5d.large | r5d.metal | r5d.xlarge | r5dn.12xlarge | r5dn.16xlarge | r5dn.24xlarge | r5dn.2xlarge | r5dn.4xlarge | r5dn.8xlarge | r5dn.large | r5dn.metal | r5dn.xlarge | r5n.12xlarge | r5n.16xlarge | r5n.24xlarge | r5n.2xlarge | r5n.4xlarge | r5n.8xlarge | r5n.large | r5n.metal | r5n.xlarge | r6a.12xlarge | r6a.16xlarge | r6a.24xlarge | r6a.2xlarge | r6a.32xlarge | r6a.48xlarge | r6a.4xlarge | r6a.8xlarge | r6a.large | r6a.metal | r6a.xlarge | r6g.12xlarge | r6g.16xlarge | r6g.2xlarge | r6g.4xlarge | r6g.8xlarge | r6g.large | r6g.medium | r6g.metal | r6g.xlarge | r6gd.12xlarge | r6gd.16xlarge | r6gd.2xlarge | r6gd.4xlarge | r6gd.8xlarge | r6gd.large | r6gd.medium | r6gd.metal | r6gd.xlarge | r6i.12xlarge | r6i.16xlarge | r6i.24xlarge | r6i.2xlarge | r6i.32xlarge | r6i.4xlarge | r6i.8xlarge | r6i.large | r6i.metal | r6i.xlarge | r6id.12xlarge | r6id.16xlarge | r6id.24xlarge | r6id.2xlarge | r6id.32xlarge | r6id.4xlarge | r6id.8xlarge | r6id.large | r6id.metal | r6id.xlarge | r6idn.12xlarge | r6idn.16xlarge | r6idn.24xlarge | r6idn.2xlarge | r6idn.32xlarge | r6idn.4xlarge | r6idn.8xlarge | r6idn.large | r6idn.xlarge | r6in.12xlarge | r6in.16xlarge | r6in.24xlarge | r6in.2xlarge | r6in.32xlarge | r6in.4xlarge | r6in.8xlarge | r6in.large | r6in.xlarge | t1.micro | t2.2xlarge | t2.large | t2.medium | t2.micro | t2.nano | t2.small | t2.xlarge | t3.2xlarge | t3.large | t3.medium | t3.micro | t3.nano | t3.small | t3.xlarge | t3a.2xlarge | t3a.large | t3a.medium | t3a.micro | t3a.nano | t3a.small | t3a.xlarge | t4g.2xlarge | t4g.large | t4g.medium | t4g.micro | t4g.nano | t4g.small | t4g.xlarge | trn1.2xlarge | trn1.32xlarge | u-12tb1.112xlarge | u-12tb1.metal | u-18tb1.112xlarge | u-18tb1.metal | u-24tb1.112xlarge | u-24tb1.metal | u-3tb1.56xlarge | u-6tb1.112xlarge | u-6tb1.56xlarge | u-6tb1.metal | u-9tb1.112xlarge | u-9tb1.metal | vt1.24xlarge | vt1.3xlarge | vt1.6xlarge | x1.16xlarge | x1.32xlarge | x1e.16xlarge | x1e.2xlarge | x1e.32xlarge | x1e.4xlarge | x1e.8xlarge | x1e.xlarge | x2gd.12xlarge | x2gd.16xlarge | x2gd.2xlarge | x2gd.4xlarge | x2gd.8xlarge | x2gd.large | x2gd.medium | x2gd.metal | x2gd.xlarge | x2idn.16xlarge | x2idn.24xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.16xlarge | x2iedn.24xlarge | x2iedn.2xlarge | x2iedn.32xlarge | x2iedn.4xlarge | x2iedn.8xlarge | x2iedn.metal | x2iedn.xlarge | x2iezn.12xlarge | x2iezn.2xlarge | x2iezn.4xlarge | x2iezn.6xlarge | x2iezn.8xlarge | x2iezn.metal | z1d.12xlarge | z1d.2xlarge | z1d.3xlarge | z1d.6xlarge | z1d.large | z1d.metal | z1d.xlarge` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "InstanceType", "type": "string" }, @@ -58583,15 +58585,21 @@ "additionalProperties": false, "properties": { "LocalGatewayId": { + "markdownDescription": "The ID of the local gateway\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayId", "type": "string" }, "Mode": { + "markdownDescription": "The mode of the local gateway route table\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `coip | direct-vpc-routing` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Mode", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the local gateway route table\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -58738,15 +58746,21 @@ "additionalProperties": false, "properties": { "LocalGatewayRouteTableId": { + "markdownDescription": "The ID of the local gateway route table\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayRouteTableId", "type": "string" }, "LocalGatewayVirtualInterfaceGroupId": { + "markdownDescription": "The ID of the virtual interface group\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "LocalGatewayVirtualInterfaceGroupId", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the association\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -69505,7 +69519,7 @@ "items": { "$ref": "#/definitions/Tag" }, - "markdownDescription": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions in your IAM user or IAM role used to manage the CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The metadata that you apply to the cluster to assist with categorization and organization\\. Each tag consists of a key and an optional value, both of which you define\\. Cluster tags don't propagate to any other resources associated with the cluster\\. \nYou must have the `eks:TagResource` and `eks:UntagResource` permissions for your [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the AWS CloudFormation stack\\. If you don't have these permissions, there might be unexpected behavior with stack\\-level tags propagating to the resource during resource creation and update\\.\n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Tags", "type": "array" }, @@ -69661,7 +69675,7 @@ "additionalProperties": false, "properties": { "KeyArn": { - "markdownDescription": "Amazon Resource Name \\(ARN\\) or alias of the KMS key\\. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key\\. For more information, see [Allowing Users in Other Accounts to Use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Amazon Resource Name \\(ARN\\) or alias of the KMS key\\. The KMS key must be symmetric and created in the same AWS Region as the cluster\\. If the KMS key was created in a different account, the [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) must have access to the KMS key\\. For more information, see [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the * AWS Key Management Service Developer Guide*\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "KeyArn", "type": "string" } @@ -76601,7 +76615,7 @@ "type": "number" }, "HealthyThresholdCount": { - "markdownDescription": "The number of consecutive health check successes required before considering a target healthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 5\\. For target groups with a protocol of GENEVE, the default is 5\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The number of consecutive health check successes required before considering a target healthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 5\\. For target groups with a protocol of GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "HealthyThresholdCount", "type": "number" }, @@ -76665,7 +76679,7 @@ "type": "array" }, "UnhealthyThresholdCount": { - "markdownDescription": "The number of consecutive health check failures required before considering a target unhealthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 2\\. For target groups with a protocol of GENEVE, the default is 2\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The number of consecutive health check failures required before considering a target unhealthy\\. The range is 2\\-10\\. If the target group protocol is TCP, TCP\\_UDP, UDP, TLS, HTTP or HTTPS, the default is 2\\. For target groups with a protocol of GENEVE, the default is 3\\. If the target type is `lambda`, the default is 5\\. \n*Required*: No \n*Type*: Integer \n*Minimum*: `2` \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "UnhealthyThresholdCount", "type": "number" }, @@ -78071,7 +78085,7 @@ "type": "array" }, "Name": { - "markdownDescription": "The name of the endpoint\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the endpoint\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `[\\.\\-_A-Za-z0-9]+` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Name", "type": "string" }, @@ -78495,7 +78509,7 @@ "items": { "$ref": "#/definitions/AWS::Events::Rule.Target" }, - "markdownDescription": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nThe maximum number of entries per request is 10\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nFor a list of services you can configure as targets for events, see [EventBridge targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) in the *Amazon EventBridge User Guide*\\. \nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are: \n+ `Amazon EBS CreateSnapshot API call` \n+ `Amazon EC2 RebootInstances API call` \n+ `Amazon EC2 StopInstances API call` \n+ `Amazon EC2 TerminateInstances API call` \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions: \n+ For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\.\n+ For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\.\nFor more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule\\. \nTargets are the resources that are invoked when a rule is triggered\\. \nThe maximum number of entries per request is 10\\. \nEach rule can have up to five \\(5\\) targets associated with it at one time\\.\nFor a list of services you can configure as targets for events, see [EventBridge targets](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) in the *Amazon EventBridge User Guide*\\. \nCreating rules with built\\-in targets is supported only in the AWS Management Console\\. The built\\-in targets are: \n+ `Amazon EBS CreateSnapshot API call` \n+ `Amazon EC2 RebootInstances API call` \n+ `Amazon EC2 StopInstances API call` \n+ `Amazon EC2 TerminateInstances API call` \nFor some target types, `PutTargets` provides target\\-specific parameters\\. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the `KinesisParameters` argument\\. To invoke a command on multiple EC2 instances with one rule, you can use the `RunCommandParameters` field\\. \nTo be able to make API calls against the resources that you own, Amazon EventBridge needs the appropriate permissions: \n+ For AWS Lambda and Amazon SNS resources, EventBridge relies on resource\\-based policies\\.\n+ For EC2 instances, Kinesis Data Streams, AWS Step Functions state machines and API Gateway APIs, EventBridge relies on IAM roles that you specify in the `RoleARN` argument in `PutTargets`\\.\nFor more information, see [Authentication and Access Control](https://docs.aws.amazon.com/eventbridge/latest/userguide/auth-and-access-control-eventbridge.html) in the *Amazon EventBridge User Guide*\\. \nIf another AWS account is in the same region and has granted you permission \\(using `PutPermission`\\), you can send events to that account\\. Set that account's event bus as a target of the rules in your account\\. To send the matched events to the other account, specify that account's event bus as the `Arn` value when you run `PutTargets`\\. If your account sends events to another account, your account is charged for each sent event\\. Each event sent to another account is charged as a custom event\\. The account receiving the event is not charged\\. For more information, see [Amazon EventBridge Pricing](http://aws.amazon.com/eventbridge/pricing/)\\. \n `Input`, `InputPath`, and `InputTransformer` are not available with `PutTarget` if the target is an event bus of a different AWS account\\.\nIf you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a `RoleArn` with proper permissions in the `Target` structure\\. For more information, see [Sending and Receiving Events Between AWS Accounts](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-cross-account-event-delivery.html) in the *Amazon EventBridge User Guide*\\. \nIf you have an IAM role on a cross\\-account event bus target, a `PutTargets` call without a role on the same target \\(same `Id` and `Arn`\\) will not remove the role\\.\nFor more information about enabling cross\\-account events, see [PutPermission](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPermission.html)\\. \n **Input**, **InputPath**, and **InputTransformer** are mutually exclusive and optional parameters of a target\\. When a rule is triggered due to a matched event: \n+ If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format \\(unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target\\)\\.\n+ If **Input** is specified in the form of valid JSON, then the matched event is overridden with this constant\\.\n+ If **InputPath** is specified in the form of JSONPath \\(for example, `$.detail`\\), then only the part of the event specified in the path is passed to the target \\(for example, only the detail part of the event is passed\\)\\.\n+ If **InputTransformer** is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target\\.\nWhen you specify `InputPath` or `InputTransformer`, you must use JSON dot notation, not bracket notation\\. \nWhen you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked\\. Allow a short period of time for changes to take effect\\. \nThis action can partially fail if too many requests are made at the same time\\. If that happens, `FailedEntryCount` is non\\-zero in the response and each entry in `FailedEntries` provides the ID of the failed target and the error code\\. \n*Required*: No \n*Type*: List of [Target](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Targets", "type": "array" } @@ -80634,7 +80648,7 @@ "additionalProperties": false, "properties": { "FirewallDeploymentModel": { - "markdownDescription": "Defines the deployment model to use for the firewall policy\\. To use a distributed model, set [PolicyOption](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_PolicyOption.html) to `NULL`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CENTRALIZED | DISTRIBUTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Defines the deployment model to use for the firewall policy\\. To use a distributed model, set [FirewallDeploymentModel](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-thirdpartyfirewallpolicy.html) to `DISTRIBUTED`\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `CENTRALIZED | DISTRIBUTED` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "FirewallDeploymentModel", "type": "string" } @@ -80773,27 +80787,37 @@ "additionalProperties": false, "properties": { "Description": { + "markdownDescription": "A description of the resource set\\. \n*Required*: No \n*Type*: String \n*Maximum*: `256` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Description", "type": "string" }, "Name": { + "markdownDescription": "The descriptive name of the resource set\\. You can't change the name of a resource set after you create it\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `128` \n*Pattern*: `^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "ResourceTypeList": { "items": { "type": "string" }, + "markdownDescription": "Determines the resources that can be associated to the resource set\\. Depending on your setting for max results and the number of resource sets, a single call might not return the full list\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourceTypeList", "type": "array" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "The resources included in the resource set\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", "type": "array" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "A collection of key:value pairs associated with a resource set\\. The key:value pair can be anything you define\\. Typically, the tag key represents a category \\(such as \"environment\"\\) and the tag value represents a specific value within that category \\(such as \"test,\" \"development,\" or \"production\"\\)\\. You can add up to 50 tags to each AWS resource\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -91715,7 +91739,7 @@ "additionalProperties": false, "properties": { "Action": { - "markdownDescription": "Whether or not to notify components and wait for components to become safe to update\\. Choose from the following options: \n+ `NOTIFY_COMPONENTS` \u2013 The deployment notifies each component before it stops and updates that component\\. Components can use the [SubscribeToComponentUpdates](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates) IPC operation to receive these notifications\\. Then, components can respond with the [DeferComponentUpdate](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate) IPC operation\\. For more information, see the [Create deployments](https://docs.aws.amazon.com/greengrass/v2/latest/developerguide/create-deployments.html) in the *AWS IoT Greengrass V2 Developer Guide*\\.\n+ `SKIP_NOTIFY_COMPONENTS` \u2013 The deployment doesn't notify components or wait for them to be safe to update\\.\nDefault: `NOTIFY_COMPONENTS` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Whether or not to notify components and wait for components to become safe to update\\. Choose from the following options: \n+ `NOTIFY_COMPONENTS` \u2013 The deployment notifies each component before it stops and updates that component\\. Components can use the [SubscribeToComponentUpdates](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-subscribetocomponentupdates) IPC operation to receive these notifications\\. Then, components can respond with the [DeferComponentUpdate](https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc-operation-defercomponentupdate) IPC operation\\. For more information, see the [Create deployments](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html) in the *AWS IoT Greengrass V2 Developer Guide*\\.\n+ `SKIP_NOTIFY_COMPONENTS` \u2013 The deployment doesn't notify components or wait for them to be safe to update\\.\nDefault: `NOTIFY_COMPONENTS` \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Action", "type": "string" }, @@ -92752,7 +92776,7 @@ "type": "string" }, "Description": { - "markdownDescription": "The description of the filter\\. Valid special characters include period \\(\\.\\), underscore \\(\\_\\), dash \\(\\-\\), and whitespace\\. The new line character is considered to be an invalid input for description\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The description of the filter\\. Valid characters include alphanumeric characters, and special characters such as hyphen, period, colon, underscore, parentheses \\(`{ }`, `[ ]`, and `( )`\\), forward slash, horizontal tab, vertical tab, newline, form feed, return, and whitespace\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `512` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Description", "type": "string" }, @@ -95102,15 +95126,21 @@ "additionalProperties": false, "properties": { "DestinationConfiguration": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.DestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.DestinationConfiguration", + "markdownDescription": "The DestinationConfiguration is a complex type that contains information about where chat content will be logged\\. \n*Required*: Yes \n*Type*: [DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DestinationConfiguration" }, "Name": { + "markdownDescription": "Logging\\-configuration name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -95144,6 +95174,8 @@ "additionalProperties": false, "properties": { "LogGroupName": { + "markdownDescription": "Name of the Amazon Cloudwatch Logs destination where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `^[\\.\\-_/#A-Za-z0-9]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LogGroupName", "type": "string" } }, @@ -95156,13 +95188,19 @@ "additionalProperties": false, "properties": { "CloudWatchLogs": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.CloudWatchLogsDestinationConfiguration", + "markdownDescription": "An Amazon CloudWatch Logs destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [CloudWatchLogsDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-cloudwatchlogsdestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CloudWatchLogs" }, "Firehose": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.FirehoseDestinationConfiguration", + "markdownDescription": "An Amazon Kinesis Data Firehose destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [FirehoseDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-firehosedestinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Firehose" }, "S3": { - "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration" + "$ref": "#/definitions/AWS::IVSChat::LoggingConfiguration.S3DestinationConfiguration", + "markdownDescription": "An Amazon S3 destination configuration where chat activity will be logged\\. \n*Required*: No \n*Type*: [S3DestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-loggingconfiguration-s3destinationconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "S3" } }, "type": "object" @@ -95171,6 +95209,8 @@ "additionalProperties": false, "properties": { "DeliveryStreamName": { + "markdownDescription": "Name of the Amazon Kinesis Firehose delivery stream where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `64` \n*Pattern*: `^[a-zA-Z0-9_.-]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DeliveryStreamName", "type": "string" } }, @@ -95183,6 +95223,8 @@ "additionalProperties": false, "properties": { "BucketName": { + "markdownDescription": "Name of the Amazon S3 bucket where chat activity will be logged\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `3` \n*Maximum*: `63` \n*Pattern*: `^[a-z0-9-.]+$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BucketName", "type": "string" } }, @@ -95230,24 +95272,36 @@ "items": { "type": "string" }, + "markdownDescription": "List of logging\\-configuration identifiers attached to the room\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoggingConfigurationIdentifiers", "type": "array" }, "MaximumMessageLength": { + "markdownDescription": "Maximum number of characters in a single message\\. Messages are expected to be UTF\\-8 encoded and this limit applies specifically to rune/code\\-point count, not number of bytes\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumMessageLength", "type": "number" }, "MaximumMessageRatePerSecond": { + "markdownDescription": "Maximum number of messages per second that can be sent to the room \\(by all clients\\)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaximumMessageRatePerSecond", "type": "number" }, "MessageReviewHandler": { - "$ref": "#/definitions/AWS::IVSChat::Room.MessageReviewHandler" + "$ref": "#/definitions/AWS::IVSChat::Room.MessageReviewHandler", + "markdownDescription": "Configuration information for optional review of messages\\. \n*Required*: No \n*Type*: [MessageReviewHandler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivschat-room-messagereviewhandler.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MessageReviewHandler" }, "Name": { + "markdownDescription": "Room name\\. The value does not need to be unique\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `128` \n*Pattern*: `^[a-zA-Z0-9-_]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "An array of key\\-value pairs to apply to this resource\\. \nFor more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -95277,9 +95331,13 @@ "additionalProperties": false, "properties": { "FallbackResult": { + "markdownDescription": "Specifies the fallback behavior \\(whether the message is allowed or denied\\) if the handler does not return a valid response, encounters an error, or times out\\. \\(For the timeout period, see [ Service Quotas](https://docs.aws.amazon.com/ivs/latest/userguide/service-quotas.html)\\.\\) If allowed, the message is delivered with returned content to all users connected to the room\\. If denied, the message is not delivered to any user\\. \n*Default*: `ALLOW` \n*Required*: No \n*Type*: String \n*Allowed values*: `ALLOW | DENY` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FallbackResult", "type": "string" }, "Uri": { + "markdownDescription": "Identifier of the message review handler\\. Currently this must be an ARN of a lambda function\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `170` \n*Pattern*: `^$|^arn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Uri", "type": "string" } }, @@ -97768,36 +97826,50 @@ "additionalProperties": false, "properties": { "MaxCityNetworksToMonitor": { + "markdownDescription": "The maximum number of city\\-networks to monitor for your resources\\. A city\\-network is the location \\(city\\) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through\\. \nFor more information, see [ Choosing a city\\-network maximum value](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/IMCityNetworksMaximum.html) in *Using Amazon CloudWatch Internet Monitor*\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "MaxCityNetworksToMonitor", "type": "number" }, "MonitorName": { + "markdownDescription": "The name of the monitor\\. A monitor name can contain only alphanumeric characters, dashes \\(\\-\\), periods \\(\\.\\), and underscores \\(\\_\\)\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "MonitorName", "type": "string" }, "Resources": { "items": { "type": "string" }, + "markdownDescription": "The resources that have been added for the monitor, listed by their Amazon Resource Names \\(ARNs\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Resources", "type": "array" }, "ResourcesToAdd": { "items": { "type": "string" }, + "markdownDescription": "The resources to add to a monitor, which you provide as a set of Amazon Resource Names \\(ARNs\\)\\. \nYou can add a combination of Virtual Private Clouds \\(VPCs\\) and Amazon CloudFront distributions, or you can add WorkSpaces directories\\. You can't add all three types of resources\\. \nIf you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity\\.\n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesToAdd", "type": "array" }, "ResourcesToRemove": { "items": { "type": "string" }, + "markdownDescription": "The resources to remove from a monitor, which you provide as a set of Amazon Resource Names \\(ARNs\\)\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResourcesToRemove", "type": "array" }, "Status": { + "markdownDescription": "The status of a monitor\\. The accepted values that you can specify for `Status` are `ACTIVE` and `INACTIVE`\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Status", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags for a monitor, listed as a set of *key:value* pairs\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -118593,7 +118665,7 @@ "title": "AmazonManagedKafkaEventSourceConfig" }, "BatchSize": { - "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function\\. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation \\(6 MB\\)\\. \n+ **Amazon Kinesis** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon DynamoDB Streams** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon Simple Queue Service** \u2013 Default 10\\. For standard queues the max is 10,000\\. For FIFO queues the max is 10\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Self\\-managed Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon MQ \\(ActiveMQ and RabbitMQ\\)** \u2013 Default 100\\. Max 10,000\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function\\. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation \\(6 MB\\)\\. \n+ **Amazon Kinesis** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon DynamoDB Streams** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon Simple Queue Service** \u2013 Default 10\\. For standard queues the max is 10,000\\. For FIFO queues the max is 10\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Self\\-managed Apache Kafka** \u2013 Default 100\\. Max 10,000\\.\n+ **Amazon MQ \\(ActiveMQ and RabbitMQ\\)** \u2013 Default 100\\. Max 10,000\\.\n+ **DocumentDB** \u2013 Default 100\\. Max 10,000\\.\n*Required*: No \n*Type*: Integer \n*Minimum*: `1` \n*Maximum*: `10000` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "BatchSize", "type": "number" }, @@ -118608,7 +118680,9 @@ "title": "DestinationConfig" }, "DocumentDBEventSourceConfig": { - "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig" + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DocumentDBEventSourceConfig", + "markdownDescription": "Specific configuration settings for a DocumentDB event source\\. \n*Required*: No \n*Type*: [DocumentDBEventSourceConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DocumentDBEventSourceConfig" }, "Enabled": { "markdownDescription": "When true, the event source mapping is active\\. When false, Lambda pauses polling and invocation\\. \nDefault: True \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -118616,7 +118690,7 @@ "type": "boolean" }, "EventSourceArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the event source\\. \n+ **Amazon Kinesis** \u2013 The ARN of the data stream or a stream consumer\\.\n+ **Amazon DynamoDB Streams** \u2013 The ARN of the stream\\.\n+ **Amazon Simple Queue Service** \u2013 The ARN of the queue\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 The ARN of the cluster\\.\n+ **Amazon MQ** \u2013 The ARN of the broker\\.\n*Required*: No \n*Type*: String \n*Pattern*: `arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-gov.html)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the event source\\. \n+ **Amazon Kinesis** \u2013 The ARN of the data stream or a stream consumer\\.\n+ **Amazon DynamoDB Streams** \u2013 The ARN of the stream\\.\n+ **Amazon Simple Queue Service** \u2013 The ARN of the queue\\.\n+ **Amazon Managed Streaming for Apache Kafka** \u2013 The ARN of the cluster\\.\n+ **Amazon MQ** \u2013 The ARN of the broker\\.\n+ **Amazon DocumentDB** \u2013 The ARN of the DocumentDB change stream\\.\n*Required*: No \n*Type*: String \n*Pattern*: `arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/-gov.html)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "EventSourceArn", "type": "string" }, @@ -118765,12 +118839,18 @@ "additionalProperties": false, "properties": { "CollectionName": { + "markdownDescription": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `57` \n*Pattern*: `(^(?!(system\\x2e)))(^[_a-zA-Z0-9])([^$]*)` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "CollectionName", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the database to consume within the DocumentDB cluster\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `63` \n*Pattern*: `[^ /\\.$\\x22]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "DatabaseName", "type": "string" }, "FullDocument": { + "markdownDescription": "Determines what DocumentDB sends to your event stream during document update operations\\. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, DocumentDB sends only a partial document that contains the changes\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `Default | UpdateLookup` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FullDocument", "type": "string" } }, @@ -119199,7 +119279,7 @@ "type": "string" }, "UpdateRuntimeOn": { - "markdownDescription": "Specify the runtime update mode\\. \n+ **Auto \\(default\\)** \\- Automatically update to the most recent and secure runtime version using a [Two\\-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase)\\. This is the best choice for most customers to ensure they always benefit from runtime updates\\.\n+ **Function update** \\- Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function\\. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early\\. When using this setting, you need to regularly update your functions to keep their runtime up\\-to\\-date\\.\n+ **Manual** \\- You specify a runtime version in your function configuration\\. The function will use this runtime version indefinitely\\. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version\\. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback)\\.\n*Valid Values*: `Auto` \\| `Function update` \\| `Manual` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specify the runtime update mode\\. \n+ **Auto \\(default\\)** \\- Automatically update to the most recent and secure runtime version using a [Two\\-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase)\\. This is the best choice for most customers to ensure they always benefit from runtime updates\\.\n+ **FunctionUpdate** \\- Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function\\. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early\\. When using this setting, you need to regularly update your functions to keep their runtime up\\-to\\-date\\.\n+ **Manual** \\- You specify a runtime version in your function configuration\\. The function will use this runtime version indefinitely\\. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version\\. For more information, see [Roll back a runtime version](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback)\\.\n*Valid Values*: `Auto` \\| `FunctionUpdate` \\| `Manual` \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "UpdateRuntimeOn", "type": "string" } @@ -128837,12 +128917,16 @@ "additionalProperties": false, "properties": { "AccessorType": { + "markdownDescription": "The type of the accessor\\. \nCurrently, accessor type is restricted to `BILLING_TOKEN`\\.\n*Required*: Yes \n*Type*: String \n*Allowed values*: `BILLING_TOKEN` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "AccessorType", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags assigned to the Accessor\\. \nFor more information about tags, see [Tagging Resources](https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html) in the *Amazon Managed Blockchain Ethereum Developer Guide*, or [Tagging Resources](https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html) in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -129003,7 +129087,7 @@ "additionalProperties": false, "properties": { "AdminPassword": { - "markdownDescription": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least eight characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The password for the member's initial administrative user\\. The `AdminPassword` must be at least 8 characters long and no more than 32 characters\\. It must contain at least one uppercase letter, one lowercase letter, and one digit\\. It cannot have a single quotation mark \\(\u2018\\), a double quotation marks \\(\u201c\\), a forward slash\\(/\\), a backward slash\\(\\\\\\), @, or a space\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `8` \n*Maximum*: `32` \n*Pattern*: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?!.*[@'\\\\\"/])[a-zA-Z0-9\\S]*$` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AdminPassword", "type": "string" }, @@ -129060,7 +129144,7 @@ }, "VotingPolicy": { "$ref": "#/definitions/AWS::ManagedBlockchain::Member.VotingPolicy", - "markdownDescription": "The voting rules for the network to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The voting rules that the network uses to decide if a proposal is accepted\\. \n*Required*: Yes \n*Type*: [VotingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "VotingPolicy" } }, @@ -129076,7 +129160,7 @@ "additionalProperties": false, "properties": { "Edition": { - "markdownDescription": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The edition of Amazon Managed Blockchain that the network uses\\. Valid values are `standard` and `starter`\\. For more information, see [Amazon Managed Blockchain Pricing](http://aws.amazon.com/managed-blockchain/pricing/) \n*Required*: Yes \n*Type*: String \n*Allowed values*: `STANDARD | STARTER` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Edition", "type": "string" } @@ -129091,7 +129175,7 @@ "properties": { "NetworkFabricConfiguration": { "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFabricConfiguration", - "markdownDescription": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Configuration properties for Hyperledger Fabric for a member in a Managed Blockchain network that is using the Hyperledger Fabric framework\\. \n*Required*: No \n*Type*: [NetworkFabricConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "NetworkFabricConfiguration" } }, @@ -139407,7 +139491,7 @@ "additionalProperties": false, "properties": { "Protocol": { - "markdownDescription": "The protocol used for the attachment connection\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The protocol used for the attachment connection\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE | NO_ENCAP` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Protocol", "type": "string" } @@ -139605,7 +139689,7 @@ "type": "string" }, "Protocol": { - "markdownDescription": "The protocol used for a Connect peer configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The protocol used for a Connect peer configuration\\. \n*Required*: No \n*Type*: String \n*Allowed values*: `GRE | NO_ENCAP` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Protocol", "type": "string" } @@ -140632,18 +140716,26 @@ "additionalProperties": false, "properties": { "PeeringId": { + "markdownDescription": "The ID of the transit gateway peering\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `50` \n*Pattern*: `^peering-([0-9a-f]{8,17})$` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "PeeringId", "type": "string" }, "ProposedSegmentChange": { - "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayRouteTableAttachment.ProposedSegmentChange" + "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayRouteTableAttachment.ProposedSegmentChange", + "markdownDescription": "This property is read\\-only\\. Values can't be assigned to it\\. \n*Required*: No \n*Type*: [ProposedSegmentChange](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkmanager-transitgatewayroutetableattachment-proposedsegmentchange.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ProposedSegmentChange" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The list of key\\-value pairs associated with the transit gateway route table attachment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" }, "TransitGatewayRouteTableArn": { + "markdownDescription": "The ARN of the transit gateway attachment route table\\. For example, `\"TransitGatewayRouteTableArn\": \"arn:aws:ec2:us-west-2:123456789012:transit-gateway-route-table/tgw-rtb-9876543210123456\"`\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `500` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "TransitGatewayRouteTableArn", "type": "string" } }, @@ -140678,15 +140770,21 @@ "additionalProperties": false, "properties": { "AttachmentPolicyRuleNumber": { + "markdownDescription": "The rule number in the policy document that applies to this change\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AttachmentPolicyRuleNumber", "type": "number" }, "SegmentName": { + "markdownDescription": "The name of the segment to change\\. \n*Required*: No \n*Type*: String \n*Minimum*: `0` \n*Maximum*: `256` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SegmentName", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The list of key\\-value tags that changed for the segment\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -142919,7 +143017,7 @@ "items": { "type": "string" }, - "markdownDescription": "The ID of the subnets from which you access OpenSearch Serverless\\. \n*Required*: No \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ID of the subnets from which you access OpenSearch Serverless\\. \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SubnetIds", "type": "array" }, @@ -147350,7 +147448,7 @@ "type": "number" }, "IsPaused": { - "markdownDescription": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies whether to pause the campaign\\. A paused campaign doesn't run unless you resume it by changing this value to `false`\\. If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it\\. If a campaign is running it will complete and then pause\\. Pause only pauses or skips the next run for a recurring future scheduled campaign\\. A campaign scheduled for immediate can't be paused\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "IsPaused", "type": "boolean" }, @@ -151744,7 +151842,7 @@ "additionalProperties": false, "properties": { "AggregationEnabled": { - "markdownDescription": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \n *This option is enabled by default\\.* Record aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Enables QLDB to publish multiple data records in a single Kinesis Data Streams record, increasing the number of records sent per API call\\. \nDefault: `True` \nRecord aggregation has important implications for processing records and requires de\\-aggregation in your stream consumer\\. To learn more, see [KPL Key Concepts](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html) and [Consumer De\\-aggregation](https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html) in the *Amazon Kinesis Data Streams Developer Guide*\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "AggregationEnabled", "type": "boolean" }, @@ -153252,7 +153350,7 @@ "items": { "type": "string" }, - "markdownDescription": "The IAM action to grand or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The IAM action to grant or revoke permisions on \n*Required*: Yes \n*Type*: List of String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Actions", "type": "array" }, @@ -153676,7 +153774,7 @@ "title": "CredentialPair" }, "SecretArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the secret associated with the data source in Amazon Secrets Manager\\. \n*Required*: No \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `2048` \n*Pattern*: `^arn:[-a-z0-9]*:secretsmanager:[-a-z0-9]*:[0-9]{12}:secret:.+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SecretArn", "type": "string" } @@ -153729,7 +153827,7 @@ }, "DatabricksParameters": { "$ref": "#/definitions/AWS::QuickSight::DataSource.DatabricksParameters", - "markdownDescription": "The required parameters that are needed to connect to a Databricks data source\\. \n*Required*: No \n*Type*: [DatabricksParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-databricksparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: [DatabricksParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-databricksparameters.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "DatabricksParameters" }, "MariaDbParameters": { @@ -153799,17 +153897,17 @@ "additionalProperties": false, "properties": { "Host": { - "markdownDescription": "The host name of the Databricks data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `256` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Host", "type": "string" }, "Port": { - "markdownDescription": "The port for the Databricks data source\\. \n*Required*: Yes \n*Type*: Double \n*Minimum*: `1` \n*Maximum*: `65535` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: Double \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Port", "type": "number" }, "SqlEndpointPath": { - "markdownDescription": "The HTTP path of the Databricks data source\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `4096` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Property description not available\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SqlEndpointPath", "type": "string" } @@ -155248,7 +155346,7 @@ "type": "boolean" }, "Engine": { - "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mysql`\n+ `postgres`\nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", + "markdownDescription": "The name of the database engine to be used for this DB cluster\\. \nValid Values: \n+ `aurora` \\(for MySQL 5\\.6\\-compatible Aurora\\)\n+ `aurora-mysql` \\(for MySQL 5\\.7\\-compatible and MySQL 8\\.0\\-compatible Aurora\\)\n+ `aurora-postgresql`\n+ `mysql`\n+ `postgres`\nValid for: Aurora DB clusters and Multi\\-AZ DB clusters \n*Required*: No \n*Type*: String \n*Update requires*: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt)", "title": "Engine", "type": "string" }, @@ -155586,7 +155684,7 @@ "additionalProperties": false, "properties": { "DBClusterParameterGroupName": { - "markdownDescription": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing DB cluster parameter group\\.\nIf you don't specify a value for `DBClusterParameterGroupName` property, a name is automatically created for the DB cluster paramter group\\. \nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the DB cluster parameter group\\. \nConstraints: \n+ Must not match the name of an existing DB cluster parameter group\\.\nIf you don't specify a value for `DBClusterParameterGroupName` property, a name is automatically created for the DB cluster parameter group\\. \nThis value is stored as a lowercase string\\.\n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "DBClusterParameterGroupName", "type": "string" }, @@ -155847,7 +155945,7 @@ "type": "number" }, "KmsKeyId": { - "markdownDescription": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The ARN of the AWS KMS key that's used to encrypt the DB instance, such as `arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef`\\. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key\\. If you specify this property, you must set the StorageEncrypted property to true\\. \nIf you specify the `SourceDBInstanceIdentifier` property, the value is inherited from the source DB instance if the read replica is created in the same region\\. \nIf you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region\\. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region\\. \nIf you specify the `SnapshotIdentifier` property, the `StorageEncrypted` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified `KmsKeyId` property is used\\. \nIf you specify `DBSecurityGroups`, AWS CloudFormation ignores this property\\. To specify both a security group and this property, you must use a VPC security group\\. For more information about Amazon RDS and VPC, see [Using Amazon RDS with Amazon VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*\\. \n **Amazon Aurora** \nNot applicable\\. The KMS key identifier is managed by the DB cluster\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "KmsKeyId", "type": "string" }, @@ -155917,7 +156015,7 @@ "type": "string" }, "PerformanceInsightsRetentionPeriod": { - "markdownDescription": "The amount of time, in days, to retain Performance Insights data\\. Valid values are 7 or 731 \\(2 years\\)\\. \nFor information about enabling Performance Insights, see [ EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights)\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The number of days to retain Performance Insights data\\. The default is 7 days\\. The following values are valid: \n+ 7\n+ *month* \\* 31, where *month* is a number of months from 1\\-23\n+ 731\nFor example, the following values are valid: \n+ 93 \\(3 months \\* 31\\)\n+ 341 \\(11 months \\* 31\\)\n+ 589 \\(19 months \\* 31\\)\n+ 731\nIf you specify a retention period such as 94, which isn't a valid value, RDS issues an error\\. \nThis setting doesn't apply to RDS Custom\\. \n*Required*: No \n*Type*: Integer \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "PerformanceInsightsRetentionPeriod", "type": "number" }, @@ -156370,7 +156468,7 @@ "type": "string" }, "ClientPasswordAuthType": { - "markdownDescription": "Property description not available\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the details of authentication used by a proxy to log in as a specific database user\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ClientPasswordAuthType", "type": "string" }, @@ -156582,7 +156680,7 @@ "type": "array" }, "DBProxyName": { - "markdownDescription": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The identifier of the `DBProxy` that is associated with the `DBProxyTargetGroup`\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "DBProxyName", "type": "string" }, @@ -157744,12 +157842,12 @@ "type": "number" }, "MasterUserPassword": { - "markdownDescription": "The password associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except `'` \\(single quote\\), `\"` \\(double quote\\), `\\`, `/`, or `@`\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The password associated with the admin user for the cluster that is being created\\. \nConstraints: \n+ Must be between 8 and 64 characters in length\\.\n+ Must contain at least one uppercase letter\\.\n+ Must contain at least one lowercase letter\\.\n+ Must contain one number\\.\n+ Can be any printable ASCII character \\(ASCII code 33\\-126\\) except `'` \\(single quote\\), `\"` \\(double quote\\), `\\`, `/`, or `@`\\.\n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MasterUserPassword", "type": "string" }, "MasterUsername": { - "markdownDescription": "The user name associated with the admin user account for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters or hyphens\\. The user name can't be `PUBLIC`\\.\n+ Must contain only lowercase letters, numbers, underscore, plus sign, period \\(dot\\), at symbol \\(@\\), or hyphen\\.\n+ The first character must be a letter\\.\n+ Must not contain a colon \\(:\\) or a slash \\(/\\)\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The user name associated with the admin user for the cluster that is being created\\. \nConstraints: \n+ Must be 1 \\- 128 alphanumeric characters or hyphens\\. The user name can't be `PUBLIC`\\.\n+ Must contain only lowercase letters, numbers, underscore, plus sign, period \\(dot\\), at symbol \\(@\\), or hyphen\\.\n+ The first character must be a letter\\.\n+ Must not contain a colon \\(:\\) or a slash \\(/\\)\\.\n+ Cannot be a reserved word\\. A list of reserved words can be found in [Reserved Words](https://docs.aws.amazon.com/redshift/latest/dg/r_pg_keywords.html) in the Amazon Redshift Database Developer Guide\\. \n*Required*: Yes \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "MasterUsername", "type": "string" }, @@ -157799,7 +157897,7 @@ "type": "boolean" }, "SnapshotClusterIdentifier": { - "markdownDescription": "The name of the cluster the source snapshot was created from\\. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The name of the cluster the source snapshot was created from\\. This parameter is required if your user or role has a policy containing a snapshot resource element that specifies anything other than \\* for the cluster name\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "SnapshotClusterIdentifier", "type": "string" }, @@ -157951,6 +158049,8 @@ "type": "string" }, "ParameterGroupName": { + "markdownDescription": "The name of the cluster parameter group\\. \n*Required*: No \n*Type*: String \n*Maximum*: `2147483647` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "ParameterGroupName", "type": "string" }, "Parameters": { @@ -160231,7 +160331,7 @@ "type": "string" }, "AppTemplateBody": { - "markdownDescription": "A string containing a full Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "A string containing a full AWS Resilience Hub app template body\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AppTemplateBody", "type": "string" }, @@ -160317,7 +160417,7 @@ "type": "string" }, "Type": { - "markdownDescription": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is a Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Specifies the type of physical resource identifier\\. \nArn \nThe resource identifier is an Amazon Resource Name \\(ARN\\) \\. \nNative \nThe resource identifier is an AWS Resilience Hub\\-native identifier\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Type", "type": "string" } @@ -163031,7 +163131,7 @@ "additionalProperties": false, "properties": { "Name": { - "markdownDescription": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "Name of the cluster\\. You can use any non\\-white space character in the name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "Name", "type": "string" }, @@ -169520,7 +169620,7 @@ "type": "string" }, "TracingConfig": { - "markdownDescription": "Tracing mode of an Amazon SNS topic\\. By default `TracingConfig` is set to `PassThrough`, and the topic passes through the tracing header it receives from an SNS publisher to its subscriptions\\. If set to Active, SNS will vend X\\-Ray segment data to topic owner account if the sampled flag in the tracing header is true\\. Only supported on standard topics\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "Tracing mode of an Amazon SNS topic\\. By default `TracingConfig` is set to `PassThrough`, and the topic passes through the tracing header it receives from an SNS publisher to its subscriptions\\. If set to `Active`, SNS will vend X\\-Ray segment data to topic owner account if the sampled flag in the tracing header is true\\. Only supported on standard topics\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "TracingConfig", "type": "string" } @@ -172448,7 +172548,7 @@ "type": "string" }, "InlinePolicy": { - "markdownDescription": "The inline policy that is attached to the permission set\\. \nFor `Length Constraints`, if a valid ARN is provided for a permission set, it is possible for an empty inline policy to be returned\\.\n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `10240` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The inline policy that is attached to the permission set\\. \nFor `Length Constraints`, if a valid ARN is provided for a permission set, it is possible for an empty inline policy to be returned\\.\n*Required*: No \n*Type*: Json \n*Minimum*: `1` \n*Maximum*: `32768` \n*Pattern*: `[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "InlinePolicy", "type": "object" }, @@ -181306,12 +181406,12 @@ "type": "string" }, "MasterSecretArn": { - "markdownDescription": "The ARN of the secret that contains elevated credentials\\. You must create the elevated secret before you can set this property\\. The Lambda rotation function uses this secret for the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the secret that contains superuser credentials, if you use the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. CloudFormation grants the execution role for the Lambda rotation function `GetSecretValue` permission to the secret in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou must create the superuser secret before you can set this property\\. \nYou must also include the superuser secret ARN as a key in the JSON of the rotating secret so that the Lambda rotation function can find it\\. CloudFormation does not hardcode secret ARNs in the Lambda rotation function, so you can use the function to rotate multiple secrets\\. For more information, see [JSON structure of Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MasterSecretArn", "type": "string" }, "MasterSecretKmsKeyArn": { - "markdownDescription": "The ARN of the KMS key that Secrets Manager uses to encrypt the elevated secret if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. If you don't specify this value and you use the alternating users strategy, then Secrets Manager uses the key `aws/secretsmanager`\\. If `aws/secretsmanager` doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users) and the superuser secret is encrypted with a customer managed key\\. You don't need to specify this property if the superuser secret is encrypted using the key `aws/secretsmanager`\\. CloudFormation grants the execution role for the Lambda rotation function `Decrypt`, `DescribeKey`, and `GenerateDataKey` permission to the key in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "MasterSecretKmsKeyArn", "type": "string" }, @@ -181326,15 +181426,17 @@ "type": "string" }, "Runtime": { + "markdownDescription": "The Python runtime version associated with the Lambda function\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Runtime", "type": "string" }, "SuperuserSecretArn": { - "markdownDescription": "The ARN of the secret that contains elevated credentials\\. You must create the superuser secret before you can set this property\\. The Lambda rotation function uses this secret for the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the secret that contains superuser credentials, if you use the [ Alternating users rotation strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. CloudFormation grants the execution role for the Lambda rotation function `GetSecretValue` permission to the secret in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou must create the superuser secret before you can set this property\\. \nYou must also include the superuser secret ARN as a key in the JSON of the rotating secret so that the Lambda rotation function can find it\\. CloudFormation does not hardcode secret ARNs in the Lambda rotation function, so you can use the function to rotate multiple secrets\\. For more information, see [JSON structure of Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html)\\. \nYou can specify `MasterSecretArn` or `SuperuserSecretArn` but not both\\. They represent the same superuser secret\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SuperuserSecretArn", "type": "string" }, "SuperuserSecretKmsKeyArn": { - "markdownDescription": "The ARN of the KMS key that Secrets Manager uses to encrypt the elevated secret if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users)\\. If you don't specify this value and you use the alternating users strategy, then Secrets Manager uses the key `aws/secretsmanager`\\. If `aws/secretsmanager` doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The ARN of the KMS key that Secrets Manager used to encrypt the superuser secret, if you use the [alternating users strategy](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets_strategies.html#rotating-secrets-two-users) and the superuser secret is encrypted with a customer managed key\\. You don't need to specify this property if the superuser secret is encrypted using the key `aws/secretsmanager`\\. CloudFormation grants the execution role for the Lambda rotation function `Decrypt`, `DescribeKey`, and `GenerateDataKey` permission to the key in this property\\. For more information, see [Lambda rotation function execution role permissions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets-required-permissions-function.html)\\. \nYou can specify `MasterSecretKmsKeyArn` or `SuperuserSecretKmsKeyArn` but not both\\. They represent the same superuser secret KMS key\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SuperuserSecretKmsKeyArn", "type": "string" }, @@ -185477,33 +185579,47 @@ "additionalProperties": false, "properties": { "ApplicationId": { + "markdownDescription": "The ID of the application\\. \n*Required*: Yes \n*Type*: String \n*Pattern*: `[\\w\\d]{1,50}` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationId", "type": "string" }, "ApplicationType": { + "markdownDescription": "The type of the application\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `HANA` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ApplicationType", "type": "string" }, "Credentials": { "items": { "$ref": "#/definitions/AWS::SystemsManagerSAP::Application.Credential" }, + "markdownDescription": "The credentials of the SAP application\\. \n*Required*: No \n*Type*: List of [Credential](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-systemsmanagersap-application-credential.html) \n*Maximum*: `20` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Credentials", "type": "array" }, "Instances": { "items": { "type": "string" }, + "markdownDescription": "The Amazon EC2 instances on which your SAP application is running\\. \n*Required*: No \n*Type*: List of String \n*Maximum*: `1` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Instances", "type": "array" }, "SapInstanceNumber": { + "markdownDescription": "The SAP instance number of the application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[0-9]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SapInstanceNumber", "type": "string" }, "Sid": { + "markdownDescription": "The System ID of the application\\. \n*Required*: No \n*Type*: String \n*Pattern*: `[A-Z][A-Z0-9]{2}` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "Sid", "type": "string" }, "Tags": { "items": { "$ref": "#/definitions/Tag" }, + "markdownDescription": "The tags on the application\\. \n*Required*: No \n*Type*: List of [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Tags", "type": "array" } }, @@ -185538,12 +185654,18 @@ "additionalProperties": false, "properties": { "CredentialType": { + "markdownDescription": "The type of the application credentials\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "CredentialType", "type": "string" }, "DatabaseName": { + "markdownDescription": "The name of the SAP HANA database\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "DatabaseName", "type": "string" }, "SecretId": { + "markdownDescription": "The secret ID created in AWS Secrets Manager to store the credentials of the SAP application\\. \n*Required*: No \n*Type*: String \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "title": "SecretId", "type": "string" } }, @@ -189631,7 +189753,7 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.FieldToMatch" }, - "markdownDescription": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `xxx`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The parts of the request that you want to keep out of the logs\\. For example, if you redact the `SingleHeader` field, the `HEADER` field in the logs will be `REDACTED`\\. \nYou can specify only the following fields for redaction: `UriPath`, `QueryString`, `SingleHeader`, `Method`, and `JsonBody`\\.\n*Required*: No \n*Type*: List of [FieldToMatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-fieldtomatch.html) \n*Maximum*: `100` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "RedactedFields", "type": "array" }, @@ -189986,7 +190108,7 @@ "items": { "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelSummary" }, - "markdownDescription": "The labels that one or more rules in this rule group add to matching web requests\\. These labels are defined in the `RuleLabels` for a Rule\\. \n*Required*: No \n*Type*: List of [LabelSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "markdownDescription": "The labels that one or more rules in this rule group add to matching web requests\\. These labels are defined in the `RuleLabels` for a `Rule`\\. \n*Required*: No \n*Type*: List of [LabelSummary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "AvailableLabels", "type": "array" }, @@ -191235,13 +191357,19 @@ "additionalProperties": false, "properties": { "LoginPath": { + "markdownDescription": "The path of the login endpoint for your application\\. For example, for the URL `https://example.com/web/login`, you would provide the path `/web/login`\\. \nThe rule group inspects only HTTP `POST` requests to your specified login endpoint\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "LoginPath", "type": "string" }, "RequestInspection": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.RequestInspection" + "$ref": "#/definitions/AWS::WAFv2::WebACL.RequestInspection", + "markdownDescription": "The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage\\. \n*Required*: No \n*Type*: [RequestInspection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-requestinspection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "RequestInspection" }, "ResponseInspection": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspection" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspection", + "markdownDescription": "The criteria for inspecting responses to login requests, used by the ATP rule group to track login failure rates\\. \nThe ATP rule group evaluates the responses that your protected resources send back to client login attempts, keeping count of successful and failed attempts from each IP address and client session\\. Using this information, the rule group labels and mitigates requests from client sessions and IP addresses that submit too many failed login attempts in a short amount of time\\. \nResponse inspection is available only in web ACLs that protect Amazon CloudFront distributions\\.\n*Required*: No \n*Type*: [ResponseInspection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspection.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "ResponseInspection" } }, "required": [ @@ -191882,7 +192010,9 @@ "additionalProperties": false, "properties": { "AWSManagedRulesATPRuleSet": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet" + "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesATPRuleSet", + "markdownDescription": "Additional configuration for using the account takeover prevention \\(ATP\\) managed rule group, `AWSManagedRulesATPRuleSet`\\. Use this to provide login request information to the rule group\\. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests\\. \nThis configuration replaces the individual configuration fields in `ManagedRuleGroupConfig` and provides additional feature configuration\\. \nFor information about using the ATP managed rule group, see [AWS WAF Fraud Control account takeover prevention \\(ATP\\) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html) and [AWS WAF Fraud Control account takeover prevention \\(ATP\\)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) in the * AWS WAF Developer Guide*\\. \n*Required*: No \n*Type*: [AWSManagedRulesATPRuleSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesatpruleset.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "AWSManagedRulesATPRuleSet" }, "AWSManagedRulesBotControlRuleSet": { "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet", @@ -192105,13 +192235,19 @@ "additionalProperties": false, "properties": { "PasswordField": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page password field\\. \nHow you specify this depends on the payload type\\. \n+ For JSON payloads, specify the field name in JSON pointer syntax\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\.", + "title": "PasswordField" }, "PayloadType": { + "markdownDescription": "The payload type for your login endpoint, either JSON or form encoded\\. \n*Required*: Yes \n*Type*: String \n*Allowed values*: `FORM_ENCODED | JSON` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "PayloadType", "type": "string" }, "UsernameField": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier", + "markdownDescription": "Details about your login page username field\\. \nHow you specify this depends on the payload type\\. \n+ For JSON payloads, specify the field name in JSON pointer syntax\\. For information about the JSON Pointer syntax, see the Internet Engineering Task Force \\(IETF\\) documentation [JavaScript Object Notation \\(JSON\\) Pointer](https://tools.ietf.org/html/rfc6901)\\.", + "title": "UsernameField" } }, "required": [ @@ -192125,16 +192261,24 @@ "additionalProperties": false, "properties": { "BodyContains": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionBodyContains" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionBodyContains", + "markdownDescription": "Configures inspection of the response body\\. AWS WAF can inspect the first 65,536 bytes \\(64 KB\\) of the response body\\. \n*Required*: No \n*Type*: [ResponseInspectionBodyContains](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionbodycontains.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "BodyContains" }, "Header": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionHeader" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionHeader", + "markdownDescription": "Configures inspection of the response header\\. \n*Required*: No \n*Type*: [ResponseInspectionHeader](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionheader.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Header" }, "Json": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionJson" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionJson", + "markdownDescription": "Configures inspection of the response JSON\\. AWS WAF can inspect the first 65,536 bytes \\(64 KB\\) of the response JSON\\. \n*Required*: No \n*Type*: [ResponseInspectionJson](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionjson.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Json" }, "StatusCode": { - "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionStatusCode" + "$ref": "#/definitions/AWS::WAFv2::WebACL.ResponseInspectionStatusCode", + "markdownDescription": "Configures inspection of the response status code\\. \n*Required*: No \n*Type*: [ResponseInspectionStatusCode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-responseinspectionstatuscode.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "StatusCode" } }, "type": "object" @@ -192146,12 +192290,16 @@ "items": { "type": "string" }, + "markdownDescription": "Strings in the body of the response that indicate a failed login attempt\\. To be counted as a failed login, the string can be anywhere in the body and must be an exact match, including case\\. Each string must be unique among the success and failure strings\\. \nJSON example: `\"FailureStrings\": [ \"Login failed\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureStrings", "type": "array" }, "SuccessStrings": { "items": { "type": "string" }, + "markdownDescription": "Strings in the body of the response that indicate a successful login attempt\\. To be counted as a successful login, the string can be anywhere in the body and must be an exact match, including case\\. Each string must be unique among the success and failure strings\\. \nJSON example: `\"SuccessStrings\": [ \"Login successful\", \"Welcome to our site!\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessStrings", "type": "array" } }, @@ -192168,15 +192316,21 @@ "items": { "type": "string" }, + "markdownDescription": "Values in the response header with the specified name that indicate a failed login attempt\\. To be counted as a failed login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"FailureValues\": [ \"LoginFailed\", \"Failed login\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureValues", "type": "array" }, "Name": { + "markdownDescription": "The name of the header to match against\\. The name must be an exact match, including case\\. \nJSON example: `\"Name\": [ \"LoginResult\" ]` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `200` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Name", "type": "string" }, "SuccessValues": { "items": { "type": "string" }, + "markdownDescription": "Values in the response header with the specified name that indicate a successful login attempt\\. To be counted as a successful login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"SuccessValues\": [ \"LoginPassed\", \"Successful login\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `3` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessValues", "type": "array" } }, @@ -192194,15 +192348,21 @@ "items": { "type": "string" }, + "markdownDescription": "Values for the specified identifier in the response JSON that indicate a failed login attempt\\. To be counted as a failed login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"FailureValues\": [ \"False\", \"Failed\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureValues", "type": "array" }, "Identifier": { + "markdownDescription": "The identifier for the value to match against in the JSON\\. The identifier must be an exact match, including case\\. \nJSON example: `\"Identifier\": [ \"/login/success\" ]` \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `512` \n*Pattern*: `.*\\S.*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "Identifier", "type": "string" }, "SuccessValues": { "items": { "type": "string" }, + "markdownDescription": "Values for the specified identifier in the response JSON that indicate a successful login attempt\\. To be counted as a successful login, the value must be an exact match, including case\\. Each value must be unique among the success and failure values\\. \nJSON example: `\"SuccessValues\": [ \"True\", \"Succeeded\" ]` \n*Required*: Yes \n*Type*: List of String \n*Maximum*: `5` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessValues", "type": "array" } }, @@ -192220,12 +192380,16 @@ "items": { "type": "number" }, + "markdownDescription": "Status codes in the response that indicate a failed login attempt\\. To be counted as a failed login, the response status code must match one of these\\. Each code must be unique among the success and failure status codes\\. \nJSON example: `\"FailureCodes\": [ 400, 404 ]` \n*Required*: Yes \n*Type*: List of Integer \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "FailureCodes", "type": "array" }, "SuccessCodes": { "items": { "type": "number" }, + "markdownDescription": "Status codes in the response that indicate a successful login attempt\\. To be counted as a successful login, the response status code must match one of these\\. Each code must be unique among the success and failure status codes\\. \nJSON example: `\"SuccessCodes\": [ 200, 201 ]` \n*Required*: Yes \n*Type*: List of Integer \n*Maximum*: `10` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", + "title": "SuccessCodes", "type": "array" } }, @@ -192653,7 +192817,7 @@ "additionalProperties": false, "properties": { "ResourceArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId ` \n+ For an Amazon Cognito user pool: `arn:aws:cognito-idp:region:account-id:userpool/user-pool-id ` \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the resource to associate with the web ACL\\. \nThe ARN must be in one of the following formats: \n+ For an Application Load Balancer: `arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id ` \n+ For an Amazon API Gateway REST API: `arn:aws:apigateway:region::/restapis/api-id/stages/stage-name ` \n+ For an AWS AppSync GraphQL API: `arn:aws:appsync:region:account-id:apis/GraphQLApiId ` \n+ For an Amazon Cognito user pool: `arn:aws:cognito-idp:region:account-id:userpool/user-pool-id ` \n+ For an AWS App Runner service: `arn:aws:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id ` \n*Required*: Yes \n*Type*: String \n*Minimum*: `20` \n*Maximum*: `2048` \n*Pattern*: `.*\\S.*` \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", "title": "ResourceArn", "type": "string" }, From 3628b8e3f7d5fe739e5390f5d7841aca6a230d8c Mon Sep 17 00:00:00 2001 From: GZ Date: Thu, 9 Mar 2023 16:52:09 -0800 Subject: [PATCH 11/32] fix: Fix add transform test (#3010) --- bin/add_transform_test.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/add_transform_test.py b/bin/add_transform_test.py index 2cc39f895..a6f68d0ba 100755 --- a/bin/add_transform_test.py +++ b/bin/add_transform_test.py @@ -6,6 +6,7 @@ import shutil import subprocess import sys +from copy import deepcopy from pathlib import Path from typing import Any, Dict @@ -86,7 +87,8 @@ def generate_transform_test_output_files(input_file_path: str, file_basename: st for partition, (region, output_path) in transform_test_output_paths.items(): # Set Boto Session Region to guarantee the same hash input as transform tests for API deployment id ArnGenerator.BOTO_SESSION_REGION_NAME = region - output_fragment = transform(manifest, {}, ManagedPolicyLoader(iam_client)) + # Implicit API Plugin may alter input template file, thus passing a copy here. + output_fragment = transform(deepcopy(manifest), {}, ManagedPolicyLoader(iam_client)) if not CLI_OPTIONS.disable_api_configuration and partition != "aws": output_fragment = add_regional_endpoint_configuration_if_needed(output_fragment) From b4474ad48f0f56f3f68d8abea10e8859ee7e4b6e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 10:00:18 -0800 Subject: [PATCH 12/32] chore(schema): update (#3009) Co-authored-by: github-actions Co-authored-by: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> --- samtranslator/schema/schema.json | 135 +++++++++++------------ schema_source/cloudformation.schema.json | 135 +++++++++++------------ 2 files changed, 126 insertions(+), 144 deletions(-) diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 1921a6c04..a36f90e39 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -10099,6 +10099,9 @@ "markdownDescription": "Indicates whether the connector profile applies to a sandbox or production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "isSandboxEnvironment", "type": "boolean" + }, + "usePrivateLinkForMetadataAndAuthorization": { + "type": "boolean" } }, "type": "object" @@ -11553,6 +11556,9 @@ "AWS::AppFlow::Flow.TriggerConfig": { "additionalProperties": false, "properties": { + "ActivateFlowOnCreate": { + "type": "boolean" + }, "TriggerProperties": { "$ref": "#/definitions/AWS::AppFlow::Flow.ScheduledTriggerProperties", "markdownDescription": "Specifies the configuration details of a schedule\\-triggered flow as defined by the user\\. Currently, these settings only apply to the `Scheduled` trigger type\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -11928,60 +11934,6 @@ ], "type": "object" }, - "AWS::AppIntegrations::EventIntegration.EventIntegrationAssociation": { - "additionalProperties": false, - "properties": { - "ClientAssociationMetadata": { - "items": { - "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.Metadata" - }, - "markdownDescription": "The metadata associated with the client\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "ClientAssociationMetadata", - "type": "array" - }, - "ClientId": { - "markdownDescription": "The identifier for the client that is associated with the event integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "ClientId", - "type": "string" - }, - "EventBridgeRuleName": { - "markdownDescription": "The name of the EventBridge rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "EventBridgeRuleName", - "type": "string" - }, - "EventIntegrationAssociationArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "EventIntegrationAssociationArn", - "type": "string" - }, - "EventIntegrationAssociationId": { - "markdownDescription": "The identifier for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "EventIntegrationAssociationId", - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppIntegrations::EventIntegration.Metadata": { - "additionalProperties": false, - "properties": { - "Key": { - "markdownDescription": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "Key", - "type": "string" - }, - "Value": { - "markdownDescription": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "Value", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, "AWS::AppMesh::GatewayRoute": { "additionalProperties": false, "properties": { @@ -52686,6 +52638,9 @@ "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified replica\\. When not specified, defaults to contributor insights disabled for the replica\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ContributorInsightsSpecification" }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, "GlobalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification" @@ -135759,22 +135714,7 @@ }, "AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": { - "PresetSpeke20Audio": { - "markdownDescription": "A collection of audio encryption presets\\. \nValue description: \n+ `PRESET-AUDIO-1` \\- Use one content key to encrypt all of the audio tracks in your stream\\.\n+ `PRESET-AUDIO-2` \\- Use one content key to encrypt all of the stereo audio tracks and one content key to encrypt all of the multichannel audio tracks\\.\n+ `PRESET-AUDIO-3` \\- Use one content key to encrypt all of the stereo audio tracks, one content key to encrypt all of the multichannel audio tracks with 3 to 6 channels, and one content key to encrypt all of the multichannel audio tracks with more than 6 channels\\.\n+ `SHARED` \\- Use the same content key for all of the audio and video tracks in your stream\\.\n+ `UNENCRYPTED` \\- Don't encrypt any of the audio tracks in your stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "PresetSpeke20Audio", - "type": "string" - }, - "PresetSpeke20Video": { - "markdownDescription": "A collection of video encryption presets\\. \nValue description: \n+ `PRESET-VIDEO-1` \\- Use one content key to encrypt all of the video tracks in your stream\\.\n+ `PRESET-VIDEO-2` \\- Use one content key to encrypt all of the SD video tracks and one content key for all HD and higher resolutions video tracks\\.\n+ `PRESET-VIDEO-3` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD video tracks and one content key for all UHD video tracks\\.\n+ `PRESET-VIDEO-4` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD video tracks, one content key for all UHD1 video tracks and one content key for all UHD2 video tracks\\.\n+ `PRESET-VIDEO-5` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD1 video tracks, one content key for HD2 video tracks, one content key for all UHD1 video tracks and one content key for all UHD2 video tracks\\.\n+ `PRESET-VIDEO-6` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD1 video tracks, one content key for HD2 video tracks and one content key for all UHD video tracks\\.\n+ `PRESET-VIDEO-7` \\- Use one content key to encrypt all of the SD\\+HD1 video tracks, one content key for HD2 video tracks and one content key for all UHD video tracks\\.\n+ `PRESET-VIDEO-8` \\- Use one content key to encrypt all of the SD\\+HD1 video tracks, one content key for HD2 video tracks, one content key for all UHD1 video tracks and one content key for all UHD2 video tracks\\.\n+ `SHARED` \\- Use the same content key for all of the video and audio tracks in your stream\\.\n+ `UNENCRYPTED` \\- Don't encrypt any of the video tracks in your stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "PresetSpeke20Video", - "type": "string" - } - }, - "required": [ - "PresetSpeke20Audio", - "PresetSpeke20Video" - ], + "properties": {}, "type": "object" }, "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { @@ -182001,6 +181941,9 @@ "title": "ReplaceProvisioningArtifacts", "type": "boolean" }, + "SourceConnection": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.SourceConnection" + }, "SupportDescription": { "markdownDescription": "The support information about the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SupportDescription", @@ -182027,8 +181970,7 @@ }, "required": [ "Name", - "Owner", - "ProvisioningArtifactParameters" + "Owner" ], "type": "object" }, @@ -182053,6 +181995,39 @@ ], "type": "object" }, + "AWS::ServiceCatalog::CloudFormationProduct.CodeStarParameters": { + "additionalProperties": false, + "properties": { + "ArtifactPath": { + "type": "string" + }, + "Branch": { + "type": "string" + }, + "ConnectionArn": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "ArtifactPath", + "Branch", + "ConnectionArn", + "Repository" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProduct.ConnectionParameters": { + "additionalProperties": false, + "properties": { + "CodeStar": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.CodeStarParameters" + } + }, + "type": "object" + }, "AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties": { "additionalProperties": false, "properties": { @@ -182082,6 +182057,22 @@ ], "type": "object" }, + "AWS::ServiceCatalog::CloudFormationProduct.SourceConnection": { + "additionalProperties": false, + "properties": { + "ConnectionParameters": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.ConnectionParameters" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ConnectionParameters", + "Type" + ], + "type": "object" + }, "AWS::ServiceCatalog::CloudFormationProvisionedProduct": { "additionalProperties": false, "properties": { diff --git a/schema_source/cloudformation.schema.json b/schema_source/cloudformation.schema.json index 81558363d..756d8e6f2 100644 --- a/schema_source/cloudformation.schema.json +++ b/schema_source/cloudformation.schema.json @@ -10085,6 +10085,9 @@ "markdownDescription": "Indicates whether the connector profile applies to a sandbox or production environment\\. \n*Required*: No \n*Type*: Boolean \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "isSandboxEnvironment", "type": "boolean" + }, + "usePrivateLinkForMetadataAndAuthorization": { + "type": "boolean" } }, "type": "object" @@ -11539,6 +11542,9 @@ "AWS::AppFlow::Flow.TriggerConfig": { "additionalProperties": false, "properties": { + "ActivateFlowOnCreate": { + "type": "boolean" + }, "TriggerProperties": { "$ref": "#/definitions/AWS::AppFlow::Flow.ScheduledTriggerProperties", "markdownDescription": "Specifies the configuration details of a schedule\\-triggered flow as defined by the user\\. Currently, these settings only apply to the `Scheduled` trigger type\\. \n*Required*: No \n*Type*: [ScheduledTriggerProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -11914,60 +11920,6 @@ ], "type": "object" }, - "AWS::AppIntegrations::EventIntegration.EventIntegrationAssociation": { - "additionalProperties": false, - "properties": { - "ClientAssociationMetadata": { - "items": { - "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.Metadata" - }, - "markdownDescription": "The metadata associated with the client\\. \n*Required*: No \n*Type*: List of [Metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "ClientAssociationMetadata", - "type": "array" - }, - "ClientId": { - "markdownDescription": "The identifier for the client that is associated with the event integration\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "ClientId", - "type": "string" - }, - "EventBridgeRuleName": { - "markdownDescription": "The name of the EventBridge rule\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "EventBridgeRuleName", - "type": "string" - }, - "EventIntegrationAssociationArn": { - "markdownDescription": "The Amazon Resource Name \\(ARN\\) for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "EventIntegrationAssociationArn", - "type": "string" - }, - "EventIntegrationAssociationId": { - "markdownDescription": "The identifier for the event integration association\\. \n*Required*: No \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "EventIntegrationAssociationId", - "type": "string" - } - }, - "type": "object" - }, - "AWS::AppIntegrations::EventIntegration.Metadata": { - "additionalProperties": false, - "properties": { - "Key": { - "markdownDescription": "The key name\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "Key", - "type": "string" - }, - "Value": { - "markdownDescription": "The value\\. \n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "Value", - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, "AWS::AppMesh::GatewayRoute": { "additionalProperties": false, "properties": { @@ -52665,6 +52617,9 @@ "markdownDescription": "The settings used to enable or disable CloudWatch Contributor Insights for the specified replica\\. When not specified, defaults to contributor insights disabled for the replica\\. \n*Required*: No \n*Type*: [ContributorInsightsSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html) \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "ContributorInsightsSpecification" }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, "GlobalSecondaryIndexes": { "items": { "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification" @@ -135717,22 +135672,7 @@ }, "AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration": { "additionalProperties": false, - "properties": { - "PresetSpeke20Audio": { - "markdownDescription": "A collection of audio encryption presets\\. \nValue description: \n+ `PRESET-AUDIO-1` \\- Use one content key to encrypt all of the audio tracks in your stream\\.\n+ `PRESET-AUDIO-2` \\- Use one content key to encrypt all of the stereo audio tracks and one content key to encrypt all of the multichannel audio tracks\\.\n+ `PRESET-AUDIO-3` \\- Use one content key to encrypt all of the stereo audio tracks, one content key to encrypt all of the multichannel audio tracks with 3 to 6 channels, and one content key to encrypt all of the multichannel audio tracks with more than 6 channels\\.\n+ `SHARED` \\- Use the same content key for all of the audio and video tracks in your stream\\.\n+ `UNENCRYPTED` \\- Don't encrypt any of the audio tracks in your stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "PresetSpeke20Audio", - "type": "string" - }, - "PresetSpeke20Video": { - "markdownDescription": "A collection of video encryption presets\\. \nValue description: \n+ `PRESET-VIDEO-1` \\- Use one content key to encrypt all of the video tracks in your stream\\.\n+ `PRESET-VIDEO-2` \\- Use one content key to encrypt all of the SD video tracks and one content key for all HD and higher resolutions video tracks\\.\n+ `PRESET-VIDEO-3` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD video tracks and one content key for all UHD video tracks\\.\n+ `PRESET-VIDEO-4` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD video tracks, one content key for all UHD1 video tracks and one content key for all UHD2 video tracks\\.\n+ `PRESET-VIDEO-5` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD1 video tracks, one content key for HD2 video tracks, one content key for all UHD1 video tracks and one content key for all UHD2 video tracks\\.\n+ `PRESET-VIDEO-6` \\- Use one content key to encrypt all of the SD video tracks, one content key for HD1 video tracks, one content key for HD2 video tracks and one content key for all UHD video tracks\\.\n+ `PRESET-VIDEO-7` \\- Use one content key to encrypt all of the SD\\+HD1 video tracks, one content key for HD2 video tracks and one content key for all UHD video tracks\\.\n+ `PRESET-VIDEO-8` \\- Use one content key to encrypt all of the SD\\+HD1 video tracks, one content key for HD2 video tracks, one content key for all UHD1 video tracks and one content key for all UHD2 video tracks\\.\n+ `SHARED` \\- Use the same content key for all of the video and audio tracks in your stream\\.\n+ `UNENCRYPTED` \\- Don't encrypt any of the video tracks in your stream\\.\n*Required*: Yes \n*Type*: String \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", - "title": "PresetSpeke20Video", - "type": "string" - } - }, - "required": [ - "PresetSpeke20Audio", - "PresetSpeke20Video" - ], + "properties": {}, "type": "object" }, "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { @@ -181938,6 +181878,9 @@ "title": "ReplaceProvisioningArtifacts", "type": "boolean" }, + "SourceConnection": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.SourceConnection" + }, "SupportDescription": { "markdownDescription": "The support information about the product\\. \n*Required*: No \n*Type*: String \n*Maximum*: `8191` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "SupportDescription", @@ -181964,8 +181907,7 @@ }, "required": [ "Name", - "Owner", - "ProvisioningArtifactParameters" + "Owner" ], "type": "object" }, @@ -181990,6 +181932,39 @@ ], "type": "object" }, + "AWS::ServiceCatalog::CloudFormationProduct.CodeStarParameters": { + "additionalProperties": false, + "properties": { + "ArtifactPath": { + "type": "string" + }, + "Branch": { + "type": "string" + }, + "ConnectionArn": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "ArtifactPath", + "Branch", + "ConnectionArn", + "Repository" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProduct.ConnectionParameters": { + "additionalProperties": false, + "properties": { + "CodeStar": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.CodeStarParameters" + } + }, + "type": "object" + }, "AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties": { "additionalProperties": false, "properties": { @@ -182019,6 +181994,22 @@ ], "type": "object" }, + "AWS::ServiceCatalog::CloudFormationProduct.SourceConnection": { + "additionalProperties": false, + "properties": { + "ConnectionParameters": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.ConnectionParameters" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ConnectionParameters", + "Type" + ], + "type": "object" + }, "AWS::ServiceCatalog::CloudFormationProvisionedProduct": { "additionalProperties": false, "properties": { From a0208ddfc78b4eaaba4049e3cc88539c6597648f Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Fri, 10 Mar 2023 14:28:19 -0800 Subject: [PATCH 13/32] chore: Add integration test service detector for SNS FilterPolicyScope (#3015) --- integration/config/service_names.py | 2 +- integration/helpers/resource.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/integration/config/service_names.py b/integration/config/service_names.py index 1bb88e5de..7be20e4f1 100644 --- a/integration/config/service_names.py +++ b/integration/config/service_names.py @@ -22,7 +22,6 @@ SNS = "SNS" SQS = "SQS" CUSTOM_DOMAIN = "CustomDomain" -ARM = "ARM" EFS = "EFS" S3_EVENTS = "S3Events" SELF_MANAGED_KAFKA = "SelfManagedKafka" @@ -36,3 +35,4 @@ EPHEMERAL_STORAGE = "EphemeralStorage" API_KEY = "ApiKey" APP_SYNC = "AppSync" +SNS_FILTER_POLICY_SCOPE = "SnsFilterPolicyScope" diff --git a/integration/helpers/resource.py b/integration/helpers/resource.py index ed1adb4e2..dccdbb43c 100644 --- a/integration/helpers/resource.py +++ b/integration/helpers/resource.py @@ -2,7 +2,7 @@ import random import re import string # pylint: disable=deprecated-module -from typing import Any, Callable, Dict, Set +from typing import Any, Callable, Dict, Iterator, Set from integration.config.service_names import ( APP_SYNC, @@ -12,6 +12,7 @@ REST_API, S3_EVENTS, SCHEDULE_EVENT, + SNS_FILTER_POLICY_SCOPE, SQS, STATE_MACHINE_INLINE_DEFINITION, ) @@ -210,6 +211,17 @@ def _resource_using_s3_events(resource: Dict[str, Any]) -> bool: return resource_type == "AWS::S3::Bucket" and properties.get("NotificationConfiguration") +def _get_all_event_sources(template_dict: Dict[str, Any]) -> Iterator[Dict[str, Any]]: + resources = template_dict.get("Resources", {}).values() + for resource in resources: + for event in resource.get("Properties", {}).get("Events", {}).values(): + yield event + + +def _event_using_sns_filter_policy_scope(event: Dict[str, Any]) -> bool: + return event["Type"] == "SNS" and "FilterPolicyScope" in event.get("Properties", {}) + + SERVICE_DETECTORS: Dict[str, Callable[[Dict[str, Any], Set[str]], bool]] = { HTTP_API: lambda template_dict, cfn_resource_types: "AWS::ApiGatewayV2::Api" in cfn_resource_types, REST_API: lambda template_dict, cfn_resource_types: "AWS::ApiGateway::RestApi" in cfn_resource_types, @@ -225,6 +237,9 @@ def _resource_using_s3_events(resource: Dict[str, Any]) -> bool: ), LOCATION: lambda template_dict, cfn_resource_types: "AWS::Location::PlaceIndex" in cfn_resource_types, APP_SYNC: lambda template_dict, cfn_resource_types: "AWS::AppSync::GraphQLApi" in cfn_resource_types, + SNS_FILTER_POLICY_SCOPE: lambda template_dict, cfn_resource_types: any( + _event_using_sns_filter_policy_scope(event) for event in _get_all_event_sources(template_dict) + ), } From 699882e9cba2e1009c7827bf94a82dc863a70977 Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Fri, 10 Mar 2023 14:37:17 -0800 Subject: [PATCH 14/32] chore: Add skip_using_service_detector to sns integ tests (#3016) --- integration/combination/test_function_with_sns.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/integration/combination/test_function_with_sns.py b/integration/combination/test_function_with_sns.py index 5dfc1a885..a05789769 100644 --- a/integration/combination/test_function_with_sns.py +++ b/integration/combination/test_function_with_sns.py @@ -8,7 +8,9 @@ @skipIf(current_region_does_not_support([SNS]), "SNS is not supported in this testing region") class TestFunctionWithSns(BaseTest): def test_function_with_sns_bucket_trigger(self): - self.create_and_verify_stack("combination/function_with_sns") + template_file_path = "combination/function_with_sns" + self.skip_using_service_detector(template_file_path) + self.create_and_verify_stack(template_file_path) sns_client = self.client_provider.sns_client @@ -33,7 +35,9 @@ def test_function_with_sns_bucket_trigger(self): self.assertEqual(sqs_subscription["TopicArn"], sns_topic_arn) def test_function_with_sns_intrinsics(self): - self.create_and_verify_stack("combination/function_with_sns_intrinsics") + template_file_path = "combination/function_with_sns_intrinsics" + self.skip_using_service_detector(template_file_path) + self.create_and_verify_stack(template_file_path) sns_client = self.client_provider.sns_client From d6c04688375e848d0c40213d3f7d8de8d35879a7 Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Fri, 10 Mar 2023 14:46:52 -0800 Subject: [PATCH 15/32] ci: Trigger gh actions on merge group (#3017) --- .github/workflows/build.yml | 2 ++ .github/workflows/check_compatibility.yml | 2 ++ .github/workflows/codeql.yml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ba758f6d..b21c39d89 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,6 +7,8 @@ on: - "feat-*" pull_request: workflow_dispatch: + merge_group: + types: [checks_requested] jobs: build: diff --git a/.github/workflows/check_compatibility.yml b/.github/workflows/check_compatibility.yml index bc6821ae9..034627c46 100644 --- a/.github/workflows/check_compatibility.yml +++ b/.github/workflows/check_compatibility.yml @@ -2,6 +2,8 @@ name: Check compatibility on: pull_request: + merge_group: + types: [checks_requested] jobs: check-compatibility: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index efdb6150a..1ce26ccd0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -17,6 +17,8 @@ on: pull_request: # The branches below must be a subset of the branches above branches: [ "develop" ] + merge_group: + types: [checks_requested] schedule: - cron: '43 23 * * 2' From 089859ee77c8b6609fe968d703a027b461bf7886 Mon Sep 17 00:00:00 2001 From: Connor Robertson Date: Fri, 10 Mar 2023 14:48:48 -0800 Subject: [PATCH 16/32] fix: Defining CORS when ApiKeyRequired is true results in an OPTIONS method that requires an API key (#2981) Co-authored-by: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> --- integration/combination/test_api_with_cors.py | 1 + .../combination/api_with_cors_and_apikey.json | 26 ++ .../combination/api_with_cors_and_apikey.yaml | 87 +++++ .../schema_source/aws_serverless_api.py | 1 + samtranslator/model/api/api_generator.py | 9 +- samtranslator/schema/schema.json | 4 + samtranslator/swagger/swagger.py | 9 +- schema_source/sam.schema.json | 4 + .../input/api_with_cors_and_apikey.yaml | 87 +++++ ..._cors_and_apikey_defined_at_api_level.yaml | 66 ++++ .../output/api_with_cors_and_apikey.json | 297 +++++++++++++++++ ..._cors_and_apikey_defined_at_api_level.json | 200 ++++++++++++ .../aws-cn/api_with_cors_and_apikey.json | 305 ++++++++++++++++++ ..._cors_and_apikey_defined_at_api_level.json | 208 ++++++++++++ .../aws-us-gov/api_with_cors_and_apikey.json | 305 ++++++++++++++++++ ..._cors_and_apikey_defined_at_api_level.json | 208 ++++++++++++ 16 files changed, 1812 insertions(+), 5 deletions(-) create mode 100644 integration/resources/expected/combination/api_with_cors_and_apikey.json create mode 100644 integration/resources/templates/combination/api_with_cors_and_apikey.yaml create mode 100644 tests/translator/input/api_with_cors_and_apikey.yaml create mode 100644 tests/translator/input/api_with_cors_and_apikey_defined_at_api_level.yaml create mode 100644 tests/translator/output/api_with_cors_and_apikey.json create mode 100644 tests/translator/output/api_with_cors_and_apikey_defined_at_api_level.json create mode 100644 tests/translator/output/aws-cn/api_with_cors_and_apikey.json create mode 100644 tests/translator/output/aws-cn/api_with_cors_and_apikey_defined_at_api_level.json create mode 100644 tests/translator/output/aws-us-gov/api_with_cors_and_apikey.json create mode 100644 tests/translator/output/aws-us-gov/api_with_cors_and_apikey_defined_at_api_level.json diff --git a/integration/combination/test_api_with_cors.py b/integration/combination/test_api_with_cors.py index 55fab2777..e6babcc8f 100644 --- a/integration/combination/test_api_with_cors.py +++ b/integration/combination/test_api_with_cors.py @@ -15,6 +15,7 @@ class TestApiWithCors(BaseTest): [ "combination/api_with_cors", "combination/api_with_cors_openapi", + "combination/api_with_cors_and_apikey", ] ) def test_cors(self, file_name): diff --git a/integration/resources/expected/combination/api_with_cors_and_apikey.json b/integration/resources/expected/combination/api_with_cors_and_apikey.json new file mode 100644 index 000000000..503bbd9b7 --- /dev/null +++ b/integration/resources/expected/combination/api_with_cors_and_apikey.json @@ -0,0 +1,26 @@ +[ + { + "LogicalResourceId": "MyApi", + "ResourceType": "AWS::ApiGateway::RestApi" + }, + { + "LogicalResourceId": "MyApiDeployment", + "ResourceType": "AWS::ApiGateway::Deployment" + }, + { + "LogicalResourceId": "MyApidevStage", + "ResourceType": "AWS::ApiGateway::Stage" + }, + { + "LogicalResourceId": "ApiGatewayLambdaRole", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "MyFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "MyFunctionRole", + "ResourceType": "AWS::IAM::Role" + } +] diff --git a/integration/resources/templates/combination/api_with_cors_and_apikey.yaml b/integration/resources/templates/combination/api_with_cors_and_apikey.yaml new file mode 100644 index 000000000..d005a1429 --- /dev/null +++ b/integration/resources/templates/combination/api_with_cors_and_apikey.yaml @@ -0,0 +1,87 @@ +AWSTemplateFormatVersion: '2010-09-09' + +Transform: +- AWS::Serverless-2016-10-31 + +Globals: + Api: + Auth: + ApiKeyRequired: true + AddApiKeyRequiredToCorsPreflight: false + +Resources: + + MyFunction: + Type: AWS::Serverless::Function + Properties: + Handler: index.handler + InlineCode: | + exports.handler = async function (event) { + return { + statusCode: 200, + body: JSON.stringify({ message: "Hello, SAM!" }), + } + } + Runtime: nodejs16.x + + ApiGatewayLambdaRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: {Service: apigateway.amazonaws.com} + Action: sts:AssumeRole + Policies: + - PolicyName: AllowInvokeLambdaFunctions + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: lambda:InvokeFunction + Resource: '*' + + MyApi: + Type: AWS::Serverless::Api + Properties: + Cors: + AllowMethods: "'methods'" + AllowHeaders: "'headers'" + AllowOrigin: "'origins'" + MaxAge: "'600'" + Auth: + ApiKeyRequired: true + StageName: dev + DefinitionBody: + openapi: 3.0.1 + paths: + /apione: + get: + x-amazon-apigateway-integration: + credentials: + Fn::Sub: ${ApiGatewayLambdaRole.Arn} + uri: + Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations + passthroughBehavior: when_no_match + httpMethod: POST + type: aws_proxy + /apitwo: + get: + x-amazon-apigateway-integration: + credentials: + Fn::Sub: ${ApiGatewayLambdaRole.Arn} + uri: + Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations + passthroughBehavior: when_no_match + httpMethod: POST + type: aws_proxy + + + +Outputs: + ApiUrl: + Description: URL of your API endpoint + Value: !Sub "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/" +Metadata: + SamTransformTest: true diff --git a/samtranslator/internal/schema_source/aws_serverless_api.py b/samtranslator/internal/schema_source/aws_serverless_api.py index e43e9242d..6509f5c8a 100644 --- a/samtranslator/internal/schema_source/aws_serverless_api.py +++ b/samtranslator/internal/schema_source/aws_serverless_api.py @@ -100,6 +100,7 @@ class UsagePlan(BaseModel): class Auth(BaseModel): AddDefaultAuthorizerToCorsPreflight: Optional[bool] = auth("AddDefaultAuthorizerToCorsPreflight") + AddApiKeyRequiredToCorsPreflight: Optional[bool] # TODO Add Docs ApiKeyRequired: Optional[bool] = auth("ApiKeyRequired") Authorizers: Optional[ Dict[ diff --git a/samtranslator/model/api/api_generator.py b/samtranslator/model/api/api_generator.py index 5c84da483..bb03a827f 100644 --- a/samtranslator/model/api/api_generator.py +++ b/samtranslator/model/api/api_generator.py @@ -52,12 +52,13 @@ "DefaultAuthorizer", "InvokeRole", "AddDefaultAuthorizerToCorsPreflight", + "AddApiKeyRequiredToCorsPreflight", "ApiKeyRequired", "ResourcePolicy", "UsagePlan", ], ) -AuthProperties.__new__.__defaults__ = (None, None, None, True, None, None, None) +AuthProperties.__new__.__defaults__ = (None, None, None, True, True, None, None, None) UsagePlanProperties = namedtuple( "UsagePlanProperties", ["CreateUsagePlan", "Description", "Quota", "Tags", "Throttle", "UsagePlanName"] ) @@ -752,7 +753,7 @@ def _add_auth(self) -> None: if auth_properties.ApiKeyRequired: swagger_editor.add_apikey_security_definition() - self._set_default_apikey_required(swagger_editor) + self._set_default_apikey_required(swagger_editor, auth_properties.AddApiKeyRequiredToCorsPreflight) if auth_properties.ResourcePolicy: SwaggerEditor.validate_is_dict( @@ -1224,9 +1225,9 @@ def _set_default_authorizer( add_default_auth_to_preflight=add_default_auth_to_preflight, ) - def _set_default_apikey_required(self, swagger_editor: SwaggerEditor) -> None: + def _set_default_apikey_required(self, swagger_editor: SwaggerEditor, required_options_api_key: bool) -> None: for path in swagger_editor.iter_on_path(): - swagger_editor.set_path_default_apikey_required(path) + swagger_editor.set_path_default_apikey_required(path, required_options_api_key) def _set_endpoint_configuration(self, rest_api: ApiGatewayRestApi, value: Union[str, Dict[str, Any]]) -> None: """ diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index a36f90e39..25992893e 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -197274,6 +197274,10 @@ "samtranslator__internal__schema_source__aws_serverless_api__Auth": { "additionalProperties": false, "properties": { + "AddApiKeyRequiredToCorsPreflight": { + "title": "Addapikeyrequiredtocorspreflight", + "type": "boolean" + }, "AddDefaultAuthorizerToCorsPreflight": { "description": "If the `DefaultAuthorizer` and `Cors` properties are set, then setting `AddDefaultAuthorizerToCorsPreflight` will cause the default authorizer to be added to the `Options` property in the OpenAPI section\\. \n*Type*: Boolean \n*Required*: No \n*Default*: True \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "markdownDescription": "If the `DefaultAuthorizer` and `Cors` properties are set, then setting `AddDefaultAuthorizerToCorsPreflight` will cause the default authorizer to be added to the `Options` property in the OpenAPI section\\. \n*Type*: Boolean \n*Required*: No \n*Default*: True \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", diff --git a/samtranslator/swagger/swagger.py b/samtranslator/swagger/swagger.py index d5a74909d..96e57d53c 100644 --- a/samtranslator/swagger/swagger.py +++ b/samtranslator/swagger/swagger.py @@ -612,7 +612,7 @@ def set_path_default_authorizer( # noqa: too-many-branches if "AWS_IAM" in method_definition["security"][0]: self.add_awsiam_security_definition() - def set_path_default_apikey_required(self, path: str) -> None: + def set_path_default_apikey_required(self, path: str, required_options_api_key: bool = True) -> None: """ Add the ApiKey security as required for each method on this path unless ApiKeyRequired was defined at the Function/Path/Method level. This is intended to be used to set the @@ -620,6 +620,8 @@ def set_path_default_apikey_required(self, path: str) -> None: Serverless API. :param string path: Path name + :param bool required_options_api_key: Bool of whether to add the ApiKeyRequired + to OPTIONS preflight requests. """ for method_name, method_definition in self.iter_on_all_methods_for_path(path): # type: ignore[no-untyped-call] @@ -673,6 +675,9 @@ def set_path_default_apikey_required(self, path: str) -> None: security = existing_non_apikey_security + apikey_security + if method_name == "options" and not required_options_api_key: + security = existing_non_apikey_security + if security != existing_security: method_definition["security"] = security @@ -691,10 +696,12 @@ def add_auth_to_method(self, path: str, method_name: str, auth: Dict[str, Any], method_scopes = auth and auth.get("AuthorizationScopes") api_auth = api and api.get("Auth") authorizers = api_auth and api_auth.get("Authorizers") + if method_authorizer: self._set_method_authorizer(path, method_name, method_authorizer, authorizers, method_scopes) # type: ignore[no-untyped-call] method_apikey_required = auth and auth.get("ApiKeyRequired") + if method_apikey_required is not None: self._set_method_apikey_handling(path, method_name, method_apikey_required) # type: ignore[no-untyped-call] diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index b5982d11c..60ad7ea81 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -3015,6 +3015,10 @@ "samtranslator__internal__schema_source__aws_serverless_api__Auth": { "additionalProperties": false, "properties": { + "AddApiKeyRequiredToCorsPreflight": { + "title": "Addapikeyrequiredtocorspreflight", + "type": "boolean" + }, "AddDefaultAuthorizerToCorsPreflight": { "description": "If the `DefaultAuthorizer` and `Cors` properties are set, then setting `AddDefaultAuthorizerToCorsPreflight` will cause the default authorizer to be added to the `Options` property in the OpenAPI section\\. \n*Type*: Boolean \n*Required*: No \n*Default*: True \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "markdownDescription": "If the `DefaultAuthorizer` and `Cors` properties are set, then setting `AddDefaultAuthorizerToCorsPreflight` will cause the default authorizer to be added to the `Options` property in the OpenAPI section\\. \n*Type*: Boolean \n*Required*: No \n*Default*: True \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", diff --git a/tests/translator/input/api_with_cors_and_apikey.yaml b/tests/translator/input/api_with_cors_and_apikey.yaml new file mode 100644 index 000000000..d005a1429 --- /dev/null +++ b/tests/translator/input/api_with_cors_and_apikey.yaml @@ -0,0 +1,87 @@ +AWSTemplateFormatVersion: '2010-09-09' + +Transform: +- AWS::Serverless-2016-10-31 + +Globals: + Api: + Auth: + ApiKeyRequired: true + AddApiKeyRequiredToCorsPreflight: false + +Resources: + + MyFunction: + Type: AWS::Serverless::Function + Properties: + Handler: index.handler + InlineCode: | + exports.handler = async function (event) { + return { + statusCode: 200, + body: JSON.stringify({ message: "Hello, SAM!" }), + } + } + Runtime: nodejs16.x + + ApiGatewayLambdaRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: {Service: apigateway.amazonaws.com} + Action: sts:AssumeRole + Policies: + - PolicyName: AllowInvokeLambdaFunctions + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: lambda:InvokeFunction + Resource: '*' + + MyApi: + Type: AWS::Serverless::Api + Properties: + Cors: + AllowMethods: "'methods'" + AllowHeaders: "'headers'" + AllowOrigin: "'origins'" + MaxAge: "'600'" + Auth: + ApiKeyRequired: true + StageName: dev + DefinitionBody: + openapi: 3.0.1 + paths: + /apione: + get: + x-amazon-apigateway-integration: + credentials: + Fn::Sub: ${ApiGatewayLambdaRole.Arn} + uri: + Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations + passthroughBehavior: when_no_match + httpMethod: POST + type: aws_proxy + /apitwo: + get: + x-amazon-apigateway-integration: + credentials: + Fn::Sub: ${ApiGatewayLambdaRole.Arn} + uri: + Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations + passthroughBehavior: when_no_match + httpMethod: POST + type: aws_proxy + + + +Outputs: + ApiUrl: + Description: URL of your API endpoint + Value: !Sub "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/" +Metadata: + SamTransformTest: true diff --git a/tests/translator/input/api_with_cors_and_apikey_defined_at_api_level.yaml b/tests/translator/input/api_with_cors_and_apikey_defined_at_api_level.yaml new file mode 100644 index 000000000..dcabe6bfb --- /dev/null +++ b/tests/translator/input/api_with_cors_and_apikey_defined_at_api_level.yaml @@ -0,0 +1,66 @@ +AWSTemplateFormatVersion: '2010-09-09' + +Transform: +- AWS::Serverless-2016-10-31 + +Resources: + + MyFunction: + Type: AWS::Serverless::Function + Properties: + Handler: index.handler + InlineCode: | + exports.handler = async function (event) { + return { + statusCode: 200, + body: JSON.stringify({ message: "Hello, SAM!" }), + } + } + Runtime: nodejs16.x + + ApiGatewayLambdaRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: {Service: apigateway.amazonaws.com} + Action: sts:AssumeRole + Policies: + - PolicyName: AllowInvokeLambdaFunctions + PolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Action: lambda:InvokeFunction + Resource: '*' + + MyApi: + Type: AWS::Serverless::Api + Properties: + Cors: "'*'" + Auth: + ApiKeyRequired: true + AddApiKeyRequiredToCorsPreflight: false + StageName: dev + DefinitionBody: + openapi: 3.0.1 + paths: + /hello: + get: + x-amazon-apigateway-integration: + credentials: + Fn::Sub: ${ApiGatewayLambdaRole.Arn} + uri: + Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations + passthroughBehavior: when_no_match + httpMethod: POST + type: aws_proxy + + + +Outputs: + WebEndpoint: + Description: API Gateway endpoint URL + Value: !Sub "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/hello" diff --git a/tests/translator/output/api_with_cors_and_apikey.json b/tests/translator/output/api_with_cors_and_apikey.json new file mode 100644 index 000000000..5f878d55c --- /dev/null +++ b/tests/translator/output/api_with_cors_and_apikey.json @@ -0,0 +1,297 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Metadata": { + "SamTransformTest": true + }, + "Outputs": { + "ApiUrl": { + "Description": "URL of your API endpoint", + "Value": { + "Fn::Sub": "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/" + } + } + }, + "Resources": { + "ApiGatewayLambdaRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AllowInvokeLambdaFunctions" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "api_key": { + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + } + }, + "openapi": "3.0.1", + "paths": { + "/apione": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Headers": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Max-Age": { + "schema": { + "schema": { + "type": "integer" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Headers": "'headers'", + "method.response.header.Access-Control-Allow-Methods": "'methods'", + "method.response.header.Access-Control-Allow-Origin": "'origins'", + "method.response.header.Access-Control-Max-Age": "'600'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + }, + "/apitwo": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Headers": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Max-Age": { + "schema": { + "schema": { + "type": "integer" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Headers": "'headers'", + "method.response.header.Access-Control-Allow-Methods": "'methods'", + "method.response.header.Access-Control-Allow-Origin": "'origins'", + "method.response.header.Access-Control-Max-Age": "'600'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + } + } + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiDeployment996e54a322": { + "Properties": { + "Description": "RestApi deployment id: 996e54a3224f4396bddbafc7ca104cb3685eccdd", + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyApidevStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyApiDeployment996e54a322" + }, + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "dev" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async function (event) {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: \"Hello, SAM!\" }),\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs16.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/api_with_cors_and_apikey_defined_at_api_level.json b/tests/translator/output/api_with_cors_and_apikey_defined_at_api_level.json new file mode 100644 index 000000000..eca1c0bdb --- /dev/null +++ b/tests/translator/output/api_with_cors_and_apikey_defined_at_api_level.json @@ -0,0 +1,200 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Outputs": { + "WebEndpoint": { + "Description": "API Gateway endpoint URL", + "Value": { + "Fn::Sub": "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/hello" + } + } + }, + "Resources": { + "ApiGatewayLambdaRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AllowInvokeLambdaFunctions" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "api_key": { + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + } + }, + "openapi": "3.0.1", + "paths": { + "/hello": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Methods": "'GET,OPTIONS'", + "method.response.header.Access-Control-Allow-Origin": "'*'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + } + } + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiDeploymentdb7bc48ce9": { + "Properties": { + "Description": "RestApi deployment id: db7bc48ce9273479c81f6c8c0b91862e71dbbef8", + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyApidevStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyApiDeploymentdb7bc48ce9" + }, + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "dev" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async function (event) {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: \"Hello, SAM!\" }),\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs16.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-cn/api_with_cors_and_apikey.json b/tests/translator/output/aws-cn/api_with_cors_and_apikey.json new file mode 100644 index 000000000..6050364a1 --- /dev/null +++ b/tests/translator/output/aws-cn/api_with_cors_and_apikey.json @@ -0,0 +1,305 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Metadata": { + "SamTransformTest": true + }, + "Outputs": { + "ApiUrl": { + "Description": "URL of your API endpoint", + "Value": { + "Fn::Sub": "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/" + } + } + }, + "Resources": { + "ApiGatewayLambdaRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AllowInvokeLambdaFunctions" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "api_key": { + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + } + }, + "openapi": "3.0.1", + "paths": { + "/apione": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Headers": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Max-Age": { + "schema": { + "schema": { + "type": "integer" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Headers": "'headers'", + "method.response.header.Access-Control-Allow-Methods": "'methods'", + "method.response.header.Access-Control-Allow-Origin": "'origins'", + "method.response.header.Access-Control-Max-Age": "'600'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + }, + "/apitwo": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Headers": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Max-Age": { + "schema": { + "schema": { + "type": "integer" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Headers": "'headers'", + "method.response.header.Access-Control-Allow-Methods": "'methods'", + "method.response.header.Access-Control-Allow-Origin": "'origins'", + "method.response.header.Access-Control-Max-Age": "'600'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + } + } + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiDeployment996e54a322": { + "Properties": { + "Description": "RestApi deployment id: 996e54a3224f4396bddbafc7ca104cb3685eccdd", + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyApidevStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyApiDeployment996e54a322" + }, + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "dev" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async function (event) {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: \"Hello, SAM!\" }),\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs16.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-cn/api_with_cors_and_apikey_defined_at_api_level.json b/tests/translator/output/aws-cn/api_with_cors_and_apikey_defined_at_api_level.json new file mode 100644 index 000000000..372a3d807 --- /dev/null +++ b/tests/translator/output/aws-cn/api_with_cors_and_apikey_defined_at_api_level.json @@ -0,0 +1,208 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Outputs": { + "WebEndpoint": { + "Description": "API Gateway endpoint URL", + "Value": { + "Fn::Sub": "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/hello" + } + } + }, + "Resources": { + "ApiGatewayLambdaRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AllowInvokeLambdaFunctions" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "api_key": { + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + } + }, + "openapi": "3.0.1", + "paths": { + "/hello": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Methods": "'GET,OPTIONS'", + "method.response.header.Access-Control-Allow-Origin": "'*'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + } + } + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiDeploymentdb7bc48ce9": { + "Properties": { + "Description": "RestApi deployment id: db7bc48ce9273479c81f6c8c0b91862e71dbbef8", + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyApidevStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyApiDeploymentdb7bc48ce9" + }, + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "dev" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async function (event) {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: \"Hello, SAM!\" }),\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs16.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-us-gov/api_with_cors_and_apikey.json b/tests/translator/output/aws-us-gov/api_with_cors_and_apikey.json new file mode 100644 index 000000000..78e299269 --- /dev/null +++ b/tests/translator/output/aws-us-gov/api_with_cors_and_apikey.json @@ -0,0 +1,305 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Metadata": { + "SamTransformTest": true + }, + "Outputs": { + "ApiUrl": { + "Description": "URL of your API endpoint", + "Value": { + "Fn::Sub": "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/" + } + } + }, + "Resources": { + "ApiGatewayLambdaRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AllowInvokeLambdaFunctions" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "api_key": { + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + } + }, + "openapi": "3.0.1", + "paths": { + "/apione": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Headers": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Max-Age": { + "schema": { + "schema": { + "type": "integer" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Headers": "'headers'", + "method.response.header.Access-Control-Allow-Methods": "'methods'", + "method.response.header.Access-Control-Allow-Origin": "'origins'", + "method.response.header.Access-Control-Max-Age": "'600'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + }, + "/apitwo": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Headers": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Max-Age": { + "schema": { + "schema": { + "type": "integer" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Headers": "'headers'", + "method.response.header.Access-Control-Allow-Methods": "'methods'", + "method.response.header.Access-Control-Allow-Origin": "'origins'", + "method.response.header.Access-Control-Max-Age": "'600'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + } + } + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiDeployment996e54a322": { + "Properties": { + "Description": "RestApi deployment id: 996e54a3224f4396bddbafc7ca104cb3685eccdd", + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyApidevStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyApiDeployment996e54a322" + }, + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "dev" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async function (event) {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: \"Hello, SAM!\" }),\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs16.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-us-gov/api_with_cors_and_apikey_defined_at_api_level.json b/tests/translator/output/aws-us-gov/api_with_cors_and_apikey_defined_at_api_level.json new file mode 100644 index 000000000..f6fe0d9ec --- /dev/null +++ b/tests/translator/output/aws-us-gov/api_with_cors_and_apikey_defined_at_api_level.json @@ -0,0 +1,208 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Outputs": { + "WebEndpoint": { + "Description": "API Gateway endpoint URL", + "Value": { + "Fn::Sub": "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/hello" + } + } + }, + "Resources": { + "ApiGatewayLambdaRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": "lambda:InvokeFunction", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "AllowInvokeLambdaFunctions" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "api_key": { + "in": "header", + "name": "x-api-key", + "type": "apiKey" + } + } + }, + "openapi": "3.0.1", + "paths": { + "/hello": { + "get": { + "security": [ + { + "api_key": [] + } + ], + "x-amazon-apigateway-integration": { + "credentials": { + "Fn::Sub": "${ApiGatewayLambdaRole.Arn}" + }, + "httpMethod": "POST", + "passthroughBehavior": "when_no_match", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + }, + "options": { + "responses": { + "200": { + "description": "Default response for CORS method", + "headers": { + "Access-Control-Allow-Methods": { + "schema": { + "schema": { + "type": "string" + } + } + }, + "Access-Control-Allow-Origin": { + "schema": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "summary": "CORS support", + "x-amazon-apigateway-integration": { + "requestTemplates": { + "application/json": "{\n \"statusCode\" : 200\n}\n" + }, + "responses": { + "default": { + "responseParameters": { + "method.response.header.Access-Control-Allow-Methods": "'GET,OPTIONS'", + "method.response.header.Access-Control-Allow-Origin": "'*'" + }, + "responseTemplates": { + "application/json": "{}\n" + }, + "statusCode": "200" + } + }, + "type": "mock" + } + } + } + } + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiDeploymentdb7bc48ce9": { + "Properties": { + "Description": "RestApi deployment id: db7bc48ce9273479c81f6c8c0b91862e71dbbef8", + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "MyApidevStage": { + "Properties": { + "DeploymentId": { + "Ref": "MyApiDeploymentdb7bc48ce9" + }, + "RestApiId": { + "Ref": "MyApi" + }, + "StageName": "dev" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async function (event) {\n return {\n statusCode: 200,\n body: JSON.stringify({ message: \"Hello, SAM!\" }),\n }\n}\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs16.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} From a584f0ead0790a7dd36ff556408fd202299b142d Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Fri, 10 Mar 2023 14:50:16 -0800 Subject: [PATCH 17/32] chore: Upgrade ruff to 0.0.254 (#3014) --- requirements/dev.txt | 2 +- samtranslator/internal/schema_source/any_cfn_resource.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/dev.txt b/requirements/dev.txt index d9a389f7e..7fbb884d5 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,7 +4,7 @@ pytest-xdist>=2.5,<4 pytest-env>=0.6,<1 pytest-rerunfailures>=9.1,<12 pyyaml~=6.0 -ruff==0.0.253 # loose the requirement once it is more stable +ruff==0.0.254 # loose the requirement once it is more stable # Test requirements pytest>=6.2,<8 diff --git a/samtranslator/internal/schema_source/any_cfn_resource.py b/samtranslator/internal/schema_source/any_cfn_resource.py index 632b68476..08f78fcbe 100644 --- a/samtranslator/internal/schema_source/any_cfn_resource.py +++ b/samtranslator/internal/schema_source/any_cfn_resource.py @@ -7,4 +7,4 @@ # Anything goes if has string Type but is not AWS::Serverless::* class Resource(LenientBaseModel): - Type: constr(regex=r"^(?!AWS::Serverless::).+$") # type: ignore # noqa: forward-annotation-syntax-error + Type: constr(regex=r"^(?!AWS::Serverless::).+$") # type: ignore From 04fcfe0be9bd90771f25a4c8abf373ce217ea14e Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Fri, 10 Mar 2023 17:16:47 -0800 Subject: [PATCH 18/32] chore: Get rid of py2 import stuff (#3018) --- integration/combination/test_api_settings.py | 11 +++-------- integration/conftest.py | 6 +----- integration/helpers/base_test.py | 16 +++++----------- .../helpers/deployer/utils/artifact_exporter.py | 1 - integration/helpers/resource.py | 16 ++++++---------- integration/helpers/stack.py | 7 ++----- 6 files changed, 17 insertions(+), 40 deletions(-) diff --git a/integration/combination/test_api_settings.py b/integration/combination/test_api_settings.py index abf57f24a..59156f494 100644 --- a/integration/combination/test_api_settings.py +++ b/integration/combination/test_api_settings.py @@ -1,17 +1,12 @@ import hashlib +from pathlib import Path from unittest.case import skipIf -from integration.config.service_names import REST_API -from integration.helpers.resource import current_region_does_not_support - -try: - from pathlib import Path -except ImportError: - from pathlib2 import Path - from parameterized import parameterized +from integration.config.service_names import REST_API from integration.helpers.base_test import BaseTest +from integration.helpers.resource import current_region_does_not_support @skipIf(current_region_does_not_support([REST_API]), "Rest API is not supported in this testing region") diff --git a/integration/conftest.py b/integration/conftest.py index 882ca57d8..1f32ef79a 100644 --- a/integration/conftest.py +++ b/integration/conftest.py @@ -1,5 +1,6 @@ import logging import time +from pathlib import Path import boto3 import botocore @@ -18,11 +19,6 @@ from integration.helpers.stack import Stack from integration.helpers.yaml_utils import load_yaml -try: - from pathlib import Path -except ImportError: - from pathlib2 import Path - LOG = logging.getLogger(__name__) COMPANION_STACK_NAME = "sam-integ-stack-companion" diff --git a/integration/helpers/base_test.py b/integration/helpers/base_test.py index 5394f8790..5a79d9e37 100644 --- a/integration/helpers/base_test.py +++ b/integration/helpers/base_test.py @@ -2,7 +2,10 @@ import logging import os import shutil +from pathlib import Path +from unittest.case import TestCase +import boto3 import botocore import pytest import requests @@ -20,6 +23,7 @@ from integration.config.logger_configurations import LoggingConfiguration from integration.helpers.client_provider import ClientProvider +from integration.helpers.deployer.deployer import Deployer from integration.helpers.deployer.exceptions.exceptions import ThrottlingError from integration.helpers.deployer.utils.retry import retry_with_exponential_backoff_and_jitter from integration.helpers.exception import StatusCodeError @@ -32,18 +36,8 @@ verify_stack_resources, ) from integration.helpers.s3_uploader import S3Uploader -from integration.helpers.yaml_utils import dump_yaml, load_yaml - -try: - from pathlib import Path -except ImportError: - from pathlib2 import Path -from unittest.case import TestCase - -import boto3 - -from integration.helpers.deployer.deployer import Deployer from integration.helpers.template import transform_template +from integration.helpers.yaml_utils import dump_yaml, load_yaml LOG = logging.getLogger(__name__) diff --git a/integration/helpers/deployer/utils/artifact_exporter.py b/integration/helpers/deployer/utils/artifact_exporter.py index 38dab5fba..0951d44d8 100644 --- a/integration/helpers/deployer/utils/artifact_exporter.py +++ b/integration/helpers/deployer/utils/artifact_exporter.py @@ -2,7 +2,6 @@ Logic for uploading to S3 per Cloudformation Specific Resource This was ported over from the sam-cli repo """ -# pylint: disable=no-member # Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. # diff --git a/integration/helpers/resource.py b/integration/helpers/resource.py index dccdbb43c..e40378c16 100644 --- a/integration/helpers/resource.py +++ b/integration/helpers/resource.py @@ -1,9 +1,14 @@ import json import random import re -import string # pylint: disable=deprecated-module +import string +from pathlib import Path from typing import Any, Callable, Dict, Iterator, Set +import boto3 +from botocore.exceptions import NoRegionError +from samtranslator.translator.logical_id_generator import LogicalIdGenerator + from integration.config.service_names import ( APP_SYNC, DYNAMO_DB, @@ -18,15 +23,6 @@ ) from integration.helpers.yaml_utils import load_yaml -try: - from pathlib import Path -except ImportError: - from pathlib2 import Path - -import boto3 -from botocore.exceptions import NoRegionError -from samtranslator.translator.logical_id_generator import LogicalIdGenerator - # Length of the random suffix added at the end of the resources we create # to avoid collisions between tests RANDOM_SUFFIX_LENGTH = 12 diff --git a/integration/helpers/stack.py b/integration/helpers/stack.py index 82f28110e..6713e2e1b 100644 --- a/integration/helpers/stack.py +++ b/integration/helpers/stack.py @@ -1,3 +1,5 @@ +from pathlib import Path + import botocore from integration.helpers.deployer.deployer import Deployer @@ -6,11 +8,6 @@ from integration.helpers.resource import generate_suffix from integration.helpers.template import transform_template -try: - from pathlib import Path -except ImportError: - from pathlib2 import Path - class Stack: def __init__(self, stack_name, template_path, cfn_client, output_dir): From f816cf9cb0582481bc293c69e4c15e22ffc43bb9 Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Fri, 10 Mar 2023 17:19:42 -0800 Subject: [PATCH 19/32] chore: Enable pyupgrade check (#3019) --- bin/_file_formatter.py | 2 +- bin/add_transform_test.py | 2 +- bin/sam-translate.py | 2 +- .../test_api_with_authorizer_apikey.py | 2 +- .../combination/test_api_with_authorizers.py | 2 +- .../combination/test_function_with_api.py | 4 +- .../test_intrinsic_function_support.py | 4 +- integration/conftest.py | 10 ++-- integration/helpers/base_test.py | 2 +- integration/helpers/deployer/deployer.py | 10 ++-- .../helpers/deployer/utils/table_print.py | 4 +- integration/helpers/s3_uploader.py | 2 +- .../metrics/test_metrics_integration.py | 6 +-- integration/ruff.toml | 8 +++ integration/single/test_basic_api.py | 2 +- ruff.toml | 5 ++ .../feature_toggle/feature_toggle.py | 16 +++--- samtranslator/internal/intrinsics.py | 2 +- samtranslator/intrinsics/resolver.py | 2 +- samtranslator/metrics/method_decorator.py | 2 +- samtranslator/metrics/metrics.py | 4 +- samtranslator/model/__init__.py | 6 +-- samtranslator/model/api/api_generator.py | 2 +- samtranslator/model/apigateway.py | 4 +- samtranslator/model/eventsources/pull.py | 4 +- samtranslator/model/eventsources/push.py | 2 +- samtranslator/model/exceptions.py | 6 +-- samtranslator/model/intrinsics.py | 2 +- samtranslator/model/resource_policies.py | 3 +- samtranslator/model/s3_utils/uri_parser.py | 4 +- samtranslator/model/sam_resources.py | 38 +++++++------- samtranslator/open_api/base_editor.py | 2 +- .../plugins/api/implicit_api_plugin.py | 2 +- .../plugins/api/implicit_http_api_plugin.py | 2 +- .../application/serverless_app_plugin.py | 14 +++--- samtranslator/plugins/exceptions.py | 2 +- samtranslator/plugins/globals/globals.py | 4 +- .../policies/policy_templates_plugin.py | 2 +- samtranslator/plugins/sam_plugins.py | 6 +-- .../policy_template_processor/processor.py | 2 +- samtranslator/swagger/swagger.py | 16 +++--- samtranslator/translator/arn_generator.py | 2 +- .../translator/logical_id_generator.py | 2 +- samtranslator/validator/validator.py | 2 +- tests/metrics/test_method_decorator.py | 2 +- .../eventsources/test_api_event_source.py | 12 ++--- tests/openapi/test_openapi.py | 2 +- .../test_default_definition_body_plugin.py | 2 +- .../application/test_serverless_app_plugin.py | 2 +- tests/plugins/globals/test_globals.py | 2 +- .../test_processor.py | 2 +- .../policy_template_processor/test_schema.py | 2 +- tests/ruff.toml | 8 +++ tests/swagger/test_swagger.py | 4 +- tests/test_types.py | 14 +++--- .../test_deployment_preference_collection.py | 6 +-- tests/translator/test_api_resource.py | 2 +- tests/translator/test_function_resources.py | 4 +- tests/translator/test_logical_id_generator.py | 4 +- tests/translator/test_translator.py | 50 +++++++++---------- .../test_deployment_preference_collection.py | 4 +- tests/validator/test_validator.py | 2 +- 62 files changed, 178 insertions(+), 168 deletions(-) diff --git a/bin/_file_formatter.py b/bin/_file_formatter.py index 04615e875..4d7775199 100644 --- a/bin/_file_formatter.py +++ b/bin/_file_formatter.py @@ -45,7 +45,7 @@ def config_additional_args(cls) -> None: # noqa: empty-method-without-abstract- """Optionally configure additional args to arg parser.""" def process_file(self, file_path: str) -> None: - with open(file_path, "r", encoding="utf-8") as f: + with open(file_path, encoding="utf-8") as f: file_str = f.read() try: formatted_file_str = self.format_str(file_str) diff --git a/bin/add_transform_test.py b/bin/add_transform_test.py index a6f68d0ba..142712155 100755 --- a/bin/add_transform_test.py +++ b/bin/add_transform_test.py @@ -75,7 +75,7 @@ def replace_aws_partition(partition: str, file_path: str) -> None: def generate_transform_test_output_files(input_file_path: str, file_basename: str) -> None: output_file_option = file_basename + ".json" - with open(os.path.join(input_file_path), "r") as f: + with open(os.path.join(input_file_path)) as f: manifest = yaml_parse(f) # type: ignore[no-untyped-call] transform_test_output_paths = { diff --git a/bin/sam-translate.py b/bin/sam-translate.py index 94762c98b..902cacf05 100755 --- a/bin/sam-translate.py +++ b/bin/sam-translate.py @@ -102,7 +102,7 @@ def package(input_file_path, output_file_path): # type: ignore[no-untyped-def] def transform_template(input_file_path, output_file_path): # type: ignore[no-untyped-def] - with open(input_file_path, "r") as f: + with open(input_file_path) as f: sam_template = yaml_parse(f) # type: ignore[no-untyped-call] try: diff --git a/integration/combination/test_api_with_authorizer_apikey.py b/integration/combination/test_api_with_authorizer_apikey.py index e782877c6..fea6fdd2e 100644 --- a/integration/combination/test_api_with_authorizer_apikey.py +++ b/integration/combination/test_api_with_authorizer_apikey.py @@ -85,7 +85,7 @@ def verify_authorized_request( status = response.status_code if status != expected_status_code: raise StatusCodeError( - "Request to {} failed with status: {}, expected status: {}".format(url, status, expected_status_code) + f"Request to {url} failed with status: {status}, expected status: {expected_status_code}" ) if not header_key or not header_value: diff --git a/integration/combination/test_api_with_authorizers.py b/integration/combination/test_api_with_authorizers.py index e68c54053..ef3b5ead9 100644 --- a/integration/combination/test_api_with_authorizers.py +++ b/integration/combination/test_api_with_authorizers.py @@ -444,7 +444,7 @@ def verify_authorized_request( if status != expected_status_code: raise StatusCodeError( - "Request to {} failed with status: {}, expected status: {}".format(url, status, expected_status_code) + f"Request to {url} failed with status: {status}, expected status: {expected_status_code}" ) if not header_key or not header_value: diff --git a/integration/combination/test_function_with_api.py b/integration/combination/test_function_with_api.py index 23f21ab48..c72136274 100644 --- a/integration/combination/test_function_with_api.py +++ b/integration/combination/test_function_with_api.py @@ -28,9 +28,9 @@ def test_function_with_api(self): self.assertTrue( get_api_policy_expectation in policy, - "{} should be present in policy {}".format(get_api_policy_expectation, policy), + f"{get_api_policy_expectation} should be present in policy {policy}", ) self.assertTrue( post_api_policy_expectation in policy, - "{} should be present in policy {}".format(post_api_policy_expectation, policy), + f"{post_api_policy_expectation} should be present in policy {policy}", ) diff --git a/integration/combination/test_intrinsic_function_support.py b/integration/combination/test_intrinsic_function_support.py index 61c03419c..06d9d571f 100644 --- a/integration/combination/test_intrinsic_function_support.py +++ b/integration/combination/test_intrinsic_function_support.py @@ -53,11 +53,11 @@ def test_severless_api_properties_support(self): self.assertTrue( get_api_policy_expectation in policy, - "{} should be present in policy {}".format(get_api_policy_expectation, policy), + f"{get_api_policy_expectation} should be present in policy {policy}", ) self.assertTrue( post_api_policy_expectation in policy, - "{} should be present in policy {}".format(post_api_policy_expectation, policy), + f"{post_api_policy_expectation} should be present in policy {policy}", ) # Test for tags diff --git a/integration/conftest.py b/integration/conftest.py index 1f32ef79a..2912f5b35 100644 --- a/integration/conftest.py +++ b/integration/conftest.py @@ -171,16 +171,16 @@ def upload_resources(get_s3): def get_s3_uri(file_name, uri_type, bucket, region): if uri_type == "s3": - return "s3://{}/{}".format(bucket, file_name) + return f"s3://{bucket}/{file_name}" if region == "us-east-1": - return "https://s3.amazonaws.com/{}/{}".format(bucket, file_name) + return f"https://s3.amazonaws.com/{bucket}/{file_name}" if region == "us-iso-east-1": - return "https://s3.us-iso-east-1.c2s.ic.gov/{}/{}".format(bucket, file_name) + return f"https://s3.us-iso-east-1.c2s.ic.gov/{bucket}/{file_name}" if region == "us-isob-east-1": - return "https://s3.us-isob-east-1.sc2s.sgov.gov/{}/{}".format(bucket, file_name) + return f"https://s3.us-isob-east-1.sc2s.sgov.gov/{bucket}/{file_name}" - return "https://s3-{}.amazonaws.com/{}/{}".format(region, bucket, file_name) + return f"https://s3-{region}.amazonaws.com/{bucket}/{file_name}" @pytest.fixture() diff --git a/integration/helpers/base_test.py b/integration/helpers/base_test.py index 5a79d9e37..6ed126454 100644 --- a/integration/helpers/base_test.py +++ b/integration/helpers/base_test.py @@ -416,7 +416,7 @@ def _fill_template(self, folder, file_name): data = f.read() for key, _ in self.code_key_to_file.items(): # We must double the {} to escape them so they will survive a round of unescape - data = data.replace("${{{}}}".format(key), self.get_code_key_s3_uri(key)) + data = data.replace(f"${{{key}}}", self.get_code_key_s3_uri(key)) yaml_doc = yaml_parse(data) dump_yaml(updated_template_path, yaml_doc) diff --git a/integration/helpers/deployer/deployer.py b/integration/helpers/deployer/deployer.py index 2f444659e..07c9ffcc0 100644 --- a/integration/helpers/deployer/deployer.py +++ b/integration/helpers/deployer/deployer.py @@ -140,7 +140,7 @@ def create_changeset( "ChangeSetType": changeset_type, "Parameters": parameter_values, "Capabilities": capabilities, - "Description": "Created by SAM CLI at {0} UTC".format(datetime.utcnow().isoformat()), + "Description": f"Created by SAM CLI at {datetime.utcnow().isoformat()} UTC", "Tags": tags, } @@ -172,7 +172,7 @@ def _create_change_set(self, stack_name, changeset_type, **kwargs): except botocore.exceptions.ClientError as ex: if "The bucket you are attempting to access must be addressed using the specified endpoint" in str(ex): raise deploy_exceptions.DeployBucketInDifferentRegionError( - "Failed to create/update stack {}".format(stack_name) + f"Failed to create/update stack {stack_name}" ) raise deploy_exceptions.ChangeSetError(stack_name=stack_name, msg=str(ex)) @@ -278,7 +278,7 @@ def wait_for_changeset(self, changeset_id, stack_name): raise deploy_exceptions.ChangeEmptyError(stack_name=stack_name) raise deploy_exceptions.ChangeSetError( - stack_name=stack_name, msg="ex: {0} Status: {1}. Reason: {2}".format(ex, status, reason) + stack_name=stack_name, msg=f"ex: {ex} Status: {status}. Reason: {reason}" ) def execute_changeset(self, changeset_id, stack_name): @@ -323,7 +323,7 @@ def wait_for_execute(self, stack_name, changeset_type): elif changeset_type == "UPDATE": waiter = self._client.get_waiter("stack_update_complete") else: - raise RuntimeError("Invalid changeset type {0}".format(changeset_type)) + raise RuntimeError(f"Invalid changeset type {changeset_type}") # Poll every 30 seconds. Polling too frequently risks hitting rate limits # on CloudFormation's DescribeStacks API @@ -408,7 +408,7 @@ def get_stack_outputs(self, stack_name, echo=True): try: outputs = stacks_description["Stacks"][0]["Outputs"] if echo: - sys.stdout.write("\nStack {stack_name} outputs:\n".format(stack_name=stack_name)) + sys.stdout.write(f"\nStack {stack_name} outputs:\n") sys.stdout.flush() self._display_stack_outputs(stack_outputs=outputs) return outputs diff --git a/integration/helpers/deployer/utils/table_print.py b/integration/helpers/deployer/utils/table_print.py index 23644592b..8c6b23110 100644 --- a/integration/helpers/deployer/utils/table_print.py +++ b/integration/helpers/deployer/utils/table_print.py @@ -53,13 +53,13 @@ def pprint_wrap(func): total_args = len(format_kwargs) if not total_args: - raise ValueError("Number of arguments supplied should be > 0 , format_kwargs: {}".format(format_kwargs)) + raise ValueError(f"Number of arguments supplied should be > 0 , format_kwargs: {format_kwargs}") # Get width to be a usable number so that we can equally divide the space for all the columns. # Can be refactored, to allow for modularity in the shaping of the columns. width = width - (width % total_args) usable_width_no_margin = int(width) - 1 - usable_width = int((usable_width_no_margin - (margin if margin else min_margin))) + usable_width = int(usable_width_no_margin - (margin if margin else min_margin)) if total_args > int(usable_width / 2): raise ValueError("Total number of columns exceed available width") width_per_column = int(usable_width / total_args) diff --git a/integration/helpers/s3_uploader.py b/integration/helpers/s3_uploader.py index e46536088..125d1fc75 100644 --- a/integration/helpers/s3_uploader.py +++ b/integration/helpers/s3_uploader.py @@ -42,5 +42,5 @@ def get_s3_uri(self, file_name): http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro """ base = self.s3_client.meta.endpoint_url - result = "{0}/{1}/{2}".format(base, self.bucket_name, file_name) + result = f"{base}/{self.bucket_name}/{file_name}" return result diff --git a/integration/metrics/test_metrics_integration.py b/integration/metrics/test_metrics_integration.py index 44d212ed6..bb3d4ddeb 100644 --- a/integration/metrics/test_metrics_integration.py +++ b/integration/metrics/test_metrics_integration.py @@ -52,12 +52,12 @@ def test_publish_single_metric(self): self.assertEqual(latency_avg[0], 1400) def get_unique_namespace(self): - namespace = "SinglePublishTest-{}".format(uuid.uuid1()) + namespace = f"SinglePublishTest-{uuid.uuid1()}" while True: response = self.cw_client.list_metrics(Namespace=namespace) if not response["Metrics"]: return namespace - namespace = "SinglePublishTest-{}".format(uuid.uuid1()) + namespace = f"SinglePublishTest-{uuid.uuid1()}" def get_metric_data(self, namespace, metric_name, dimensions, start_time, end_time, stat="Sum"): retries = 20 @@ -80,6 +80,6 @@ def get_metric_data(self, namespace, metric_name, dimensions, start_time, end_ti values = response["MetricDataResults"][0]["Values"] if values: return values - print("No values found by for metric: {}. Waiting for 5 seconds...".format(metric_name)) + print(f"No values found by for metric: {metric_name}. Waiting for 5 seconds...") time.sleep(5) return [0] diff --git a/integration/ruff.toml b/integration/ruff.toml index 7a81d8467..e363fcedf 100644 --- a/integration/ruff.toml +++ b/integration/ruff.toml @@ -12,8 +12,16 @@ select = [ "Q", # flake8-quotes "TID", # flake8-tidy-imports "RUF", # Ruff-specific rules + "UP", # pyupgrade ] +# Mininal python version we support is 3.7 +target-version = "py37" + +# https://github.com/charliermarsh/ruff/issues/2382 +[pyupgrade] +keep-runtime-typing = true + [per-file-ignores] # The code quality of tests can be a bit lower: diff --git a/integration/single/test_basic_api.py b/integration/single/test_basic_api.py index 6dc5c3c83..8ad0433aa 100644 --- a/integration/single/test_basic_api.py +++ b/integration/single/test_basic_api.py @@ -109,7 +109,7 @@ def test_basic_api_with_tags(self): stages = self.get_api_stack_stages() self.assertEqual(len(stages), 2) - stage = next((s for s in stages if s["stageName"] == "my-new-stage-name")) + stage = next(s for s in stages if s["stageName"] == "my-new-stage-name") self.assertIsNotNone(stage) self.assertEqual(stage["tags"]["TagKey1"], "TagValue1") self.assertEqual(stage["tags"]["TagKey2"], "") diff --git a/ruff.toml b/ruff.toml index 54f852fbf..23008d02d 100644 --- a/ruff.toml +++ b/ruff.toml @@ -19,11 +19,16 @@ select = [ "TID", # flake8-tidy-imports "RUF", # Ruff-specific rules "YTT", # flake8-2020 + "UP", # pyupgrade ] # Mininal python version we support is 3.7 target-version = "py37" +# https://github.com/charliermarsh/ruff/issues/2382 +[pyupgrade] +keep-runtime-typing = true + [per-file-ignores] # python scripts in bin/ needs some python path configurations before import "bin/*.py" = ["E402"] # E402: module-import-not-at-top-of-file diff --git a/samtranslator/feature_toggle/feature_toggle.py b/samtranslator/feature_toggle/feature_toggle.py index 61fc7b643..d7578837b 100644 --- a/samtranslator/feature_toggle/feature_toggle.py +++ b/samtranslator/feature_toggle/feature_toggle.py @@ -55,7 +55,7 @@ def _get_dialup(self, region_config, feature_name): # type: ignore[no-untyped-d return FeatureToggle.DIALUP_RESOLVER[dialup_type]( region_config, account_id=self.account_id, feature_name=feature_name ) - LOG.warning("Dialup type '{}' is None or is not supported.".format(dialup_type)) + LOG.warning(f"Dialup type '{dialup_type}' is None or is not supported.") return DisabledDialup(region_config) def is_enabled(self, feature_name: str) -> bool: @@ -65,7 +65,7 @@ def is_enabled(self, feature_name: str) -> bool: :param feature_name: name of feature """ if feature_name not in self.feature_config: - LOG.warning("Feature '{}' not available in Feature Toggle Config.".format(feature_name)) + LOG.warning(f"Feature '{feature_name}' not available in Feature Toggle Config.") return False stage = self.stage @@ -73,13 +73,13 @@ def is_enabled(self, feature_name: str) -> bool: account_id = self.account_id if not stage or not region or not account_id: LOG.warning( - "One or more of stage, region and account_id is not set. Feature '{}' not enabled.".format(feature_name) + f"One or more of stage, region and account_id is not set. Feature '{feature_name}' not enabled." ) return False stage_config = self.feature_config.get(feature_name, {}).get(stage, {}) if not stage_config: - LOG.info("Stage '{}' not enabled for Feature '{}'.".format(stage, feature_name)) + LOG.info(f"Stage '{stage}' not enabled for Feature '{feature_name}'.") return False if account_id in stage_config: @@ -89,10 +89,10 @@ def is_enabled(self, feature_name: str) -> bool: region_config = stage_config[region] if region in stage_config else stage_config.get("default", {}) dialup = self._get_dialup(region_config, feature_name=feature_name) # type: ignore[no-untyped-call] - LOG.info("Using Dialip {}".format(dialup)) + LOG.info(f"Using Dialip {dialup}") is_enabled: bool = dialup.is_enabled() - LOG.info("Feature '{}' is enabled: '{}'".format(feature_name, is_enabled)) + LOG.info(f"Feature '{feature_name}' is enabled: '{is_enabled}'") return is_enabled @@ -121,7 +121,7 @@ class FeatureToggleLocalConfigProvider(FeatureToggleConfigProvider): def __init__(self, local_config_path) -> None: # type: ignore[no-untyped-def] FeatureToggleConfigProvider.__init__(self) - with open(local_config_path, "r", encoding="utf-8") as f: + with open(local_config_path, encoding="utf-8") as f: config_json = f.read() self.feature_toggle_config = cast(Dict[str, Any], json.loads(config_json)) @@ -157,7 +157,7 @@ def __init__(self, application_id, environment_id, configuration_profile_id, app self.feature_toggle_config = cast(Dict[str, Any], json.loads(binary_config_string.decode("utf-8"))) LOG.info("Finished loading feature toggle config from AppConfig.") except Exception as ex: - LOG.error("Failed to load config from AppConfig: {}. Using empty config.".format(ex)) + LOG.error(f"Failed to load config from AppConfig: {ex}. Using empty config.") # There is chance that AppConfig is not available in a particular region. self.feature_toggle_config = {} diff --git a/samtranslator/internal/intrinsics.py b/samtranslator/internal/intrinsics.py index 297acb0cd..50c2fd38f 100644 --- a/samtranslator/internal/intrinsics.py +++ b/samtranslator/internal/intrinsics.py @@ -18,6 +18,6 @@ def resolve_string_parameter_in_resource( if not isinstance(value, str) and not isinstance(value, dict): raise InvalidResourceException( logical_id, - "Could not resolve parameter for '{}' or parameter is not a String.".format(parameter_name), + f"Could not resolve parameter for '{parameter_name}' or parameter is not a String.", ) return value diff --git a/samtranslator/intrinsics/resolver.py b/samtranslator/intrinsics/resolver.py index e0f892d07..ef80205a1 100644 --- a/samtranslator/intrinsics/resolver.py +++ b/samtranslator/intrinsics/resolver.py @@ -27,7 +27,7 @@ def __init__(self, parameters: Dict[str, Any], supported_intrinsics: Optional[Di ) if not isinstance(supported_intrinsics, dict) or not all( - (isinstance(value, Action) for value in supported_intrinsics.values()) + isinstance(value, Action) for value in supported_intrinsics.values() ): raise TypeError("supported_intrinsics argument must be intrinsic names to corresponding Action classes") diff --git a/samtranslator/metrics/method_decorator.py b/samtranslator/metrics/method_decorator.py index 0bba003df..b11a6bc96 100644 --- a/samtranslator/metrics/method_decorator.py +++ b/samtranslator/metrics/method_decorator.py @@ -63,7 +63,7 @@ def _get_metric_name(prefix, name, func, args): # type: ignore[no-untyped-def] metric_name = func.__name__ if prefix: - return "{}-{}".format(prefix, metric_name) + return f"{prefix}-{metric_name}" return metric_name diff --git a/samtranslator/metrics/metrics.py b/samtranslator/metrics/metrics.py index a2bb2cb3f..ebbb0347b 100644 --- a/samtranslator/metrics/metrics.py +++ b/samtranslator/metrics/metrics.py @@ -59,7 +59,7 @@ def _flush_metrics(self, namespace, metrics): # type: ignore[no-untyped-def] if metric_data: self.cloudwatch_client.put_metric_data(Namespace=namespace, MetricData=metric_data) except Exception as e: - LOG.exception("Failed to report {} metrics".format(len(metric_data)), exc_info=e) + LOG.exception(f"Failed to report {len(metric_data)} metrics", exc_info=e) class DummyMetricsPublisher(MetricsPublisher): @@ -68,7 +68,7 @@ def __init__(self) -> None: def publish(self, namespace, metrics): # type: ignore[no-untyped-def] """Do not publish any metric, this is a dummy publisher used for offline use.""" - LOG.debug("Dummy publisher ignoring {} metrices".format(len(metrics))) + LOG.debug(f"Dummy publisher ignoring {len(metrics)} metrices") class Unit: diff --git a/samtranslator/model/__init__.py b/samtranslator/model/__init__.py index ec4dcb5f1..c0e0554ef 100644 --- a/samtranslator/model/__init__.py +++ b/samtranslator/model/__init__.py @@ -360,9 +360,7 @@ def validate_properties(self) -> None: # If the property value has not been set, verify that the property is not required. if value is None: if property_type.required: - raise InvalidResourceException( - self.logical_id, "Missing required property '{property_name}'.".format(property_name=name) - ) + raise InvalidResourceException(self.logical_id, f"Missing required property '{name}'.") # Otherwise, validate the value of the property. elif not property_type.validate(value, should_raise=False): raise InvalidResourcePropertyTypeException(self.logical_id, name, property_type.expected_type) @@ -614,7 +612,7 @@ def get_resource_by_logical_id(self, _input: str) -> Dict[str, Any]: :param resources: Dictionary of the resource from the SAM template """ if not isinstance(_input, str): - raise TypeError("Invalid logical ID '{}'. Expected a string.".format(_input)) + raise TypeError(f"Invalid logical ID '{_input}'. Expected a string.") return self.resources.get(_input, None) diff --git a/samtranslator/model/api/api_generator.py b/samtranslator/model/api/api_generator.py index bb03a827f..2d648d000 100644 --- a/samtranslator/model/api/api_generator.py +++ b/samtranslator/model/api/api_generator.py @@ -797,7 +797,7 @@ def _construct_usage_plan(self, rest_api_stage: Optional[ApiGatewayStage] = None raise InvalidResourceException(self.logical_id, "'CreateUsagePlan' is a required field for UsagePlan.") if create_usage_plan not in create_usage_plans_accepted_values: raise InvalidResourceException( - self.logical_id, "'CreateUsagePlan' accepts one of {}.".format(create_usage_plans_accepted_values) + self.logical_id, f"'CreateUsagePlan' accepts one of {create_usage_plans_accepted_values}." ) if create_usage_plan == "NONE": diff --git a/samtranslator/model/apigateway.py b/samtranslator/model/apigateway.py index 6cad03ba7..bb0545e07 100644 --- a/samtranslator/model/apigateway.py +++ b/samtranslator/model/apigateway.py @@ -136,7 +136,7 @@ def make_auto_deployable( # noqa: too-many-arguments generator = logical_id_generator.LogicalIdGenerator(self.logical_id, data) self.logical_id = generator.gen() digest = generator.get_hash(length=40) - self.Description = "RestApi deployment id: {}".format(digest) + self.Description = f"RestApi deployment id: {digest}" stage.update_deployment_ref(self.logical_id) @@ -155,7 +155,7 @@ def __init__( for response_parameter_key in response_parameters: if response_parameter_key not in ApiGatewayResponse.ResponseParameterProperties: raise InvalidResourceException( - api_logical_id, "Invalid gateway response parameter '{}'".format(response_parameter_key) + api_logical_id, f"Invalid gateway response parameter '{response_parameter_key}'" ) status_code_str = self._status_code_string(status_code) # type: ignore[no-untyped-call] diff --git a/samtranslator/model/eventsources/pull.py b/samtranslator/model/eventsources/pull.py index b4da8db2a..42b72de51 100644 --- a/samtranslator/model/eventsources/pull.py +++ b/samtranslator/model/eventsources/pull.py @@ -157,7 +157,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] # noqa: t else: raise InvalidEventException( self.logical_id, - "Property ConsumerGroupId not defined for resource of type {}.".format(self.resource_type), + f"Property ConsumerGroupId not defined for resource of type {self.resource_type}.", ) destination_config_policy: Optional[Dict[str, Any]] = None @@ -626,7 +626,7 @@ def validate_uri(self, uri: Optional[Any], msg: str) -> None: if not uri: raise InvalidEventException( self.relative_id, - "No {} URI property specified in SourceAccessConfigurations for self managed kafka event.".format(msg), + f"No {msg} URI property specified in SourceAccessConfigurations for self managed kafka event.", ) if not isinstance(uri, str) and not is_intrinsic(uri): diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index ea3315b5a..f855dfdc1 100644 --- a/samtranslator/model/eventsources/push.py +++ b/samtranslator/model/eventsources/push.py @@ -1225,7 +1225,7 @@ def _inject_lambda_config(self, function, userpool): # type: ignore[no-untyped- lambda_config[event_trigger] = function.get_runtime_attr("arn") else: raise InvalidEventException( - self.relative_id, 'Cognito trigger "{trigger}" defined multiple times.'.format(trigger=self.Trigger) + self.relative_id, f'Cognito trigger "{self.Trigger}" defined multiple times.' ) return userpool diff --git a/samtranslator/model/exceptions.py b/samtranslator/model/exceptions.py index 1c404c2e4..699a6d2fc 100644 --- a/samtranslator/model/exceptions.py +++ b/samtranslator/model/exceptions.py @@ -94,7 +94,7 @@ def __init__(self, message: str) -> None: @property def message(self) -> str: - return "Structure of the SAM template is invalid. {}".format(self._message) + return f"Structure of the SAM template is invalid. {self._message}" class InvalidResourceException(ExceptionWithMessage): @@ -116,7 +116,7 @@ def __lt__(self, other): # type: ignore[no-untyped-def] @property def message(self) -> str: - return "Resource with id [{}] is invalid. {}".format(self._logical_id, self._message) + return f"Resource with id [{self._logical_id}] is invalid. {self._message}" @property def metadata(self) -> Optional[Dict[str, Any]]: @@ -179,7 +179,7 @@ def __init__(self, event_id: Optional[str], message: str) -> None: @property def message(self) -> str: - return "Event with id [{}] is invalid. {}".format(self._event_id, self._message) + return f"Event with id [{self._event_id}] is invalid. {self._message}" def prepend(exception, message, end=": "): # type: ignore[no-untyped-def] diff --git a/samtranslator/model/intrinsics.py b/samtranslator/model/intrinsics.py index 0ef886dad..229c61c65 100644 --- a/samtranslator/model/intrinsics.py +++ b/samtranslator/model/intrinsics.py @@ -106,7 +106,7 @@ def make_combined_condition( new_condition_name = condition_name # If more than 1 new condition is needed, add a number to the end of the name if zero_based_num_conditions > 0: - new_condition_name = "{}{}".format(condition_name, zero_based_num_conditions) + new_condition_name = f"{condition_name}{zero_based_num_conditions}" zero_based_num_conditions -= 1 new_condition_content = make_or_condition(conditions_list[:max_conditions]) conditions_list = conditions_list[max_conditions:] diff --git a/samtranslator/model/resource_policies.py b/samtranslator/model/resource_policies.py index a80c69618..184043c0d 100644 --- a/samtranslator/model/resource_policies.py +++ b/samtranslator/model/resource_policies.py @@ -51,8 +51,7 @@ def get(self): # type: ignore[no-untyped-def] :yields namedtuple("data", "type"): Yields a named tuple containing the policy data and its type """ - for policy_tuple in self.policies: - yield policy_tuple + yield from self.policies def __len__(self): # type: ignore[no-untyped-def] return len(self.policies) diff --git a/samtranslator/model/s3_utils/uri_parser.py b/samtranslator/model/s3_utils/uri_parser.py index 63ce19f26..d210caaad 100644 --- a/samtranslator/model/s3_utils/uri_parser.py +++ b/samtranslator/model/s3_utils/uri_parser.py @@ -57,7 +57,7 @@ def construct_image_code_object(image_uri, logical_id, property_name): # type: """ if not image_uri: raise InvalidResourceException( - logical_id, "'{}' requires that a image hosted at a registry be specified.".format(property_name) + logical_id, f"'{property_name}' requires that a image hosted at a registry be specified." ) return {"ImageUri": image_uri} @@ -79,7 +79,7 @@ def construct_s3_location_object( if not location_uri.get("Bucket") or not location_uri.get("Key"): # location_uri is a dictionary but does not contain Bucket or Key property raise InvalidResourceException( - logical_id, "'{}' requires Bucket and Key properties to be specified.".format(property_name) + logical_id, f"'{property_name}' requires Bucket and Key properties to be specified." ) s3_pointer = location_uri diff --git a/samtranslator/model/sam_resources.py b/samtranslator/model/sam_resources.py index 727c16b76..696834c5c 100644 --- a/samtranslator/model/sam_resources.py +++ b/samtranslator/model/sam_resources.py @@ -332,7 +332,7 @@ def _construct_event_invoke_config( # noqa: too-many-arguments # Try to resolve. resolved_event_invoke_config = intrinsics_resolver.resolve_parameter_refs(self.EventInvokeConfig) - logical_id = "{id}EventInvokeConfig".format(id=function_name) + logical_id = f"{function_name}EventInvokeConfig" lambda_event_invoke_config = ( LambdaEventInvokeConfig( logical_id=logical_id, depends_on=[lambda_alias.logical_id], attributes=self.resource_attributes @@ -424,7 +424,7 @@ def _validate_and_inject_resource( policy = self._add_event_invoke_managed_policy(dest_config, resource_logical_id, destination) else: raise InvalidResourceException( - self.logical_id, "Destination is required if Type is not {}".format(auto_inject_list) + self.logical_id, f"Destination is required if Type is not {auto_inject_list}" ) if dest_config.get("Destination") is not None and property_condition is None: policy = self._add_event_invoke_managed_policy( @@ -507,7 +507,7 @@ def _get_resolved_alias_name( if not isinstance(resolved_alias_name, str): # This is still a dictionary which means we are not able to completely resolve intrinsics raise InvalidResourceException( - self.logical_id, "'{}' must be a string or a Ref to a template parameter".format(property_name) + self.logical_id, f"'{property_name}' must be a string or a Ref to a template parameter" ) return resolved_alias_name @@ -642,20 +642,20 @@ def _validate_package_type(self, lambda_function: LambdaFunction) -> None: if packagetype not in [ZIP, IMAGE]: raise InvalidResourceException( lambda_function.logical_id, - "PackageType needs to be `{zip}` or `{image}`".format(zip=ZIP, image=IMAGE), + f"PackageType needs to be `{ZIP}` or `{IMAGE}`", ) def _validate_package_type_zip() -> None: if not all([lambda_function.Runtime, lambda_function.Handler]): raise InvalidResourceException( lambda_function.logical_id, - "Runtime and Handler needs to be present when PackageType is of type `{zip}`".format(zip=ZIP), + f"Runtime and Handler needs to be present when PackageType is of type `{ZIP}`", ) if any([lambda_function.Code.get("ImageUri", False), lambda_function.ImageConfig]): raise InvalidResourceException( lambda_function.logical_id, - "ImageUri or ImageConfig cannot be present when PackageType is of type `{zip}`".format(zip=ZIP), + f"ImageUri or ImageConfig cannot be present when PackageType is of type `{ZIP}`", ) def _validate_package_type_image() -> None: @@ -669,7 +669,7 @@ def _validate_package_type_image() -> None: if not lambda_function.Code.get("ImageUri"): raise InvalidResourceException( lambda_function.logical_id, - "ImageUri needs to be present when PackageType is of type `{image}`".format(image=IMAGE), + f"ImageUri needs to be present when PackageType is of type `{IMAGE}`", ) _validate_per_package_type = {ZIP: _validate_package_type_zip, IMAGE: _validate_package_type_image} @@ -694,9 +694,7 @@ def _validate_dlq(self, dead_letter_queue: Dict[str, Any]) -> None: # Validate required Types if dlq_type not in self.dead_letter_queue_policy_actions: - raise InvalidResourceException( - self.logical_id, "'DeadLetterQueue' requires Type of {}".format(valid_dlq_types) - ) + raise InvalidResourceException(self.logical_id, f"'DeadLetterQueue' requires Type of {valid_dlq_types}") def _event_resources_to_link(self, resources: Dict[str, Any]) -> Dict[str, Any]: event_resources = {} @@ -707,7 +705,7 @@ def _event_resources_to_link(self, resources: Dict[str, Any]) -> Dict[str, Any]: self.logical_id + logical_id, event_dict, logical_id ) except (TypeError, AttributeError) as e: - raise InvalidEventException(logical_id, "{}".format(e)) from e + raise InvalidEventException(logical_id, f"{e}") from e event_resources[logical_id] = event_source.resources_to_link(resources) return event_resources @@ -755,7 +753,7 @@ def _generate_event_resources( lambda_function.logical_id + logical_id, event_dict, logical_id ) except TypeError as e: - raise InvalidEventException(logical_id, "{}".format(e)) from e + raise InvalidEventException(logical_id, f"{e}") from e kwargs = { # When Alias is provided, connect all event sources to the alias and *not* the function @@ -787,7 +785,7 @@ def _construct_code_dict(self) -> Dict[str, Any]: artifacts = {"ImageUri": self.ImageUri} if packagetype not in [ZIP, IMAGE]: - raise InvalidResourceException(self.logical_id, "invalid 'PackageType' : {}".format(packagetype)) + raise InvalidResourceException(self.logical_id, f"invalid 'PackageType' : {packagetype}") # Inline function for transformation of inline code. # It accepts arbitrary argumemnts, because the arguments do not matter for the result. @@ -866,7 +864,7 @@ def _construct_version( # # SHA Collisions: For purposes of triggering a new update, we are concerned about just the difference previous # and next hashes. The chances that two subsequent hashes collide is fairly low. - prefix = "{id}Version".format(id=self.logical_id) + prefix = f"{self.logical_id}Version" logical_dict = {} # We can't directly change AutoPublishAlias as that would be a breaking change, so we have to add this opt-in # property that when set to true would change the lambda version whenever a property in the lambda function changes @@ -910,7 +908,7 @@ def _construct_alias(self, name: str, function: LambdaFunction, version: LambdaV if not name: raise InvalidResourceException(self.logical_id, "Alias name is required to create an alias") - logical_id = "{id}Alias{suffix}".format(id=function.logical_id, suffix=name) + logical_id = f"{function.logical_id}Alias{name}" alias = LambdaAlias(logical_id=logical_id, attributes=self.get_passthrough_resource_attributes()) alias.Name = name alias.FunctionName = function.get_runtime_attr("name") @@ -1096,7 +1094,7 @@ def _validate_cors_config_parameter( if prop_name not in cors_property_data_type: raise InvalidResourceException( lambda_function.logical_id, - "{} is not a valid property for configuring Cors.".format(prop_name), + f"{prop_name} is not a valid property for configuring Cors.", ) prop_type = cors_property_data_type.get(prop_name, list) if not is_intrinsic(prop_value) and not isinstance(prop_value, prop_type): @@ -1477,7 +1475,7 @@ def _construct_dynamodb_table(self) -> DynamoDBTable: def _convert_attribute_type(self, attribute_type: str) -> str: if attribute_type in self.attribute_type_conversions: return self.attribute_type_conversions[attribute_type] - raise InvalidResourceException(self.logical_id, "Invalid 'Type' \"{actual}\".".format(actual=attribute_type)) + raise InvalidResourceException(self.logical_id, f"Invalid 'Type' \"{attribute_type}\".") class SamApplication(SamResourceMacro): @@ -1678,7 +1676,7 @@ def _get_retention_policy_value(self) -> Optional[str]: return option raise InvalidResourceException( self.logical_id, - "'RetentionPolicy' must be one of the following options: {}.".format([self.RETAIN, self.DELETE]), + f"'RetentionPolicy' must be one of the following options: {[self.RETAIN, self.DELETE]}.", ) def _validate_architectures(self, lambda_layer: LambdaLayerVersion) -> None: @@ -1703,7 +1701,7 @@ def _validate_architectures(self, lambda_layer: LambdaLayerVersion) -> None: if not is_intrinsic(arq) and arq not in [ARM64, X86_64]: raise InvalidResourceException( lambda_layer.logical_id, - "CompatibleArchitectures needs to be a list of '{}' or '{}'".format(X86_64, ARM64), + f"CompatibleArchitectures needs to be a list of '{X86_64}' or '{ARM64}'", ) @@ -1795,7 +1793,7 @@ def _event_resources_to_link(self, resources: Dict[str, Any]) -> Dict[str, Any]: self.logical_id + logical_id, event_dict, logical_id ) except (TypeError, AttributeError) as e: - raise InvalidEventException(logical_id, "{}".format(e)) from e + raise InvalidEventException(logical_id, f"{e}") from e event_resources[logical_id] = event_source.resources_to_link(resources) return event_resources diff --git a/samtranslator/open_api/base_editor.py b/samtranslator/open_api/base_editor.py index bfc47d033..a78e4b833 100644 --- a/samtranslator/open_api/base_editor.py +++ b/samtranslator/open_api/base_editor.py @@ -233,7 +233,7 @@ def validate_path_item_is_dict(path_item: Any, path: str) -> None: """ BaseEditor.validate_is_dict( - path_item, "Value of '{}' path must be a dictionary according to Swagger spec.".format(path) + path_item, f"Value of '{path}' path must be a dictionary according to Swagger spec." ) @staticmethod diff --git a/samtranslator/plugins/api/implicit_api_plugin.py b/samtranslator/plugins/api/implicit_api_plugin.py index 36e5ebf07..a19255ae2 100644 --- a/samtranslator/plugins/api/implicit_api_plugin.py +++ b/samtranslator/plugins/api/implicit_api_plugin.py @@ -422,7 +422,7 @@ def _path_condition_name(self, api_id, path): # type: ignore[no-untyped-def] # slashes and curly braces for templated params, e.g., /foo/{customerId}. So we'll replace # non-alphanumeric characters. path_logical_id = path.replace("/", "SLASH").replace("{", "OB").replace("}", "CB") - return "{}{}PathCondition".format(api_id, path_logical_id) + return f"{api_id}{path_logical_id}PathCondition" def _maybe_remove_implicit_api(self, template): # type: ignore[no-untyped-def] """ diff --git a/samtranslator/plugins/api/implicit_http_api_plugin.py b/samtranslator/plugins/api/implicit_http_api_plugin.py index 2081d3ce3..2ca3b1c0e 100644 --- a/samtranslator/plugins/api/implicit_http_api_plugin.py +++ b/samtranslator/plugins/api/implicit_http_api_plugin.py @@ -116,7 +116,7 @@ def _add_route_settings_to_api( method = event_properties["Method"] # Route should be in format "METHOD /path" or just "/path" if the ANY method is used - route = "{} {}".format(method.upper(), path) + route = f"{method.upper()} {path}" if method == OpenApiEditor._X_ANY_METHOD: route = path diff --git a/samtranslator/plugins/application/serverless_app_plugin.py b/samtranslator/plugins/application/serverless_app_plugin.py index 0d7f204ae..45e470e3c 100644 --- a/samtranslator/plugins/application/serverless_app_plugin.py +++ b/samtranslator/plugins/application/serverless_app_plugin.py @@ -156,7 +156,7 @@ def _make_service_call_with_retry(self, service_call, app_id, semver, key, logic except ClientError as e: error_code = e.response["Error"]["Code"] if error_code == "TooManyRequestsException": - LOG.debug("SAR call timed out for application id {}".format(app_id)) + LOG.debug(f"SAR call timed out for application id {app_id}") sleep_time = self._get_sleep_time_sec() sleep(sleep_time) self._total_wait_time += sleep_time @@ -211,14 +211,14 @@ def _handle_get_application_request(self, app_id, semver, key, logical_id): # t :param string key: The dictionary key consisting of (ApplicationId, SemanticVersion) :param string logical_id: the logical_id of this application resource """ - LOG.info("Getting application {}/{} from serverless application repo...".format(app_id, semver)) + LOG.info(f"Getting application {app_id}/{semver} from serverless application repo...") try: self._sar_service_call(self._get_application, logical_id, app_id, semver) self._applications[key] = {"Available"} - LOG.info("Finished getting application {}/{}.".format(app_id, semver)) + LOG.info(f"Finished getting application {app_id}/{semver}.") except EndpointConnectionError as e: # No internet connection. Don't break verification, but do show a warning. - warning_message = "{}. Unable to verify access to {}/{}.".format(e, app_id, semver) + warning_message = f"{e}. Unable to verify access to {app_id}/{semver}." LOG.warning(warning_message) self._applications[key] = {"Unable to verify"} @@ -231,10 +231,10 @@ def _handle_create_cfn_template_request(self, app_id, semver, key, logical_id): :param string key: The dictionary key consisting of (ApplicationId, SemanticVersion) :param string logical_id: the logical_id of this application resource """ - LOG.info("Requesting to create CFN template {}/{} in serverless application repo...".format(app_id, semver)) + LOG.info(f"Requesting to create CFN template {app_id}/{semver} in serverless application repo...") response = self._sar_service_call(self._create_cfn_template, logical_id, app_id, semver) - LOG.info("Requested to create CFN template {}/{} in serverless application repo.".format(app_id, semver)) + LOG.info(f"Requested to create CFN template {app_id}/{semver} in serverless application repo.") self._applications[key] = response[self.TEMPLATE_URL_KEY] if response["Status"] != "ACTIVE": self._in_progress_templates.append((response[self.APPLICATION_ID_KEY], response["TemplateId"])) @@ -353,7 +353,7 @@ def on_after_transform_template(self, template): # type: ignore[no-untyped-def] except ClientError as e: error_code = e.response["Error"]["Code"] if error_code == "TooManyRequestsException": - LOG.debug("SAR call timed out for application id {}".format(application_id)) + LOG.debug(f"SAR call timed out for application id {application_id}") break # We were throttled by SAR, break out to a sleep raise e diff --git a/samtranslator/plugins/exceptions.py b/samtranslator/plugins/exceptions.py index c5553efd6..c009773cb 100644 --- a/samtranslator/plugins/exceptions.py +++ b/samtranslator/plugins/exceptions.py @@ -12,4 +12,4 @@ def __init__(self, plugin_name: str, message: str) -> None: @property def message(self) -> str: - return "The {} plugin is invalid. {}".format(self._plugin_name, self._message) + return f"The {self._plugin_name} plugin is invalid. {self._message}" diff --git a/samtranslator/plugins/globals/globals.py b/samtranslator/plugins/globals/globals.py index 5332da2c4..861110ab6 100644 --- a/samtranslator/plugins/globals/globals.py +++ b/samtranslator/plugins/globals/globals.py @@ -386,7 +386,7 @@ def _do_merge(self, global_value, local_value): # type: ignore[no-untyped-def] if self.TOKEN.LIST == token_global == token_local: return self._merge_lists(global_value, local_value) # type: ignore[no-untyped-call] - raise TypeError("Unsupported type of objects. GlobalType={}, LocalType={}".format(token_global, token_local)) + raise TypeError(f"Unsupported type of objects. GlobalType={token_global}, LocalType={token_local}") def _merge_lists(self, global_list, local_list): # type: ignore[no-untyped-def] """ @@ -477,4 +477,4 @@ def __init__(self, logical_id, message) -> None: # type: ignore[no-untyped-def] @property def message(self) -> str: - return "'{}' section is invalid. {}".format(self._logical_id, self._message) + return f"'{self._logical_id}' section is invalid. {self._message}" diff --git a/samtranslator/plugins/policies/policy_templates_plugin.py b/samtranslator/plugins/policies/policy_templates_plugin.py index e614644a5..2fea39415 100644 --- a/samtranslator/plugins/policies/policy_templates_plugin.py +++ b/samtranslator/plugins/policies/policy_templates_plugin.py @@ -100,7 +100,7 @@ def _process_policy_template(self, logical_id, template_data): # type: ignore[n raise InvalidResourceException(logical_id, str(ex)) from ex except InvalidParameterValues as ex: raise InvalidResourceException( - logical_id, "Must specify valid parameter values for policy template '{}'".format(template_name) + logical_id, f"Must specify valid parameter values for policy template '{template_name}'" ) from ex def _is_supported(self, resource_type): # type: ignore[no-untyped-def] diff --git a/samtranslator/plugins/sam_plugins.py b/samtranslator/plugins/sam_plugins.py index 27a256c8b..54298fab1 100644 --- a/samtranslator/plugins/sam_plugins.py +++ b/samtranslator/plugins/sam_plugins.py @@ -78,7 +78,7 @@ def register(self, plugin): # type: ignore[no-untyped-def] raise ValueError("Plugin must be implemented as a subclass of BasePlugin class") if self.is_registered(plugin.name): - raise ValueError("Plugin with name {} is already registered".format(plugin.name)) + raise ValueError(f"Plugin with name {plugin.name} is already registered") self._plugins.append(plugin) @@ -124,9 +124,7 @@ def act(self, event: LifeCycleEvents, *args: Any, **kwargs: Any) -> None: for plugin in self._plugins: if not hasattr(plugin, method_name): - raise NameError( - "'{}' method is not found in the plugin with name '{}'".format(method_name, plugin.name) - ) + raise NameError(f"'{method_name}' method is not found in the plugin with name '{plugin.name}'") try: getattr(plugin, method_name)(*args, **kwargs) diff --git a/samtranslator/policy_template_processor/processor.py b/samtranslator/policy_template_processor/processor.py index 0898a79c8..086b4743a 100644 --- a/samtranslator/policy_template_processor/processor.py +++ b/samtranslator/policy_template_processor/processor.py @@ -154,5 +154,5 @@ def _read_json(filepath: str) -> Any: :param filepath: Path to the file :return dict: Dictionary containing file data """ - with open(filepath, "r", encoding="utf-8") as fp: + with open(filepath, encoding="utf-8") as fp: return json.load(fp) diff --git a/samtranslator/swagger/swagger.py b/samtranslator/swagger/swagger.py index 96e57d53c..7c882a741 100644 --- a/samtranslator/swagger/swagger.py +++ b/samtranslator/swagger/swagger.py @@ -130,11 +130,7 @@ def add_lambda_integration( # noqa: too-many-arguments method = self._normalize_method_name(method) if self.has_integration(path, method): raise InvalidDocumentException( - [ - InvalidTemplateException( - "Lambda integration already exists on Path={}, Method={}".format(path, method) - ) - ] + [InvalidTemplateException(f"Lambda integration already exists on Path={path}, Method={method}")] ) self.add_path(path, method) @@ -198,7 +194,7 @@ def add_state_machine_integration( # type: ignore[no-untyped-def] # noqa: too-m method = self._normalize_method_name(method) if self.has_integration(path, method): raise InvalidDocumentException( - [InvalidTemplateException("Integration already exists on Path={}, Method={}".format(path, method))] + [InvalidTemplateException(f"Integration already exists on Path={path}, Method={method}")] ) self.add_path(path, method) @@ -313,7 +309,7 @@ def add_cors( # type: ignore[no-untyped-def] # noqa: too-many-arguments allowed_methods = self._make_cors_allowed_methods_for_path_item(path_item) # APIGW expects the value to be a "string expression". Hence wrap in another quote. Ex: "'GET,POST,DELETE'" - allowed_methods = "'{}'".format(allowed_methods) + allowed_methods = f"'{allowed_methods}'" if allow_credentials is not True: allow_credentials = False @@ -837,7 +833,7 @@ def add_request_model_to_method(self, path, method_name, request_model): # type parameter = Py27Dict() parameter["in"] = "body" parameter["name"] = model_name - parameter["schema"] = {"$ref": "#/definitions/{}".format(model_name)} + parameter["schema"] = {"$ref": f"#/definitions/{model_name}"} if model_required is not None: parameter["required"] = model_required @@ -850,7 +846,7 @@ def add_request_model_to_method(self, path, method_name, request_model): # type SwaggerEditor._OPENAPI_VERSION_3_REGEX, self._doc["openapi"] ): method_definition["requestBody"] = { - "content": {"application/json": {"schema": {"$ref": "#/components/schemas/{}".format(model_name)}}} + "content": {"application/json": {"schema": {"$ref": f"#/components/schemas/{model_name}"}}} } if model_required is not None: @@ -981,7 +977,7 @@ def _add_iam_resource_policy_for_method(self, policy_list, effect, resource_list if not isinstance(policy_list, (dict, list)): raise InvalidDocumentException( - [InvalidTemplateException("Type of '{}' must be a list or dictionary".format(policy_list))] + [InvalidTemplateException(f"Type of '{policy_list}' must be a list or dictionary")] ) if not isinstance(policy_list, list): diff --git a/samtranslator/translator/arn_generator.py b/samtranslator/translator/arn_generator.py index 445b26762..c12536343 100644 --- a/samtranslator/translator/arn_generator.py +++ b/samtranslator/translator/arn_generator.py @@ -57,7 +57,7 @@ def generate_aws_managed_policy_arn(cls, policy_name: str) -> str: :param policy_name: Name of the policy :return: ARN Of the managed policy """ - return "arn:{}:iam::aws:policy/{}".format(ArnGenerator.get_partition_name(), policy_name) + return f"arn:{ArnGenerator.get_partition_name()}:iam::aws:policy/{policy_name}" @classmethod def get_partition_name(cls, region: Optional[str] = None) -> str: diff --git a/samtranslator/translator/logical_id_generator.py b/samtranslator/translator/logical_id_generator.py index 9cf56544d..835692ddf 100644 --- a/samtranslator/translator/logical_id_generator.py +++ b/samtranslator/translator/logical_id_generator.py @@ -44,7 +44,7 @@ def gen(self) -> str: """ data_hash = self.get_hash() - return "{prefix}{hash}".format(prefix=self._prefix, hash=data_hash) + return f"{self._prefix}{data_hash}" def get_hash(self, length: int = HASH_LENGTH) -> str: """ diff --git a/samtranslator/validator/validator.py b/samtranslator/validator/validator.py index 7a0898805..58d049501 100644 --- a/samtranslator/validator/validator.py +++ b/samtranslator/validator/validator.py @@ -136,7 +136,7 @@ def _process_error(self, error, errors_set): # type: ignore[no-untyped-def] # [Path.To.Element] Error message error_path = ".".join([str(p) for p in error.absolute_path]) if error.absolute_path else "." - error_content = "[{}] {}".format(error_path, self._cleanup_error_message(error)) # type: ignore[no-untyped-call] + error_content = f"[{error_path}] {self._cleanup_error_message(error)}" # type: ignore[no-untyped-call] if error_content not in errors_set: # We set the value to None as we don't use it diff --git a/tests/metrics/test_method_decorator.py b/tests/metrics/test_method_decorator.py index d21903862..e1155cd06 100644 --- a/tests/metrics/test_method_decorator.py +++ b/tests/metrics/test_method_decorator.py @@ -37,7 +37,7 @@ def test_get_metric_name_with_name_and_prefix(self): given_metric_name = "MetricName" given_prefix = "Prefix" metric_name = _get_metric_name(given_prefix, given_metric_name, None, []) - self.assertEqual(metric_name, "{}-{}".format(given_prefix, given_metric_name)) + self.assertEqual(metric_name, f"{given_prefix}-{given_metric_name}") def test_get_metric_name_with_function(self): def my_function(): diff --git a/tests/model/eventsources/test_api_event_source.py b/tests/model/eventsources/test_api_event_source.py index d13729a03..47f36558d 100644 --- a/tests/model/eventsources/test_api_event_source.py +++ b/tests/model/eventsources/test_api_event_source.py @@ -30,7 +30,7 @@ def test_get_permission_without_trailing_slash(self): self.assertIsInstance(perm, LambdaPermission) try: - arn = self._extract_path_from_arn("{}PermissionProd".format(self.logical_id), perm) + arn = self._extract_path_from_arn(f"{self.logical_id}PermissionProd", perm) except AttributeError: self.fail("Permission class isn't valid") @@ -45,7 +45,7 @@ def test_get_permission_with_trailing_slash(self): self.assertIsInstance(perm, LambdaPermission) try: - arn = self._extract_path_from_arn("{}PermissionProd".format(self.logical_id), perm) + arn = self._extract_path_from_arn(f"{self.logical_id}PermissionProd", perm) except AttributeError: self.fail("Permission class isn't valid") @@ -60,7 +60,7 @@ def test_get_permission_with_path_parameter_to_any_path(self): self.assertIsInstance(perm, LambdaPermission) try: - arn = self._extract_path_from_arn("{}PermissionProd".format(self.logical_id), perm) + arn = self._extract_path_from_arn(f"{self.logical_id}PermissionProd", perm) except AttributeError: self.fail("Permission class isn't valid") @@ -77,7 +77,7 @@ def test_get_permission_with_path_parameter(self): self.assertIsInstance(perm, LambdaPermission) try: - arn = self._extract_path_from_arn("{}PermissionProd".format(self.logical_id), perm) + arn = self._extract_path_from_arn(f"{self.logical_id}PermissionProd", perm) except AttributeError: self.fail("Permission class isn't valid") @@ -94,7 +94,7 @@ def test_get_permission_with_proxy_resource(self): self.assertIsInstance(perm, LambdaPermission) try: - arn = self._extract_path_from_arn("{}PermissionProd".format(self.logical_id), perm) + arn = self._extract_path_from_arn(f"{self.logical_id}PermissionProd", perm) except AttributeError: self.fail("Permission class isn't valid") @@ -111,7 +111,7 @@ def test_get_permission_with_just_slash(self): self.assertIsInstance(perm, LambdaPermission) try: - arn = self._extract_path_from_arn("{}PermissionProd".format(self.logical_id), perm) + arn = self._extract_path_from_arn(f"{self.logical_id}PermissionProd", perm) except AttributeError: self.fail("Permission class isn't valid") diff --git a/tests/openapi/test_openapi.py b/tests/openapi/test_openapi.py index 767b1159b..02a02fba9 100644 --- a/tests/openapi/test_openapi.py +++ b/tests/openapi/test_openapi.py @@ -360,7 +360,7 @@ def test_must_work_on_valid_values(self, openapi): ] ) def test_must_fail_for_invalid_values(self, data, case): - self.assertFalse(OpenApiEditor.is_valid(data), "openapi dictionary with {} must not be valid".format(case)) + self.assertFalse(OpenApiEditor.is_valid(data), f"openapi dictionary with {case} must not be valid") class TestOpenApiEditor_add_auth(TestCase): diff --git a/tests/plugins/api/test_default_definition_body_plugin.py b/tests/plugins/api/test_default_definition_body_plugin.py index 53913e0cb..e6c7a9368 100644 --- a/tests/plugins/api/test_default_definition_body_plugin.py +++ b/tests/plugins/api/test_default_definition_body_plugin.py @@ -44,6 +44,6 @@ def test_must_process_functions(self, SamTemplateMock): sam_template.iterate.assert_any_call({"AWS::Serverless::HttpApi"}) -class ApiResource(object): +class ApiResource: def __init__(self): self.properties = {} diff --git a/tests/plugins/application/test_serverless_app_plugin.py b/tests/plugins/application/test_serverless_app_plugin.py index c5f17621a..e0a04944a 100644 --- a/tests/plugins/application/test_serverless_app_plugin.py +++ b/tests/plugins/application/test_serverless_app_plugin.py @@ -319,7 +319,7 @@ def test_sleep_between_sar_checks(self, SamTemplateMock): self.assertEqual(self.plugin._get_sleep_time_sec.call_count, 1) # make sure we slept once -class ApplicationResource(object): +class ApplicationResource: def __init__(self, app_id="app_id", semver="1.3.5", location=None): self.properties = ( {"ApplicationId": app_id, "SemanticVersion": semver} diff --git a/tests/plugins/globals/test_globals.py b/tests/plugins/globals/test_globals.py index 755721306..bd4ff0bbc 100644 --- a/tests/plugins/globals/test_globals.py +++ b/tests/plugins/globals/test_globals.py @@ -5,7 +5,7 @@ from samtranslator.plugins.globals.globals import GlobalProperties, Globals, InvalidGlobalsSectionException -class GlobalPropertiesTestCases(object): +class GlobalPropertiesTestCases: dict_with_single_level_should_be_merged = { "global": {"a": 1, "b": 2}, "local": {"a": "foo", "c": 3, "d": 4}, diff --git a/tests/policy_template_processor/test_processor.py b/tests/policy_template_processor/test_processor.py index 0da4f95b6..b26ef1d8f 100644 --- a/tests/policy_template_processor/test_processor.py +++ b/tests/policy_template_processor/test_processor.py @@ -221,7 +221,7 @@ def test_read_json_must_read_from_file(self, json_loads_mock): result = PolicyTemplatesProcessor._read_json(filepath) self.assertEqual(result, json_return) - open_mock.assert_called_once_with(filepath, "r", encoding="utf-8") + open_mock.assert_called_once_with(filepath, encoding="utf-8") self.assertEqual(1, json_loads_mock.call_count) @patch.object(PolicyTemplatesProcessor, "_read_json") diff --git a/tests/policy_template_processor/test_schema.py b/tests/policy_template_processor/test_schema.py index f1eebce2d..00c7516c0 100644 --- a/tests/policy_template_processor/test_schema.py +++ b/tests/policy_template_processor/test_schema.py @@ -4,7 +4,7 @@ from samtranslator.policy_template_processor.processor import PolicyTemplatesProcessor -class TestTemplates(object): +class TestTemplates: """ Write your test cases here as different variables that store the entire template file. Start the variable with "succeed" if you want to test success case, "fail" if you want to test failure cases. The test runner will know diff --git a/tests/ruff.toml b/tests/ruff.toml index 7a81d8467..e363fcedf 100644 --- a/tests/ruff.toml +++ b/tests/ruff.toml @@ -12,8 +12,16 @@ select = [ "Q", # flake8-quotes "TID", # flake8-tidy-imports "RUF", # Ruff-specific rules + "UP", # pyupgrade ] +# Mininal python version we support is 3.7 +target-version = "py37" + +# https://github.com/charliermarsh/ruff/issues/2382 +[pyupgrade] +keep-runtime-typing = true + [per-file-ignores] # The code quality of tests can be a bit lower: diff --git a/tests/swagger/test_swagger.py b/tests/swagger/test_swagger.py index 4eef4905a..2795d022a 100644 --- a/tests/swagger/test_swagger.py +++ b/tests/swagger/test_swagger.py @@ -371,7 +371,7 @@ def test_must_make_default_value_with_optional_allowed_methods(self): options_method_response_allow_credentials = True default_allow_methods_value = "some default value" - default_allow_methods_value_with_quotes = "'{}'".format(default_allow_methods_value) + default_allow_methods_value_with_quotes = f"'{default_allow_methods_value}'" expected = {"some cors": "return value"} path = "/foo" @@ -654,7 +654,7 @@ def test_must_work_on_valid_values(self, swagger): ] ) def test_must_fail_for_invalid_values(self, data, case): - self.assertFalse(SwaggerEditor.is_valid(data), "Swagger dictionary with {} must not be valid".format(case)) + self.assertFalse(SwaggerEditor.is_valid(data), f"Swagger dictionary with {case} must not be valid") class TestSwaggerEditor_add_models(TestCase): diff --git a/tests/test_types.py b/tests/test_types.py index 6ee2256ed..ea5bc4aec 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -2,7 +2,7 @@ from samtranslator.model.types import IS_INT, dict_of, is_type, list_of, one_of -class DummyType(object): +class DummyType: pass @@ -12,7 +12,7 @@ def test_is_type_validator(): for value, value_type in example_properties: # Check that is_type(value_type) passes for value validate = is_type(value_type) - assert validate(value), "is_type validator failed for type {}, value {}".format(value_type, value) + assert validate(value), f"is_type validator failed for type {value_type}, value {value}" # For every non-matching type, check that is_type(other_type) raises TypeError for _, other_type in example_properties: @@ -20,7 +20,7 @@ def test_is_type_validator(): validate = is_type(other_type) assert not validate( value, should_raise=False - ), "is_type validator unexpectedly succeeded for type {}, value {}".format(value_type, value) + ), f"is_type validator unexpectedly succeeded for type {value_type}, value {value}" with pytest.raises(TypeError): validate(value) @@ -39,11 +39,11 @@ def test_is_type_validator(): def test_list_of_validator(value, item_type, should_pass): validate = list_of(is_type(item_type)) if should_pass: - assert validate(value), "list_of validator failed for item type {}, value {}".format(item_type, value) + assert validate(value), f"list_of validator failed for item type {item_type}, value {value}" else: assert not validate( value, should_raise=False - ), "list_of validator unexpectedly succeeded for item type {}, value {}".format(item_type, value) + ), f"list_of validator unexpectedly succeeded for item type {item_type}, value {value}" with pytest.raises(TypeError): validate(value) @@ -93,10 +93,10 @@ def test_dict_of_validator(value, key_type, value_type, should_pass): def test_one_of_validator(value, validators, should_pass): validate = one_of(*validators) if should_pass: - assert validate(value), "one_of validator failed for validators {}, value {}".format(validators, value) + assert validate(value), f"one_of validator failed for validators {validators}, value {value}" else: assert not validate( value, should_raise=False - ), "one_of validator unexpectedly succeeded for validators {}, value {}".format(validators, value) + ), f"one_of validator unexpectedly succeeded for validators {validators}, value {value}" with pytest.raises(TypeError): validate(value) diff --git a/tests/translator/model/preferences/test_deployment_preference_collection.py b/tests/translator/model/preferences/test_deployment_preference_collection.py index 56f16d72f..348e375b5 100644 --- a/tests/translator/model/preferences/test_deployment_preference_collection.py +++ b/tests/translator/model/preferences/test_deployment_preference_collection.py @@ -296,7 +296,7 @@ def test_deployment_preference_with_alarms_not_list(self): deployment_preference_collection.deployment_group(self.function_logical_id) self.assertEqual( e.exception.message, - "Resource with id [{}] is invalid. Alarms must be a list".format(self.function_logical_id), + f"Resource with id [{self.function_logical_id}] is invalid. Alarms must be a list", ) @patch("boto3.session.Session.region_name", "ap-southeast-1") @@ -311,7 +311,7 @@ def test_deployment_preference_with_alarms_intrinsic_if_missing_arg(self): deployment_preference_collection.deployment_group(self.function_logical_id) self.assertEqual( e.exception.message, - "Resource with id [{}] is invalid. Fn::If requires 3 arguments".format(self.function_logical_id), + f"Resource with id [{self.function_logical_id}] is invalid. Fn::If requires 3 arguments", ) @patch("boto3.session.Session.region_name", "ap-southeast-1") @@ -326,7 +326,7 @@ def test_deployment_preference_with_alarms_intrinsic_if_not_list(self): deployment_preference_collection.deployment_group(self.function_logical_id) self.assertEqual( e.exception.message, - "Resource with id [{}] is invalid. Fn::If requires 3 arguments".format(self.function_logical_id), + f"Resource with id [{self.function_logical_id}] is invalid. Fn::If requires 3 arguments", ) @patch("boto3.session.Session.region_name", "ap-southeast-1") diff --git a/tests/translator/test_api_resource.py b/tests/translator/test_api_resource.py index a6d7ef52b..0b1340967 100644 --- a/tests/translator/test_api_resource.py +++ b/tests/translator/test_api_resource.py @@ -122,7 +122,7 @@ def test_make_auto_deployable_with_swagger_dict(self, LogicalIdGeneratorMock): deployment.make_auto_deployable(stage, swagger=swagger) self.assertEqual(deployment.logical_id, id_val) - self.assertEqual(deployment.Description, "RestApi deployment id: {}".format(full_hash)) + self.assertEqual(deployment.Description, f"RestApi deployment id: {full_hash}") LogicalIdGeneratorMock.assert_called_once_with(prefix, str(swagger)) generator_mock.gen.assert_called_once_with() diff --git a/tests/translator/test_function_resources.py b/tests/translator/test_function_resources.py index 614f10edc..afd8c95f4 100644 --- a/tests/translator/test_function_resources.py +++ b/tests/translator/test_function_resources.py @@ -577,7 +577,7 @@ def test_version_creation_with_code_sha(self, LogicalIdGeneratorMock): generator_mock = LogicalIdGeneratorMock.return_value prefix = "SomeLogicalId" hash_code = "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b" - id_val = "{}{}".format(prefix, hash_code[:10]) + id_val = f"{prefix}{hash_code[:10]}" generator_mock.gen.return_value = id_val self.intrinsics_resolver_mock.resolve_parameter_refs.return_value = self.lambda_func.Code @@ -738,7 +738,7 @@ def test_alias_creation(self): alias = self.sam_func._construct_alias(name, self.lambda_func, self.lambda_version) - expected_logical_id = "%sAlias%s" % (self.lambda_func.logical_id, name) + expected_logical_id = f"{self.lambda_func.logical_id}Alias{name}" self.assertEqual(alias.logical_id, expected_logical_id) self.assertEqual(alias.Name, name) self.assertEqual(alias.FunctionName, {"Ref": self.lambda_func.logical_id}) diff --git a/tests/translator/test_logical_id_generator.py b/tests/translator/test_logical_id_generator.py index 1b66bac60..b0aff4435 100644 --- a/tests/translator/test_logical_id_generator.py +++ b/tests/translator/test_logical_id_generator.py @@ -36,7 +36,7 @@ def test_gen_dict_data(self, stringify_mock, get_hash_mock): generator = LogicalIdGenerator(self.prefix, data_obj=data) - expected = "{}{}".format(self.prefix, hash_value) + expected = f"{self.prefix}{hash_value}" self.assertEqual(expected, generator.gen()) get_hash_mock.assert_called_once_with() stringify_mock.assert_called_once_with(data) @@ -52,7 +52,7 @@ def test_gen_hash_data_override(self, stringify_mock): generator = LogicalIdGenerator(self.prefix, data_obj=data, data_hash=hash_value) - expected = "{}{}".format(self.prefix, hash_value) + expected = f"{self.prefix}{hash_value}" self.assertEqual(expected, generator.gen()) stringify_mock.assert_called_once_with(data) diff --git a/tests/translator/test_translator.py b/tests/translator/test_translator.py index 28173ef32..8bbf06fab 100644 --- a/tests/translator/test_translator.py +++ b/tests/translator/test_translator.py @@ -105,11 +105,11 @@ def mock_sar_service_call(self, service_call_function, logical_id, *args): application_id = args[0] status = "ACTIVE" if application_id == "no-access": - raise InvalidResourceException(logical_id, "Cannot access application: {}.".format(application_id)) + raise InvalidResourceException(logical_id, f"Cannot access application: {application_id}.") elif application_id == "non-existent": - raise InvalidResourceException(logical_id, "Cannot access application: {}.".format(application_id)) + raise InvalidResourceException(logical_id, f"Cannot access application: {application_id}.") elif application_id == "invalid-semver": - raise InvalidResourceException(logical_id, "Cannot access application: {}.".format(application_id)) + raise InvalidResourceException(logical_id, f"Cannot access application: {application_id}.") elif application_id == 1: raise InvalidResourceException(logical_id, "Type of property 'ApplicationId' is invalid.") elif application_id == "preparing" and self._wait_for_template_active_status < 2: @@ -145,14 +145,14 @@ class AbstractTestTranslator(TestCase): maxDiff = None def _read_input(self, testcase): - manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"), "r")) + manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"))) # To uncover unicode-related bugs, convert dict to JSON string and parse JSON back to dict return json.loads(json.dumps(manifest)) def _read_expected_output(self, testcase, partition): partition_folder = partition if partition != "aws" else "" expected_filepath = os.path.join(OUTPUT_FOLDER, partition_folder, testcase + ".json") - return json.load(open(expected_filepath, "r")) + return json.load(open(expected_filepath)) def _compare_transform(self, manifest, expected, partition, region): with patch("boto3.session.Session.region_name", region): @@ -162,9 +162,9 @@ def _compare_transform(self, manifest, expected, partition, region): "AWSLambdaBasicExecutionRole": "arn:{}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole".format( partition ), - "AmazonDynamoDBFullAccess": "arn:{}:iam::aws:policy/AmazonDynamoDBFullAccess".format(partition), - "AmazonDynamoDBReadOnlyAccess": "arn:{}:iam::aws:policy/AmazonDynamoDBReadOnlyAccess".format(partition), - "AWSLambdaRole": "arn:{}:iam::aws:policy/service-role/AWSLambdaRole".format(partition), + "AmazonDynamoDBFullAccess": f"arn:{partition}:iam::aws:policy/AmazonDynamoDBFullAccess", + "AmazonDynamoDBReadOnlyAccess": f"arn:{partition}:iam::aws:policy/AmazonDynamoDBReadOnlyAccess", + "AWSLambdaRole": f"arn:{partition}:iam::aws:policy/service-role/AWSLambdaRole", } if partition == "aws": mock_policy_loader.load.return_value[ @@ -173,7 +173,7 @@ def _compare_transform(self, manifest, expected, partition, region): else: mock_policy_loader.load.return_value[ "AWSXRayDaemonWriteAccess" - ] = "arn:{}:iam::aws:policy/AWSXRayDaemonWriteAccess".format(partition) + ] = f"arn:{partition}:iam::aws:policy/AWSXRayDaemonWriteAccess" output_fragment = transform(manifest, parameter_values, mock_policy_loader) @@ -345,12 +345,12 @@ def test_transform_success_openapi3(self, testcase, partition_with_region, mock_ region = partition_with_region[1] mock_get_region_from_session.return_value = region - manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"), "r")) + manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"))) # To uncover unicode-related bugs, convert dict to JSON string and parse JSON back to dict manifest = json.loads(json.dumps(manifest)) partition_folder = partition if partition != "aws" else "" expected_filepath = os.path.join(OUTPUT_FOLDER, partition_folder, testcase + ".json") - expected = json.load(open(expected_filepath, "r")) + expected = json.load(open(expected_filepath)) with patch("boto3.session.Session.region_name", region): parameter_values = get_template_parameter_values() @@ -359,9 +359,9 @@ def test_transform_success_openapi3(self, testcase, partition_with_region, mock_ "AWSLambdaBasicExecutionRole": "arn:{}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole".format( partition ), - "AmazonDynamoDBFullAccess": "arn:{}:iam::aws:policy/AmazonDynamoDBFullAccess".format(partition), - "AmazonDynamoDBReadOnlyAccess": "arn:{}:iam::aws:policy/AmazonDynamoDBReadOnlyAccess".format(partition), - "AWSLambdaRole": "arn:{}:iam::aws:policy/service-role/AWSLambdaRole".format(partition), + "AmazonDynamoDBFullAccess": f"arn:{partition}:iam::aws:policy/AmazonDynamoDBFullAccess", + "AmazonDynamoDBReadOnlyAccess": f"arn:{partition}:iam::aws:policy/AmazonDynamoDBReadOnlyAccess", + "AWSLambdaRole": f"arn:{partition}:iam::aws:policy/service-role/AWSLambdaRole", } output_fragment = transform(manifest, parameter_values, mock_policy_loader) @@ -401,12 +401,12 @@ def test_transform_success_resource_policy(self, testcase, partition_with_region region = partition_with_region[1] mock_get_region_from_session.return_value = region - manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"), "r")) + manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"))) # To uncover unicode-related bugs, convert dict to JSON string and parse JSON back to dict manifest = json.loads(json.dumps(manifest)) partition_folder = partition if partition != "aws" else "" expected_filepath = os.path.join(OUTPUT_FOLDER, partition_folder, testcase + ".json") - expected = json.load(open(expected_filepath, "r")) + expected = json.load(open(expected_filepath)) with patch("boto3.session.Session.region_name", region): parameter_values = get_template_parameter_values() @@ -415,9 +415,9 @@ def test_transform_success_resource_policy(self, testcase, partition_with_region "AWSLambdaBasicExecutionRole": "arn:{}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole".format( partition ), - "AmazonDynamoDBFullAccess": "arn:{}:iam::aws:policy/AmazonDynamoDBFullAccess".format(partition), - "AmazonDynamoDBReadOnlyAccess": "arn:{}:iam::aws:policy/AmazonDynamoDBReadOnlyAccess".format(partition), - "AWSLambdaRole": "arn:{}:iam::aws:policy/service-role/AWSLambdaRole".format(partition), + "AmazonDynamoDBFullAccess": f"arn:{partition}:iam::aws:policy/AmazonDynamoDBFullAccess", + "AmazonDynamoDBReadOnlyAccess": f"arn:{partition}:iam::aws:policy/AmazonDynamoDBReadOnlyAccess", + "AWSLambdaRole": f"arn:{partition}:iam::aws:policy/service-role/AWSLambdaRole", } output_fragment = transform(manifest, parameter_values, mock_policy_loader) @@ -481,8 +481,8 @@ def test_transform_success_no_side_effect(self, testcase, partition_with_region, ) @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_transform_invalid_document(testcase): - manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"), "r")) - expected = json.load(open(os.path.join(OUTPUT_FOLDER, testcase + ".json"), "r")) + manifest = yaml_parse(open(os.path.join(INPUT_FOLDER, testcase + ".yaml"))) + expected = json.load(open(os.path.join(OUTPUT_FOLDER, testcase + ".json"))) mock_policy_loader = MagicMock() parameter_values = get_template_parameter_values() @@ -1017,9 +1017,9 @@ def test_throws_when_resources_not_all_dicts(self): @patch("boto3.session.Session.region_name", "ap-southeast-1") @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_validate_translated_no_metadata(self): - with open(os.path.join(INPUT_FOLDER, "translate_convert_metadata.yaml"), "r") as f: + with open(os.path.join(INPUT_FOLDER, "translate_convert_metadata.yaml")) as f: template = yaml_parse(f.read()) - with open(os.path.join(OUTPUT_FOLDER, "translate_convert_no_metadata.json"), "r") as f: + with open(os.path.join(OUTPUT_FOLDER, "translate_convert_no_metadata.json")) as f: expected = json.loads(f.read()) sam_parser = Parser() @@ -1031,9 +1031,9 @@ def test_validate_translated_no_metadata(self): @patch("botocore.client.ClientEndpointBridge._check_default_region", mock_get_region) def test_validate_translated_metadata(self): self.maxDiff = None - with open(os.path.join(INPUT_FOLDER, "translate_convert_metadata.yaml"), "r") as f: + with open(os.path.join(INPUT_FOLDER, "translate_convert_metadata.yaml")) as f: template = yaml_parse(f.read()) - with open(os.path.join(OUTPUT_FOLDER, "translate_convert_metadata.json"), "r") as f: + with open(os.path.join(OUTPUT_FOLDER, "translate_convert_metadata.json")) as f: expected = json.loads(f.read()) sam_parser = Parser() diff --git a/tests/unit/model/preferences/test_deployment_preference_collection.py b/tests/unit/model/preferences/test_deployment_preference_collection.py index 6df343937..fc8755634 100644 --- a/tests/unit/model/preferences/test_deployment_preference_collection.py +++ b/tests/unit/model/preferences/test_deployment_preference_collection.py @@ -21,7 +21,7 @@ def test_codedeploy_iam_role_contains_AWSCodeDeployRoleForLambdaLimited_managedp iam_role = DeploymentPreferenceCollection().get_codedeploy_iam_role() self.assertIn( - "arn:{}:iam::aws:policy/service-role/AWSCodeDeployRoleForLambdaLimited".format(partition), + f"arn:{partition}:iam::aws:policy/service-role/AWSCodeDeployRoleForLambdaLimited", iam_role.ManagedPolicyArns, ) @@ -41,6 +41,6 @@ def test_codedeploy_iam_role_contains_AWSCodeDeployRoleForLambda_managedpolicy(s iam_role = DeploymentPreferenceCollection().get_codedeploy_iam_role() self.assertIn( - "arn:{}:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda".format(partition), + f"arn:{partition}:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda", iam_role.ManagedPolicyArns, ) diff --git a/tests/validator/test_validator.py b/tests/validator/test_validator.py index 9d3a15b53..a5e24c893 100644 --- a/tests/validator/test_validator.py +++ b/tests/validator/test_validator.py @@ -164,7 +164,7 @@ def test_success(self, testcase): validation_errors = TestValidatorProvider.get().get_errors(manifest) has_errors = len(validation_errors) if has_errors: - print("\nFailing template: {0}\n".format(testcase)) + print(f"\nFailing template: {testcase}\n") print(validation_errors) assert len(validation_errors) == 0 From e2dd6f63d00b60ccce5427196abab3f7b60ce9d9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:27:28 +0000 Subject: [PATCH 20/32] chore(schema): update (#3020) Co-authored-by: github-actions --- .../internal/schema_source/sam-docs.json | 18 +- samtranslator/schema/schema.json | 172 ++++++++++-------- schema_source/cloudformation.schema.json | 20 +- schema_source/sam.schema.json | 152 ++++++++-------- 4 files changed, 206 insertions(+), 156 deletions(-) diff --git a/samtranslator/internal/schema_source/sam-docs.json b/samtranslator/internal/schema_source/sam-docs.json index f6acb5eed..bfbef09fa 100644 --- a/samtranslator/internal/schema_source/sam-docs.json +++ b/samtranslator/internal/schema_source/sam-docs.json @@ -169,6 +169,20 @@ "TriggerConfigurations": "A list of trigger configurations you want to associate with the deployment group\\. Used to notify an SNS topic on lifecycle events\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TriggerConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-triggerconfigurations) property of an `AWS::CodeDeploy::DeploymentGroup` resource\\.", "Type": "There are two categories of deployment types at the moment: Linear and Canary\\. For more information about available deployment types see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." }, + "sam-property-function-documentdb": { + "BatchSize": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ BatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "Cluster": "The Amazon Resource Name \\(ARN\\) of the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ EventSourceArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "CollectionName": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ CollectionName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-collectionname)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "DatabaseName": "The name of the database to consume within the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ DatabaseName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-databasename)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig`data type\\.", + "Enabled": "If `true`, the event source mapping is active\\. To pause polling and invocation, set to `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ Enabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "FilterCriteria": "An object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [ Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "FullDocument": "Determines what Amazon DocumentDB sends to your event stream during document update operations\\. If set to `UpdateLookup`, Amazon DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, Amazon DocumentDB sends only a partial document that contains the changes\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FullDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-fulldocument)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "MaximumBatchingWindowInSeconds": "The maximum amount of time to gather records before invoking the function, in seconds\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ MaximumBatchingWindowInSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "SecretsManagerKmsKeyId": "The AWS Key Management Service \\(AWS KMS\\) key ID of a customer managed key from AWS Secrets Manager\\. Required when you use a customer managed key from Secrets Manager with a Lambda execution role that doesn\u2019t include the `kms:Decrypt` permission\\. \nThe value of this property is a UUID\\. For example: `1abc23d4-567f-8ab9-cde0-1fab234c5d67`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn\u2019t have an AWS CloudFormation equivalent\\.", + "SourceAccessConfigurations": "An array of the authentication protocol or virtual host\\. Specify this using the [ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `DocumentDB` event source type, the only valid configuration type is `BASIC_AUTH`\\. \n+ `BASIC_AUTH` \u2013 The Secrets Manager secret that stores your broker credentials\\. For this type, the credential must be in the following format: `{\"username\": \"your-username\", \"password\": \"your-password\"}`\\. Only one object of type `BASIC_AUTH` is allowed\\.\n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "StartingPosition": "The position in a stream from which to start reading\\. \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPosition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "StartingPositionTimestamp": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\. \n*Type*: Double \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPositionTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp)` property of an `AWS::Lambda::EventSourceMapping` resource\\." + }, "sam-property-function-dynamodb": { "BatchSize": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*Default*: 100 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BatchSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize) property of an `AWS::Lambda::EventSourceMapping` resource\\. \n*Minimum*: `1` \n*Maximum*: `1000`", "BisectBatchOnFunctionError": "If the function returns an error, split the batch in two and retry\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`BisectBatchOnFunctionError`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-bisectbatchonfunctionerror) property of an `AWS::Lambda::EventSourceMapping` resource\\.", @@ -206,8 +220,8 @@ "OnSuccess": "A destination for events that were processed successfully\\. \n*Type*: [OnSuccess](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onsuccess.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`OnSuccess`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\." }, "sam-property-function-eventsource": { - "Properties": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "Type": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." + "Properties": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "Type": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." }, "sam-property-function-functioncode": { "Bucket": "An Amazon S3 bucket in the same AWS Region as your function\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket) property of the `AWS::Lambda::Function` `Code` data type\\.", diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 25992893e..89f9d7030 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -99215,6 +99215,12 @@ "title": "JobTemplateId", "type": "string" }, + "MaintenanceWindows": { + "items": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.MaintenanceWindow" + }, + "type": "array" + }, "PresignedUrlConfig": { "$ref": "#/definitions/AWS::IoT::JobTemplate.PresignedUrlConfig", "markdownDescription": "Configuration for pre\\-signed S3 URLs\\. \n*Required*: No \n*Type*: [PresignedUrlConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-presignedurlconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -99366,6 +99372,18 @@ }, "type": "object" }, + "AWS::IoT::JobTemplate.MaintenanceWindow": { + "additionalProperties": false, + "properties": { + "DurationInMinutes": { + "type": "number" + }, + "StartTime": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::JobTemplate.PresignedUrlConfig": { "additionalProperties": false, "properties": { @@ -145458,7 +145476,7 @@ "Content": { "markdownDescription": "The policy text content\\. The text that you supply must adhere to the rules of the policy type you specify in the `Type` parameter\\. The following AWS Organizations quotas are enforced for the maximum size of a policy document: \n+ Service control policies: 5,120 bytes *\\(not characters\\)*\n+ AI services opt\\-out policies: 2,500 characters\n+ Backup policies: 10,000 characters\n+ Tag policies: 10,000 characters\nFor more information about Organizations service quotas, see [Quotas for AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html) in the *AWS Organizations User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000000` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Content", - "type": "string" + "type": "object" }, "Description": { "markdownDescription": "Human readable description of the policy\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", @@ -194148,16 +194166,16 @@ "$ref": "#/definitions/AlexaSkillEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "AlexaSkill" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -194241,16 +194259,16 @@ "$ref": "#/definitions/CloudWatchLogsEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "CloudWatchLogs" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -194426,16 +194444,16 @@ "$ref": "#/definitions/CognitoEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Cognito" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -194719,16 +194737,16 @@ "$ref": "#/definitions/DocumentDBEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "DocumentDB" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -194798,16 +194816,16 @@ "$ref": "#/definitions/DynamoDBEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "DynamoDB" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -195367,16 +195385,16 @@ "$ref": "#/definitions/HttpApiEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "HttpApi" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -195474,16 +195492,16 @@ "$ref": "#/definitions/IoTRuleEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "IoTRule" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -195534,16 +195552,16 @@ "$ref": "#/definitions/KinesisEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Kinesis" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -196080,16 +196098,16 @@ "$ref": "#/definitions/MQEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "MQ" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -196202,16 +196220,16 @@ "$ref": "#/definitions/MSKEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "MSK" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -196619,16 +196637,16 @@ "$ref": "#/definitions/S3EventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "S3" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -196693,16 +196711,16 @@ "$ref": "#/definitions/SNSEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "SNS" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -196779,16 +196797,16 @@ "$ref": "#/definitions/SQSEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "SQS" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -196971,16 +196989,16 @@ "$ref": "#/definitions/SelfManagedKafkaEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "SelfManagedKafka" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -198430,16 +198448,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__ApiEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Api" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -198535,16 +198553,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__CloudWatchEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "CloudWatchEvent" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -198660,16 +198678,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__EventBridgeRuleEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "EventBridgeRule" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -199747,16 +199765,16 @@ "$ref": "#/definitions/EventsScheduleProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Schedule" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -199777,16 +199795,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__ScheduleV2EventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "ScheduleV2" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } diff --git a/schema_source/cloudformation.schema.json b/schema_source/cloudformation.schema.json index 756d8e6f2..4e7d7957c 100644 --- a/schema_source/cloudformation.schema.json +++ b/schema_source/cloudformation.schema.json @@ -99180,6 +99180,12 @@ "title": "JobTemplateId", "type": "string" }, + "MaintenanceWindows": { + "items": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.MaintenanceWindow" + }, + "type": "array" + }, "PresignedUrlConfig": { "$ref": "#/definitions/AWS::IoT::JobTemplate.PresignedUrlConfig", "markdownDescription": "Configuration for pre\\-signed S3 URLs\\. \n*Required*: No \n*Type*: [PresignedUrlConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-jobtemplate-presignedurlconfig.html) \n*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)", @@ -99331,6 +99337,18 @@ }, "type": "object" }, + "AWS::IoT::JobTemplate.MaintenanceWindow": { + "additionalProperties": false, + "properties": { + "DurationInMinutes": { + "type": "number" + }, + "StartTime": { + "type": "string" + } + }, + "type": "object" + }, "AWS::IoT::JobTemplate.PresignedUrlConfig": { "additionalProperties": false, "properties": { @@ -145416,7 +145434,7 @@ "Content": { "markdownDescription": "The policy text content\\. The text that you supply must adhere to the rules of the policy type you specify in the `Type` parameter\\. The following AWS Organizations quotas are enforced for the maximum size of a policy document: \n+ Service control policies: 5,120 bytes *\\(not characters\\)*\n+ AI services opt\\-out policies: 2,500 characters\n+ Backup policies: 10,000 characters\n+ Tag policies: 10,000 characters\nFor more information about Organizations service quotas, see [Quotas for AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html) in the *AWS Organizations User Guide*\\. \n*Required*: Yes \n*Type*: String \n*Minimum*: `1` \n*Maximum*: `1000000` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", "title": "Content", - "type": "string" + "type": "object" }, "Description": { "markdownDescription": "Human readable description of the policy\\. \n*Required*: No \n*Type*: String \n*Maximum*: `512` \n*Pattern*: `[\\s\\S]*` \n*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)", diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index 60ad7ea81..e5e0e8cfc 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -10,16 +10,16 @@ "$ref": "#/definitions/AlexaSkillEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "AlexaSkill" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -103,16 +103,16 @@ "$ref": "#/definitions/CloudWatchLogsEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "CloudWatchLogs" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -288,16 +288,16 @@ "$ref": "#/definitions/CognitoEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Cognito" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -555,16 +555,16 @@ "$ref": "#/definitions/DocumentDBEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "DocumentDB" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -634,16 +634,16 @@ "$ref": "#/definitions/DynamoDBEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "DynamoDB" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -1203,16 +1203,16 @@ "$ref": "#/definitions/HttpApiEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "HttpApi" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -1310,16 +1310,16 @@ "$ref": "#/definitions/IoTRuleEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "IoTRule" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -1370,16 +1370,16 @@ "$ref": "#/definitions/KinesisEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Kinesis" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -1916,16 +1916,16 @@ "$ref": "#/definitions/MQEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "MQ" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -2038,16 +2038,16 @@ "$ref": "#/definitions/MSKEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "MSK" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -2362,16 +2362,16 @@ "$ref": "#/definitions/S3EventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "S3" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -2436,16 +2436,16 @@ "$ref": "#/definitions/SNSEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "SNS" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -2522,16 +2522,16 @@ "$ref": "#/definitions/SQSEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "SQS" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -2714,16 +2714,16 @@ "$ref": "#/definitions/SelfManagedKafkaEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "SelfManagedKafka" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -4171,16 +4171,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__ApiEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Api" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -4276,16 +4276,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__CloudWatchEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "CloudWatchEvent" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -4401,16 +4401,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__EventBridgeRuleEventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "EventBridgeRule" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -5488,16 +5488,16 @@ "$ref": "#/definitions/EventsScheduleProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "Schedule" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } @@ -5518,16 +5518,16 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_function__ScheduleV2EventProperties" } ], - "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Object describing properties of this event mapping\\. The set of properties must conform to the defined Type\\. \n*Type*: [AlexaSkill](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-alexaskill.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-api.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchevent.html) \\| [CloudWatchLogs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cloudwatchlogs.html) \\| [Cognito](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-cognito.html) \\| [DocumentDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-documentdb.html) \\| [DynamoDB](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-dynamodb.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventbridgerule.html) \\| [HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapi.html) \\| [IoTRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-iotrule.html) \\| [Kinesis](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-kinesis.html) \\| [MQ](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-mq.html) \\| [MSK](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-msk.html) \\| [S3](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-s3.html) \\| [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-schedulev2.html) \\| [SelfManagedKafka](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-selfmanagedkafka.html) \\| [SNS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sns.html) \\| [SQS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqs.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Properties" }, "Type": { - "description": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "enum": [ "ScheduleV2" ], - "markdownDescription": "The event type\\. \n*Valid values*: `S3`, `SNS`, `Kinesis`, `DynamoDB`, `SQS`, `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `CloudWatchLogs`, `IoTRule`, `AlexaSkill`, `Cognito`, `EventBridgeRule`, `HttpApi`, `MSK`, `MQ`, `SelfManagedKafka` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The event type\\. \n*Valid values*: `AlexaSkill`, `Api`, `CloudWatchEvent`, `CloudWatchLogs`, `Cognito`, `DocumentDB`, `DynamoDB`, `EventBridgeRule`, `HttpApi`, `IoTRule`, `Kinesis`, `MQ`, `MSK`, `S3`, `Schedule`, `ScheduleV2`, `SelfManagedKafka`, `SNS`, `SQS` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Type", "type": "string" } From c5690d50b60acf5991db4c98e30e063722534429 Mon Sep 17 00:00:00 2001 From: Aayush thapa <84202325+aaythapa@users.noreply.github.com> Date: Mon, 13 Mar 2023 10:59:12 -0700 Subject: [PATCH 21/32] feat: Add EnableFunctionDefaultPermissions property to HTTP Api (#3001) Co-authored-by: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> --- .../schema_source/aws_serverless_httpapi.py | 1 + samtranslator/model/api/http_api_generator.py | 63 +++- samtranslator/model/apigatewayv2.py | 14 + samtranslator/model/sam_resources.py | 3 + samtranslator/schema/schema.json | 4 + schema_source/sam.schema.json | 4 + tests/model/test_api_v2.py | 15 + .../error_http_api_invalid_lambda_auth.yaml | 23 ++ ...lambda_auth_with_permissions_resource.yaml | 62 ++++ ...lambda_auth_with_permissions_resource.json | 346 ++++++++++++++++++ ...lambda_auth_with_permissions_resource.json | 346 ++++++++++++++++++ .../error_http_api_invalid_lambda_auth.json | 15 +- ...lambda_auth_with_permissions_resource.json | 346 ++++++++++++++++++ 13 files changed, 1232 insertions(+), 10 deletions(-) create mode 100644 tests/translator/input/http_api_lambda_auth_with_permissions_resource.yaml create mode 100644 tests/translator/output/aws-cn/http_api_lambda_auth_with_permissions_resource.json create mode 100644 tests/translator/output/aws-us-gov/http_api_lambda_auth_with_permissions_resource.json create mode 100644 tests/translator/output/http_api_lambda_auth_with_permissions_resource.json diff --git a/samtranslator/internal/schema_source/aws_serverless_httpapi.py b/samtranslator/internal/schema_source/aws_serverless_httpapi.py index 86c35c7ee..9a64cccfd 100644 --- a/samtranslator/internal/schema_source/aws_serverless_httpapi.py +++ b/samtranslator/internal/schema_source/aws_serverless_httpapi.py @@ -47,6 +47,7 @@ class LambdaAuthorizer(BaseModel): EnableSimpleResponses: Optional[bool] = lambdaauthorizer("EnableSimpleResponses") FunctionArn: SamIntrinsicable[str] = lambdaauthorizer("FunctionArn") FunctionInvokeRole: Optional[SamIntrinsicable[str]] = lambdaauthorizer("FunctionInvokeRole") + EnableFunctionDefaultPermissions: Optional[bool] # TODO: add docs Identity: Optional[LambdaAuthorizerIdentity] = lambdaauthorizer("Identity") diff --git a/samtranslator/model/api/http_api_generator.py b/samtranslator/model/api/http_api_generator.py index 9a6a87824..cbbac3324 100644 --- a/samtranslator/model/api/http_api_generator.py +++ b/samtranslator/model/api/http_api_generator.py @@ -11,10 +11,12 @@ ApiGatewayV2Stage, ) from samtranslator.model.exceptions import InvalidResourceException -from samtranslator.model.intrinsics import fnGetAtt, is_intrinsic, is_intrinsic_no_value, ref +from samtranslator.model.intrinsics import fnGetAtt, fnSub, is_intrinsic, is_intrinsic_no_value, ref +from samtranslator.model.lambda_ import LambdaPermission from samtranslator.model.route53 import Route53RecordSetGroup from samtranslator.model.s3_utils.uri_parser import parse_s3_uri from samtranslator.open_api.open_api import OpenApiEditor +from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.translator.logical_id_generator import LogicalIdGenerator from samtranslator.utils.types import Intrinsicable from samtranslator.utils.utils import InvalidValueType, dict_deep_get @@ -511,6 +513,60 @@ def _add_tags(self) -> None: open_api_editor.add_tags(self.tags) self.definition_body = open_api_editor.openapi + def _get_permission( + self, authorizer_name: str, authorizer_lambda_function_arn: str, api_arn: str + ) -> LambdaPermission: + """Constructs and returns the Lambda Permission resource allowing the Authorizer to invoke the function. + + :returns: the permission resource + :rtype: model.lambda_.LambdaPermission + """ + + resource = "${__ApiId__}/authorizers/*" + source_arn = fnSub( + ArnGenerator.generate_arn(partition="${AWS::Partition}", service="execute-api", resource=resource), + {"__ApiId__": api_arn}, + ) + + lambda_permission = LambdaPermission( + self.logical_id + authorizer_name + "AuthorizerPermission", attributes=self.passthrough_resource_attributes + ) + lambda_permission.Action = "lambda:InvokeFunction" + lambda_permission.FunctionName = authorizer_lambda_function_arn + lambda_permission.Principal = "apigateway.amazonaws.com" + lambda_permission.SourceArn = source_arn + + return lambda_permission + + def _construct_authorizer_lambda_permission(self, http_api: ApiGatewayV2HttpApi) -> List[LambdaPermission]: + if not self.auth: + return [] + + auth_properties = AuthProperties(**self.auth) + authorizers = self._get_authorizers(auth_properties.Authorizers, auth_properties.EnableIamAuthorizer) + + if not authorizers: + return [] + + permissions: List[LambdaPermission] = [] + + for authorizer_name, authorizer in authorizers.items(): + # Construct permissions for Lambda Authorizers only + # Http Api shouldn't create the permissions by default (when its none) + if ( + not authorizer.function_arn + or authorizer.enable_function_default_permissions is None + or not authorizer.enable_function_default_permissions + ): + continue + + permission = self._get_permission( + authorizer_name, authorizer.function_arn, http_api.get_runtime_attr("http_api_id") + ) + permissions.append(permission) + + return permissions + def _set_default_authorizer( self, open_api_editor: OpenApiEditor, @@ -582,6 +638,7 @@ def _get_authorizers( identity=authorizer.get("Identity"), authorizer_payload_format_version=authorizer.get("AuthorizerPayloadFormatVersion"), enable_simple_responses=authorizer.get("EnableSimpleResponses"), + enable_function_default_permissions=authorizer.get("EnableFunctionDefaultPermissions"), ) return authorizers @@ -719,6 +776,7 @@ def to_cloudformation( Optional[ApiGatewayV2DomainName], Optional[List[ApiGatewayV2ApiMapping]], Optional[Route53RecordSetGroup], + Optional[List[LambdaPermission]], ]: """Generates CloudFormation resources from a SAM HTTP API resource @@ -727,6 +785,7 @@ def to_cloudformation( """ http_api = self._construct_http_api() domain, basepath_mapping, route53 = self._construct_api_domain(http_api, route53_record_set_groups) + permissions = self._construct_authorizer_lambda_permission(http_api) stage = self._construct_stage() - return http_api, stage, domain, basepath_mapping, route53 + return http_api, stage, domain, basepath_mapping, route53, permissions diff --git a/samtranslator/model/apigatewayv2.py b/samtranslator/model/apigatewayv2.py index d45b41819..188cdc726 100644 --- a/samtranslator/model/apigatewayv2.py +++ b/samtranslator/model/apigatewayv2.py @@ -88,6 +88,7 @@ def __init__( # type: ignore[no-untyped-def] # noqa: too-many-arguments authorizer_payload_format_version=None, enable_simple_responses=None, is_aws_iam_authorizer=False, + enable_function_default_permissions=None, ): """ Creates an authorizer for use in V2 Http Apis @@ -103,6 +104,7 @@ def __init__( # type: ignore[no-untyped-def] # noqa: too-many-arguments self.authorizer_payload_format_version = authorizer_payload_format_version self.enable_simple_responses = enable_simple_responses self.is_aws_iam_authorizer = is_aws_iam_authorizer + self.enable_function_default_permissions = enable_function_default_permissions self._validate_input_parameters() @@ -115,6 +117,13 @@ def __init__( # type: ignore[no-untyped-def] # noqa: too-many-arguments if authorizer_type == "REQUEST": self._validate_lambda_authorizer() + if enable_function_default_permissions is not None: + sam_expect( + enable_function_default_permissions, + api_logical_id, + f"Authorizers.{name}.EnableFunctionDefaultPermissions", + ).to_be_a_bool() + def _get_auth_type(self) -> str: if self.is_aws_iam_authorizer: return "AWS_IAM" @@ -166,6 +175,11 @@ def _validate_input_parameters(self) -> None: self.api_logical_id, "EnableSimpleResponses must be defined only for Lambda Authorizer." ) + if self.enable_function_default_permissions is not None and authorizer_type != "REQUEST": + raise InvalidResourceException( + self.api_logical_id, "EnableFunctionDefaultPermissions must be defined only for Lambda Authorizer." + ) + def _validate_jwt_authorizer(self) -> None: if not self.jwt_configuration: raise InvalidResourceException( diff --git a/samtranslator/model/sam_resources.py b/samtranslator/model/sam_resources.py index 696834c5c..63ce47f77 100644 --- a/samtranslator/model/sam_resources.py +++ b/samtranslator/model/sam_resources.py @@ -1392,9 +1392,12 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] domain, basepath_mapping, route53, + permissions, ) = api_generator.to_cloudformation(kwargs.get("route53_record_set_groups", {})) resources.append(http_api) + if permissions: + resources.extend(permissions) if domain: resources.append(domain) if basepath_mapping: diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 89f9d7030..387ea6902 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -195743,6 +195743,10 @@ "markdownDescription": "Specifies the format of the payload sent to an HTTP API Lambda authorizer\\. Required for HTTP API Lambda authorizers\\. \nThis is passed through to the `authorizerPayloadFormatVersion` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Valid values*: `1.0` or `2.0` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "AuthorizerPayloadFormatVersion" }, + "EnableFunctionDefaultPermissions": { + "title": "Enablefunctiondefaultpermissions", + "type": "boolean" + }, "EnableSimpleResponses": { "description": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an AWS Identity and Access Management \\(IAM\\) policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\. \nThis is passed through to the `enableSimpleResponses` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "markdownDescription": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an AWS Identity and Access Management \\(IAM\\) policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\. \nThis is passed through to the `enableSimpleResponses` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index e5e0e8cfc..75a1669e6 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -1561,6 +1561,10 @@ "markdownDescription": "Specifies the format of the payload sent to an HTTP API Lambda authorizer\\. Required for HTTP API Lambda authorizers\\. \nThis is passed through to the `authorizerPayloadFormatVersion` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Valid values*: `1.0` or `2.0` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "AuthorizerPayloadFormatVersion" }, + "EnableFunctionDefaultPermissions": { + "title": "Enablefunctiondefaultpermissions", + "type": "boolean" + }, "EnableSimpleResponses": { "description": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an AWS Identity and Access Management \\(IAM\\) policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\. \nThis is passed through to the `enableSimpleResponses` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "markdownDescription": "Specifies whether a Lambda authorizer returns a response in a simple format\\. By default, a Lambda authorizer must return an AWS Identity and Access Management \\(IAM\\) policy\\. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy\\. \nThis is passed through to the `enableSimpleResponses` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", diff --git a/tests/model/test_api_v2.py b/tests/model/test_api_v2.py index e5de8d872..9820986af 100644 --- a/tests/model/test_api_v2.py +++ b/tests/model/test_api_v2.py @@ -168,6 +168,21 @@ def test_create_authorizer_fails_with_enable_simple_responses_non_lambda(self): + "EnableSimpleResponses must be defined only for Lambda Authorizer.", ) + def test_create_authorizer_fails_with_enable_function_default_permissions_non_lambda(self): + with pytest.raises(InvalidResourceException) as e: + ApiGatewayV2Authorizer( + api_logical_id="logicalId", + name="authName", + jwt_configuration={"config": "value"}, + authorization_scopes=["scope1", "scope2"], + enable_function_default_permissions=True, + ) + self.assertEqual( + e.value.message, + "Resource with id [logicalId] is invalid. " + + "EnableFunctionDefaultPermissions must be defined only for Lambda Authorizer.", + ) + @mock.patch( "samtranslator.model.apigatewayv2.ApiGatewayV2Authorizer._get_auth_type", mock.MagicMock(return_value="JWT") ) diff --git a/tests/translator/input/error_http_api_invalid_lambda_auth.yaml b/tests/translator/input/error_http_api_invalid_lambda_auth.yaml index 1237f209b..4274e9752 100644 --- a/tests/translator/input/error_http_api_invalid_lambda_auth.yaml +++ b/tests/translator/input/error_http_api_invalid_lambda_auth.yaml @@ -77,3 +77,26 @@ Resources: AuthorizerPayloadFormatVersion: 2.0 EnableSimpleResponses: true DefaultAuthorizer: LambdaAuth + + MyApi3: + Type: AWS::Serverless::HttpApi + Properties: + Auth: + Authorizers: + LambdaAuth: + FunctionArn: !GetAtt MyAuthFn.Arn + EnableFunctionDefaultPermissions: foo + AuthorizerPayloadFormatVersion: 2.0 + DefaultAuthorizer: LambdaAuth + + MyApi4: + Type: AWS::Serverless::HttpApi + Properties: + Auth: + Authorizers: + NonLambdaAuth: + JwtConfiguration: + audience: https://test-sam.com + issuer: https://test-sam.com + EnableFunctionDefaultPermissions: foo + DefaultAuthorizer: LambdaAuth diff --git a/tests/translator/input/http_api_lambda_auth_with_permissions_resource.yaml b/tests/translator/input/http_api_lambda_auth_with_permissions_resource.yaml new file mode 100644 index 000000000..cb7155d8a --- /dev/null +++ b/tests/translator/input/http_api_lambda_auth_with_permissions_resource.yaml @@ -0,0 +1,62 @@ +Resources: + HttpApiFunction: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/todo_list.zip + Handler: index.restapi + Runtime: python3.7 + Events: + Basic: + Type: HttpApi + Properties: + Path: /basic + Method: GET + ApiId: !Ref MyApi + + MyAuthFn: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://bucket/key + Handler: index.handler + Runtime: nodejs12.x + + MyApi: + Type: AWS::Serverless::HttpApi + Properties: + Tags: + Tag1: value1 + Tag2: value2 + Auth: + Authorizers: + LambdaAuthWithEnablePropertyTrue: + # should create permissions resource for this auth + FunctionArn: !GetAtt MyAuthFn.Arn + EnableFunctionDefaultPermissions: true + AuthorizerPayloadFormatVersion: 1.0 + LambdaAuthNoEnableProperty: + # should not create permissions resource for this auth as http api doesn't create the resource by default + FunctionArn: !GetAtt MyAuthFn.Arn + AuthorizerPayloadFormatVersion: 1.0 + LambdaAuthWithEnablePropertySetFalse: + # should not create permissions resource for this auth + FunctionArn: !GetAtt MyAuthFn.Arn + AuthorizerPayloadFormatVersion: 1.0 + EnableFunctionDefaultPermissions: false + LambdaAuthFull: + # should create permissions resource for this auth + FunctionArn: !GetAtt MyAuthFn.Arn + FunctionInvokeRole: !GetAtt MyAuthFnRole.Arn + EnableFunctionDefaultPermissions: true + Identity: + Context: + - contextVar + Headers: + - Authorization + QueryStrings: + - petId + StageVariables: + - stageVar + ReauthorizeEvery: 60 + AuthorizerPayloadFormatVersion: 2.0 + EnableSimpleResponses: true + DefaultAuthorizer: LambdaAuthWithEnablePropertyTrue diff --git a/tests/translator/output/aws-cn/http_api_lambda_auth_with_permissions_resource.json b/tests/translator/output/aws-cn/http_api_lambda_auth_with_permissions_resource.json new file mode 100644 index 000000000..bb2f70920 --- /dev/null +++ b/tests/translator/output/aws-cn/http_api_lambda_auth_with_permissions_resource.json @@ -0,0 +1,346 @@ +{ + "Resources": { + "HttpApiFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "todo_list.zip" + }, + "Handler": "index.restapi", + "Role": { + "Fn::GetAtt": [ + "HttpApiFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "HttpApiFunctionBasicPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "HttpApiFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/basic", + { + "__ApiId__": { + "Ref": "MyApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "HttpApiFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "LambdaAuthFull": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerCredentials": { + "Fn::GetAtt": [ + "MyAuthFnRole", + "Arn" + ] + }, + "authorizerPayloadFormatVersion": 2.0, + "authorizerResultTtlInSeconds": 60, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "enableSimpleResponses": true, + "identitySource": [ + "$request.header.Authorization", + "$request.querystring.petId", + "$stageVariables.stageVar", + "$context.contextVar" + ], + "type": "request" + } + }, + "LambdaAuthNoEnableProperty": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + }, + "LambdaAuthWithEnablePropertySetFalse": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + }, + "LambdaAuthWithEnablePropertyTrue": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + } + } + }, + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": { + "/basic": { + "get": { + "responses": {}, + "security": [ + { + "LambdaAuthWithEnablePropertyTrue": [] + } + ], + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "payloadFormatVersion": "2.0", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" + } + } + } + } + }, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + }, + { + "name": "Tag1", + "x-amazon-apigateway-tag-value": "value1" + }, + { + "name": "Tag2", + "x-amazon-apigateway-tag-value": "value2" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyApiApiGatewayDefaultStage": { + "Properties": { + "ApiId": { + "Ref": "MyApi" + }, + "AutoDeploy": true, + "StageName": "$default", + "Tags": { + "Tag1": "value1", + "Tag2": "value2", + "httpapi:createdBy": "SAM" + } + }, + "Type": "AWS::ApiGatewayV2::Stage" + }, + "MyApiLambdaAuthFullAuthorizerPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/authorizers/*", + { + "__ApiId__": { + "Ref": "MyApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyApiLambdaAuthWithEnablePropertyTrueAuthorizerPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/authorizers/*", + { + "__ApiId__": { + "Ref": "MyApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyAuthFn": { + "Properties": { + "Code": { + "S3Bucket": "bucket", + "S3Key": "key" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyAuthFnRole", + "Arn" + ] + }, + "Runtime": "nodejs12.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyAuthFnRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-us-gov/http_api_lambda_auth_with_permissions_resource.json b/tests/translator/output/aws-us-gov/http_api_lambda_auth_with_permissions_resource.json new file mode 100644 index 000000000..3d9d870b7 --- /dev/null +++ b/tests/translator/output/aws-us-gov/http_api_lambda_auth_with_permissions_resource.json @@ -0,0 +1,346 @@ +{ + "Resources": { + "HttpApiFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "todo_list.zip" + }, + "Handler": "index.restapi", + "Role": { + "Fn::GetAtt": [ + "HttpApiFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "HttpApiFunctionBasicPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "HttpApiFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/basic", + { + "__ApiId__": { + "Ref": "MyApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "HttpApiFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "LambdaAuthFull": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerCredentials": { + "Fn::GetAtt": [ + "MyAuthFnRole", + "Arn" + ] + }, + "authorizerPayloadFormatVersion": 2.0, + "authorizerResultTtlInSeconds": 60, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "enableSimpleResponses": true, + "identitySource": [ + "$request.header.Authorization", + "$request.querystring.petId", + "$stageVariables.stageVar", + "$context.contextVar" + ], + "type": "request" + } + }, + "LambdaAuthNoEnableProperty": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + }, + "LambdaAuthWithEnablePropertySetFalse": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + }, + "LambdaAuthWithEnablePropertyTrue": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + } + } + }, + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": { + "/basic": { + "get": { + "responses": {}, + "security": [ + { + "LambdaAuthWithEnablePropertyTrue": [] + } + ], + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "payloadFormatVersion": "2.0", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" + } + } + } + } + }, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + }, + { + "name": "Tag1", + "x-amazon-apigateway-tag-value": "value1" + }, + { + "name": "Tag2", + "x-amazon-apigateway-tag-value": "value2" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyApiApiGatewayDefaultStage": { + "Properties": { + "ApiId": { + "Ref": "MyApi" + }, + "AutoDeploy": true, + "StageName": "$default", + "Tags": { + "Tag1": "value1", + "Tag2": "value2", + "httpapi:createdBy": "SAM" + } + }, + "Type": "AWS::ApiGatewayV2::Stage" + }, + "MyApiLambdaAuthFullAuthorizerPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/authorizers/*", + { + "__ApiId__": { + "Ref": "MyApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyApiLambdaAuthWithEnablePropertyTrueAuthorizerPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/authorizers/*", + { + "__ApiId__": { + "Ref": "MyApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyAuthFn": { + "Properties": { + "Code": { + "S3Bucket": "bucket", + "S3Key": "key" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyAuthFnRole", + "Arn" + ] + }, + "Runtime": "nodejs12.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyAuthFnRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/error_http_api_invalid_lambda_auth.json b/tests/translator/output/error_http_api_invalid_lambda_auth.json index dd7196172..d4069a892 100644 --- a/tests/translator/output/error_http_api_invalid_lambda_auth.json +++ b/tests/translator/output/error_http_api_invalid_lambda_auth.json @@ -1,16 +1,15 @@ { "_autoGeneratedBreakdownErrorMessage": [ "Invalid Serverless Application Specification document. ", - "Number of errors found: 2. ", + "Number of errors found: 4. ", "Resource with id [MyApi1] is invalid. ", "LambdaAuth Lambda Authorizer must define 'AuthorizerPayloadFormatVersion'. ", "Resource with id [MyApi2] is invalid. ", - "LambdaAuth Lambda Authorizer must define 'FunctionArn'." + "LambdaAuth Lambda Authorizer must define 'FunctionArn'. ", + "Resource with id [MyApi3] is invalid. ", + "Property 'Authorizers.LambdaAuth.EnableFunctionDefaultPermissions' should be a boolean. ", + "Resource with id [MyApi4] is invalid. ", + "EnableFunctionDefaultPermissions must be defined only for Lambda Authorizer." ], - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 2. Resource with id [MyApi1] is invalid. LambdaAuth Lambda Authorizer must define 'AuthorizerPayloadFormatVersion'. Resource with id [MyApi2] is invalid. LambdaAuth Lambda Authorizer must define 'FunctionArn'.", - "errors": [ - { - "errorMessage": "Resource with id [MyApi1] is invalid. LambdaAuth Lambda Authorizer must define 'AuthorizerPayloadFormatVersion'. Resource with id [MyApi2] is invalid. LambdaAuth Lambda Authorizer must define 'FunctionArn'." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 4. Resource with id [MyApi1] is invalid. LambdaAuth Lambda Authorizer must define 'AuthorizerPayloadFormatVersion'. Resource with id [MyApi2] is invalid. LambdaAuth Lambda Authorizer must define 'FunctionArn'. Resource with id [MyApi3] is invalid. Property 'Authorizers.LambdaAuth.EnableFunctionDefaultPermissions' should be a boolean. Resource with id [MyApi4] is invalid. EnableFunctionDefaultPermissions must be defined only for Lambda Authorizer." } diff --git a/tests/translator/output/http_api_lambda_auth_with_permissions_resource.json b/tests/translator/output/http_api_lambda_auth_with_permissions_resource.json new file mode 100644 index 000000000..4816dcc01 --- /dev/null +++ b/tests/translator/output/http_api_lambda_auth_with_permissions_resource.json @@ -0,0 +1,346 @@ +{ + "Resources": { + "HttpApiFunction": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "todo_list.zip" + }, + "Handler": "index.restapi", + "Role": { + "Fn::GetAtt": [ + "HttpApiFunctionRole", + "Arn" + ] + }, + "Runtime": "python3.7", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "HttpApiFunctionBasicPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "HttpApiFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/basic", + { + "__ApiId__": { + "Ref": "MyApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "HttpApiFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyApi": { + "Properties": { + "Body": { + "components": { + "securitySchemes": { + "LambdaAuthFull": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerCredentials": { + "Fn::GetAtt": [ + "MyAuthFnRole", + "Arn" + ] + }, + "authorizerPayloadFormatVersion": 2.0, + "authorizerResultTtlInSeconds": 60, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "enableSimpleResponses": true, + "identitySource": [ + "$request.header.Authorization", + "$request.querystring.petId", + "$stageVariables.stageVar", + "$context.contextVar" + ], + "type": "request" + } + }, + "LambdaAuthNoEnableProperty": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + }, + "LambdaAuthWithEnablePropertySetFalse": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + }, + "LambdaAuthWithEnablePropertyTrue": { + "in": "header", + "name": "Unused", + "type": "apiKey", + "x-amazon-apigateway-authorizer": { + "authorizerPayloadFormatVersion": 1.0, + "authorizerUri": { + "Fn::Sub": [ + "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${__FunctionArn__}/invocations", + { + "__FunctionArn__": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + } + } + ] + }, + "type": "request" + } + } + } + }, + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": { + "/basic": { + "get": { + "responses": {}, + "security": [ + { + "LambdaAuthWithEnablePropertyTrue": [] + } + ], + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "payloadFormatVersion": "2.0", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" + } + } + } + } + }, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + }, + { + "name": "Tag1", + "x-amazon-apigateway-tag-value": "value1" + }, + { + "name": "Tag2", + "x-amazon-apigateway-tag-value": "value2" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyApiApiGatewayDefaultStage": { + "Properties": { + "ApiId": { + "Ref": "MyApi" + }, + "AutoDeploy": true, + "StageName": "$default", + "Tags": { + "Tag1": "value1", + "Tag2": "value2", + "httpapi:createdBy": "SAM" + } + }, + "Type": "AWS::ApiGatewayV2::Stage" + }, + "MyApiLambdaAuthFullAuthorizerPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/authorizers/*", + { + "__ApiId__": { + "Ref": "MyApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyApiLambdaAuthWithEnablePropertyTrueAuthorizerPermission": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyAuthFn", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/authorizers/*", + { + "__ApiId__": { + "Ref": "MyApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyAuthFn": { + "Properties": { + "Code": { + "S3Bucket": "bucket", + "S3Key": "key" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyAuthFnRole", + "Arn" + ] + }, + "Runtime": "nodejs12.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyAuthFnRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} From 1399f7a89566929c27ece3a567c5526f8f78ca58 Mon Sep 17 00:00:00 2001 From: Connor Robertson Date: Mon, 13 Mar 2023 13:12:16 -0700 Subject: [PATCH 22/32] fix: integration test cors_with_apikey_and_cors (#3021) --- .../templates/combination/api_with_cors_and_apikey.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration/resources/templates/combination/api_with_cors_and_apikey.yaml b/integration/resources/templates/combination/api_with_cors_and_apikey.yaml index d005a1429..c491d4050 100644 --- a/integration/resources/templates/combination/api_with_cors_and_apikey.yaml +++ b/integration/resources/templates/combination/api_with_cors_and_apikey.yaml @@ -62,7 +62,7 @@ Resources: credentials: Fn::Sub: ${ApiGatewayLambdaRole.Arn} uri: - Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations + Fn::Sub: arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations passthroughBehavior: when_no_match httpMethod: POST type: aws_proxy @@ -72,7 +72,7 @@ Resources: credentials: Fn::Sub: ${ApiGatewayLambdaRole.Arn} uri: - Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations + Fn::Sub: arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations passthroughBehavior: when_no_match httpMethod: POST type: aws_proxy From c1d10011f2aadf051dd2b3b886df167056ecc7b5 Mon Sep 17 00:00:00 2001 From: Aayush thapa <84202325+aaythapa@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:38:17 -0700 Subject: [PATCH 23/32] fix: Call correct exception when Connectors attribute is non-dict (#3022) --- samtranslator/translator/translator.py | 2 +- tests/translator/input/error_embedded_connectors.yaml | 8 ++++++++ tests/translator/output/error_embedded_connectors.json | 6 ++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 5d96f0d34..05a1d6fb5 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -326,7 +326,7 @@ def _get_embedded_connectors(self, resources: Dict[str, Any]) -> List[Resource]: ).to_be_a_map() except InvalidResourceException as e: self.document_errors.append(e) - + continue for connector_logical_id, connector_dict in resource["Connectors"].items(): try: full_connector_logical_id = source_logical_id + connector_logical_id diff --git a/tests/translator/input/error_embedded_connectors.yaml b/tests/translator/input/error_embedded_connectors.yaml index b110130a7..9582d4897 100644 --- a/tests/translator/input/error_embedded_connectors.yaml +++ b/tests/translator/input/error_embedded_connectors.yaml @@ -181,3 +181,11 @@ Resources: Runtime: python3.9 InlineCode: foo Handler: foo + + NoneTypeConnector: + Connectors: + Type: AWS::Serverless::Function + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo diff --git a/tests/translator/output/error_embedded_connectors.json b/tests/translator/output/error_embedded_connectors.json index 397e469e9..bcf69c392 100644 --- a/tests/translator/output/error_embedded_connectors.json +++ b/tests/translator/output/error_embedded_connectors.json @@ -1,7 +1,7 @@ { "_autoGeneratedBreakdownErrorMessage": [ "Invalid Serverless Application Specification document. ", - "Number of errors found: 24. ", + "Number of errors found: 25. ", "Transforming resource with id [DuplicateTest] attempts to create a new resource with id [DuplicateTestDuplicateId] and type \"AWS::Serverless::Connector\". ", "A resource with that id already exists within this template. ", "Please use a different id for that resource. ", @@ -49,8 +49,10 @@ "Unsupported 'Permissions' provided for connector from AWS::SQS::Queue to AWS::Lambda::Function; valid combinations are: Read + Write. ", "Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. ", "'Type' is missing or not a string. ", + "Resource with id [NoneTypeConnector] is invalid. ", + "Attribute 'NoneTypeConnector.Connectors' should be a map. ", "Resource with id [TestSourceReferenceId] is invalid. ", "'Id' shouldn't be defined in 'SourceReference'." ], - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 24. Transforming resource with id [DuplicateTest] attempts to create a new resource with id [DuplicateTestDuplicateId] and type \"AWS::Serverless::Connector\". A resource with that id already exists within this template. Please use a different id for that resource. Resource with id [EventsRuleMissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource. Resource with id [EventsRuleMissingSnsTopicArn] is invalid. Destination.Arn is missing. Resource with id [EventsRuleMissingSqsQueueUrl] is invalid. Unable to create connector from AWS::Events::Rule to AWS::SQS:Queue; it's not supported or the template is invalid. Resource with id [MyFunction] is invalid. Attribute 'Connectors.NoProperties.Properties' should be a map. Resource with id [MyFunction] is invalid. Attribute 'Connectors.NonDictProperties.Properties' should be a map. Resource with id [MyFunction] is invalid. Attribute 'Connectors.EmptyProperties.Properties' should be a map. Resource with id [MyFunction] is invalid. Property 'Connectors.NonDictSourceReference.Properties.SourceReference' should be a map. Resource with id [MyFunctionBothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties. Resource with id [MyFunctionEmptyDestination] is invalid. Missing required property 'Destination'. Resource with id [MyFunctionEmptyPermissions] is invalid. Missing required property 'Permissions'. Resource with id [MyFunctionEmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write. Resource with id [MyFunctionMissingRoleMissingRole] is invalid. Unable to get IAM role name from 'Source' resource. Resource with id [MyFunctionNoDestination] is invalid. Missing required property 'Destination'. Resource with id [MyFunctionNoDictConnectorNonDictConnector] is invalid. MyFunctionNoDictConnector.MyFunctionNoDictConnectorNonDictConnector should be a map. Resource with id [MyFunctionNoIdMissingType] is invalid. 'Type' is missing or not a string. Resource with id [MyFunctionNoPermissions] is invalid. Missing required property 'Permissions'. Resource with id [MyFunctionNoStrId] is invalid. 'Id' is missing or not a string. Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided for connector from AWS::Lambda::Function to AWS::SQS::Queue; valid values are: Read, Write. Resource with id [MyQueueMissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource. Resource with id [MyQueueUnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided for connector from AWS::SQS::Queue to AWS::Lambda::Function; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string. Resource with id [TestSourceReferenceId] is invalid. 'Id' shouldn't be defined in 'SourceReference'." + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 25. Transforming resource with id [DuplicateTest] attempts to create a new resource with id [DuplicateTestDuplicateId] and type \"AWS::Serverless::Connector\". A resource with that id already exists within this template. Please use a different id for that resource. Resource with id [EventsRuleMissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource. Resource with id [EventsRuleMissingSnsTopicArn] is invalid. Destination.Arn is missing. Resource with id [EventsRuleMissingSqsQueueUrl] is invalid. Unable to create connector from AWS::Events::Rule to AWS::SQS:Queue; it's not supported or the template is invalid. Resource with id [MyFunction] is invalid. Attribute 'Connectors.NoProperties.Properties' should be a map. Resource with id [MyFunction] is invalid. Attribute 'Connectors.NonDictProperties.Properties' should be a map. Resource with id [MyFunction] is invalid. Attribute 'Connectors.EmptyProperties.Properties' should be a map. Resource with id [MyFunction] is invalid. Property 'Connectors.NonDictSourceReference.Properties.SourceReference' should be a map. Resource with id [MyFunctionBothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties. Resource with id [MyFunctionEmptyDestination] is invalid. Missing required property 'Destination'. Resource with id [MyFunctionEmptyPermissions] is invalid. Missing required property 'Permissions'. Resource with id [MyFunctionEmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write. Resource with id [MyFunctionMissingRoleMissingRole] is invalid. Unable to get IAM role name from 'Source' resource. Resource with id [MyFunctionNoDestination] is invalid. Missing required property 'Destination'. Resource with id [MyFunctionNoDictConnectorNonDictConnector] is invalid. MyFunctionNoDictConnector.MyFunctionNoDictConnectorNonDictConnector should be a map. Resource with id [MyFunctionNoIdMissingType] is invalid. 'Type' is missing or not a string. Resource with id [MyFunctionNoPermissions] is invalid. Missing required property 'Permissions'. Resource with id [MyFunctionNoStrId] is invalid. 'Id' is missing or not a string. Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided for connector from AWS::Lambda::Function to AWS::SQS::Queue; valid values are: Read, Write. Resource with id [MyQueueMissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource. Resource with id [MyQueueUnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided for connector from AWS::SQS::Queue to AWS::Lambda::Function; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string. Resource with id [NoneTypeConnector] is invalid. Attribute 'NoneTypeConnector.Connectors' should be a map. Resource with id [TestSourceReferenceId] is invalid. 'Id' shouldn't be defined in 'SourceReference'." } From 7ae661a33fcb1043b712f443b5da69fa1115d1a0 Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Mon, 13 Mar 2023 14:43:40 -0700 Subject: [PATCH 24/32] fix: Fix two places that could cause internal errors (#3023) --- samtranslator/model/eventsources/push.py | 12 +++++------ samtranslator/swagger/swagger.py | 9 +++++---- ...ognito_userpool_invalid_lambda_config.yaml | 20 +++++++++++++++++++ ...ognito_userpool_invalid_lambda_config.json | 9 +++++++++ 4 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 tests/translator/input/error_cognito_userpool_invalid_lambda_config.yaml create mode 100644 tests/translator/output/error_cognito_userpool_invalid_lambda_config.json diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index f855dfdc1..66aeeb4f6 100644 --- a/samtranslator/model/eventsources/push.py +++ b/samtranslator/model/eventsources/push.py @@ -1199,26 +1199,27 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] lambda_permission.set_resource_attribute(attribute, value) resources.append(lambda_permission) - self._inject_lambda_config(function, userpool) # type: ignore[no-untyped-call] - resources.append(CognitoUserPool.from_dict(userpool_id, userpool)) + self._inject_lambda_config(function, userpool, userpool_id) + resources.append(CognitoUserPool.from_dict(userpool_id, userpool, userpool_id)) return resources - def _inject_lambda_config(self, function, userpool): # type: ignore[no-untyped-def] + def _inject_lambda_config(self, function: Any, userpool: Dict[str, Any], userpool_id: str) -> None: event_triggers = self.Trigger if isinstance(self.Trigger, str): event_triggers = [self.Trigger] # TODO can these be conditional? - properties = userpool.get("Properties", None) + properties = userpool.get("Properties") if properties is None: properties = {} userpool["Properties"] = properties - lambda_config = properties.get("LambdaConfig", None) + lambda_config = properties.get("LambdaConfig") if lambda_config is None: lambda_config = {} properties["LambdaConfig"] = lambda_config + sam_expect(lambda_config, userpool_id, "LambdaConfig").to_be_a_map() for event_trigger in event_triggers: if event_trigger not in lambda_config: @@ -1227,7 +1228,6 @@ def _inject_lambda_config(self, function, userpool): # type: ignore[no-untyped- raise InvalidEventException( self.relative_id, f'Cognito trigger "{self.Trigger}" defined multiple times.' ) - return userpool class HttpApi(PushEventSource): diff --git a/samtranslator/swagger/swagger.py b/samtranslator/swagger/swagger.py index 7c882a741..151b30d8d 100644 --- a/samtranslator/swagger/swagger.py +++ b/samtranslator/swagger/swagger.py @@ -41,6 +41,7 @@ class SwaggerEditor(BaseEditor): _X_APIGW_REQUEST_VALIDATOR = "x-amazon-apigateway-request-validator" _X_ENDPOINT_CONFIG = "x-amazon-apigateway-endpoint-configuration" _CACHE_KEY_PARAMETERS = "cacheKeyParameters" + _SECURITY_DEFINITIONS = "securityDefinitions" # https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html _EXCLUDED_PATHS_FIELDS = ["summary", "description", "parameters"] _POLICY_TYPE_IAM = "Iam" @@ -65,9 +66,9 @@ def __init__(self, doc: Optional[Dict[str, Any]]) -> None: self._doc = _deepcopy(doc) self.paths = self._doc["paths"] - self.security_definitions = self._doc.get("securityDefinitions", Py27Dict()) - self.gateway_responses = self._doc.get(self._X_APIGW_GATEWAY_RESPONSES, Py27Dict()) - self.resource_policy = self._doc.get(self._X_APIGW_POLICY, Py27Dict()) + self.security_definitions = self._doc.get(self._SECURITY_DEFINITIONS) or Py27Dict() + self.gateway_responses = self._doc.get(self._X_APIGW_GATEWAY_RESPONSES) or Py27Dict() + self.resource_policy = self._doc.get(self._X_APIGW_POLICY) or Py27Dict() self.definitions = self._doc.get("definitions", Py27Dict()) # https://swagger.io/specification/#path-item-object @@ -1208,7 +1209,7 @@ def swagger(self) -> Dict[str, Any]: self._doc[key] = self.paths if self.security_definitions: - self._doc["securityDefinitions"] = self.security_definitions + self._doc[self._SECURITY_DEFINITIONS] = self.security_definitions if self.gateway_responses: self._doc[self._X_APIGW_GATEWAY_RESPONSES] = self.gateway_responses if self.definitions: diff --git a/tests/translator/input/error_cognito_userpool_invalid_lambda_config.yaml b/tests/translator/input/error_cognito_userpool_invalid_lambda_config.yaml new file mode 100644 index 000000000..fcd2be6b9 --- /dev/null +++ b/tests/translator/input/error_cognito_userpool_invalid_lambda_config.yaml @@ -0,0 +1,20 @@ +Resources: + UserPool: + Type: AWS::Cognito::UserPool + Properties: + LambdaConfig: + - this: should not be a list + + Function: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/member_portal.zip + Handler: index.gethtml + Runtime: nodejs12.x + Events: + OneTrigger: + Type: Cognito + Properties: + UserPool: + Ref: UserPool + Trigger: PreSignUp diff --git a/tests/translator/output/error_cognito_userpool_invalid_lambda_config.json b/tests/translator/output/error_cognito_userpool_invalid_lambda_config.json new file mode 100644 index 000000000..053bdf196 --- /dev/null +++ b/tests/translator/output/error_cognito_userpool_invalid_lambda_config.json @@ -0,0 +1,9 @@ +{ + "_autoGeneratedBreakdownErrorMessage": [ + "Invalid Serverless Application Specification document. ", + "Number of errors found: 1. ", + "Resource with id [UserPool] is invalid. ", + "Property 'LambdaConfig' should be a map." + ], + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [UserPool] is invalid. Property 'LambdaConfig' should be a map." +} From 63280e5160e44ac334c542e22eee238fcf0029d2 Mon Sep 17 00:00:00 2001 From: Connor Robertson Date: Tue, 14 Mar 2023 08:52:23 -0700 Subject: [PATCH 25/32] fix: cors integ test (#3024) --- .../templates/combination/api_with_cors_and_apikey.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/resources/templates/combination/api_with_cors_and_apikey.yaml b/integration/resources/templates/combination/api_with_cors_and_apikey.yaml index c491d4050..a3278bd0c 100644 --- a/integration/resources/templates/combination/api_with_cors_and_apikey.yaml +++ b/integration/resources/templates/combination/api_with_cors_and_apikey.yaml @@ -82,6 +82,6 @@ Resources: Outputs: ApiUrl: Description: URL of your API endpoint - Value: !Sub "https://${MyApi}.execute-api.${AWS::Region}.amazonaws.com/dev/" + Value: !Sub "https://${MyApi}.execute-api.${AWS::Region}.${AWS::URLSuffix}/dev/" Metadata: SamTransformTest: true From 2787cc1667436afbb5abf2dc12ab300524adf629 Mon Sep 17 00:00:00 2001 From: David Colclazier <102101635+davidcolclazier@users.noreply.github.com> Date: Tue, 14 Mar 2023 12:18:17 -0600 Subject: [PATCH 26/32] Add Region & SetIdentifier properties to Route53 to enable latency based routing (#2998) Co-authored-by: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> --- ...custom_http_api_domains_latency_routing.py | 25 ++ ...m_http_api_domains_latency_routing_ipv6.py | 25 ++ ...stom_domains_regional_latency_routing.json | 42 +++ ...domains_regional_latency_routing_ipv6.json | 42 +++ ...stom_domains_regional_latency_routing.yaml | 57 ++++ ...domains_regional_latency_routing_ipv6.yaml | 58 ++++ .../schema_source/aws_serverless_api.py | 2 + .../schema_source/aws_serverless_httpapi.py | 2 + samtranslator/model/api/api_generator.py | 31 +- samtranslator/model/api/http_api_generator.py | 19 +- samtranslator/schema/schema.json | 12 + schema_source/sam.schema.json | 12 + ...stom_domains_regional_latency_routing.yaml | 57 ++++ ...domains_regional_latency_routing_ipv6.yaml | 58 ++++ ...stom_domains_regional_latency_routing.yaml | 57 ++++ ...domains_regional_latency_routing_ipv6.yaml | 58 ++++ ...stom_domains_regional_latency_routing.json | 256 ++++++++++++++++ ...domains_regional_latency_routing_ipv6.json | 278 +++++++++++++++++ ...stom_domains_regional_latency_routing.json | 264 ++++++++++++++++ ...domains_regional_latency_routing_ipv6.json | 286 ++++++++++++++++++ ...stom_domains_regional_latency_routing.json | 182 +++++++++++ ...domains_regional_latency_routing_ipv6.json | 182 +++++++++++ ...stom_domains_regional_latency_routing.json | 264 ++++++++++++++++ ...domains_regional_latency_routing_ipv6.json | 286 ++++++++++++++++++ ...stom_domains_regional_latency_routing.json | 182 +++++++++++ ...domains_regional_latency_routing_ipv6.json | 182 +++++++++++ ...stom_domains_regional_latency_routing.json | 174 +++++++++++ ...domains_regional_latency_routing_ipv6.json | 174 +++++++++++ 28 files changed, 3252 insertions(+), 15 deletions(-) create mode 100644 integration/combination/test_custom_http_api_domains_latency_routing.py create mode 100644 integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py create mode 100644 integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json create mode 100644 integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json create mode 100644 integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml create mode 100644 integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml create mode 100644 tests/translator/input/api_with_custom_domains_regional_latency_routing.yaml create mode 100644 tests/translator/input/api_with_custom_domains_regional_latency_routing_ipv6.yaml create mode 100644 tests/translator/input/http_api_with_custom_domains_regional_latency_routing.yaml create mode 100644 tests/translator/input/http_api_with_custom_domains_regional_latency_routing_ipv6.yaml create mode 100644 tests/translator/output/api_with_custom_domains_regional_latency_routing.json create mode 100644 tests/translator/output/api_with_custom_domains_regional_latency_routing_ipv6.json create mode 100644 tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing.json create mode 100644 tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing_ipv6.json create mode 100644 tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing.json create mode 100644 tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing_ipv6.json create mode 100644 tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing.json create mode 100644 tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing_ipv6.json create mode 100644 tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing.json create mode 100644 tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing_ipv6.json create mode 100644 tests/translator/output/http_api_with_custom_domains_regional_latency_routing.json create mode 100644 tests/translator/output/http_api_with_custom_domains_regional_latency_routing_ipv6.json diff --git a/integration/combination/test_custom_http_api_domains_latency_routing.py b/integration/combination/test_custom_http_api_domains_latency_routing.py new file mode 100644 index 000000000..920569405 --- /dev/null +++ b/integration/combination/test_custom_http_api_domains_latency_routing.py @@ -0,0 +1,25 @@ +from unittest.case import skipIf + +from integration.config.service_names import CUSTOM_DOMAIN +from integration.helpers.base_internal_test import BaseInternalTest +from integration.helpers.resource import current_region_not_included + + +@skipIf( + current_region_not_included([CUSTOM_DOMAIN]), + "CustomDomain is not supported in this testing region", +) +class TestCustomHttpApiDomainsLatencyRouting(BaseInternalTest): + def test_custom_http_api_domains_regional(self): + self.create_and_verify_stack("combination/api_with_custom_domains_regional_latency_routing") + + route53_list = self.get_stack_resources("AWS::Route53::RecordSetGroup") + self.assertEqual(1, len(route53_list)) + + client = self.client_provider.route53_client + result = client.list_resource_record_sets(HostedZoneId="xyz") + record_set_list = result["ResourceRecordSets"] + record_set = next(r for r in record_set_list if r["Name"] == "test.domain.com" & r["Type"] == "A") + + self.assertIsNotNone(record_set["SetIdentifier"]) + self.assertIsNotNone(record_set["Region"]) diff --git a/integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py b/integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py new file mode 100644 index 000000000..625cdb08c --- /dev/null +++ b/integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py @@ -0,0 +1,25 @@ +from unittest.case import skipIf + +from integration.config.service_names import CUSTOM_DOMAIN +from integration.helpers.base_internal_test import BaseInternalTest +from integration.helpers.resource import current_region_not_included + + +@skipIf( + current_region_not_included([CUSTOM_DOMAIN]), + "CustomDomain is not supported in this testing region", +) +class TestCustomHttpApiDomainsLatencyRoutingIpV6(BaseInternalTest): + def test_custom_http_api_domains_regional(self): + self.create_and_verify_stack("combination/api_with_custom_domains_regional_latency_routing_ipv6") + + route53_list = self.get_stack_resources("AWS::Route53::RecordSetGroup") + self.assertEqual(1, len(route53_list)) + + client = self.client_provider.route53_client + result = client.list_resource_record_sets(HostedZoneId="xyz") + record_set_list = result["ResourceRecordSets"] + record_set = next(r for r in record_set_list if r["Name"] == "test.domain.com" & r["Type"] == "AAAA") + + self.assertIsNotNone(record_set["SetIdentifier"]) + self.assertIsNotNone(record_set["Region"]) diff --git a/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json b/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json new file mode 100644 index 000000000..c069daf32 --- /dev/null +++ b/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json @@ -0,0 +1,42 @@ +[ + { + "LogicalResourceId": "MyFunctionImplicitGetPermission", + "ResourceType": "AWS::Lambda::Permission" + }, + { + "LogicalResourceId": "MyFunctionImplicitPostPermission", + "ResourceType": "AWS::Lambda::Permission" + }, + { + "LogicalResourceId": "MyApipostApiMapping", + "ResourceType": "AWS::ApiGatewayV2::ApiMapping" + }, + { + "LogicalResourceId": "MyApigetApiMapping", + "ResourceType": "AWS::ApiGatewayV2::ApiMapping" + }, + { + "LogicalResourceId": "MyApi", + "ResourceType": "AWS::ApiGatewayV2::Api" + }, + { + "LogicalResourceId": "RecordSetGroupddfc299be2", + "ResourceType": "AWS::Route53::RecordSetGroup" + }, + { + "LogicalResourceId": "MyApiProdStage", + "ResourceType": "AWS::ApiGatewayV2::Stage" + }, + { + "LogicalResourceId": "ApiGatewayDomainNameV2e7a0af471b", + "ResourceType": "AWS::ApiGatewayV2::DomainName" + }, + { + "LogicalResourceId": "MyFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "MyFunctionRole", + "ResourceType": "AWS::IAM::Role" + } +] diff --git a/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json b/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json new file mode 100644 index 000000000..c069daf32 --- /dev/null +++ b/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json @@ -0,0 +1,42 @@ +[ + { + "LogicalResourceId": "MyFunctionImplicitGetPermission", + "ResourceType": "AWS::Lambda::Permission" + }, + { + "LogicalResourceId": "MyFunctionImplicitPostPermission", + "ResourceType": "AWS::Lambda::Permission" + }, + { + "LogicalResourceId": "MyApipostApiMapping", + "ResourceType": "AWS::ApiGatewayV2::ApiMapping" + }, + { + "LogicalResourceId": "MyApigetApiMapping", + "ResourceType": "AWS::ApiGatewayV2::ApiMapping" + }, + { + "LogicalResourceId": "MyApi", + "ResourceType": "AWS::ApiGatewayV2::Api" + }, + { + "LogicalResourceId": "RecordSetGroupddfc299be2", + "ResourceType": "AWS::Route53::RecordSetGroup" + }, + { + "LogicalResourceId": "MyApiProdStage", + "ResourceType": "AWS::ApiGatewayV2::Stage" + }, + { + "LogicalResourceId": "ApiGatewayDomainNameV2e7a0af471b", + "ResourceType": "AWS::ApiGatewayV2::DomainName" + }, + { + "LogicalResourceId": "MyFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "MyFunctionRole", + "ResourceType": "AWS::IAM::Role" + } +] diff --git a/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml b/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml new file mode 100644 index 000000000..24bd94678 --- /dev/null +++ b/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml @@ -0,0 +1,57 @@ +Parameters: + MyRestRegionalDomainName: + Type: String + MyRestRegionalDomainCert: + Type: String + HostedZoneId: + Type: String + +Globals: + Api: + Domain: + DomainName: + Ref: MyRestRegionalDomainName + CertificateArn: + Ref: MyRestRegionalDomainCert + EndpointConfiguration: REGIONAL + MutualTlsAuthentication: + TruststoreUri: ${mtlsuri} + TruststoreVersion: 0 + SecurityPolicy: TLS_1_2 + BasePath: + - /get + - /post + Route53: + HostedZoneId: + Ref: HostedZoneId + Region: eu-west-2 + SetIdentifier: eu-west-2 + DistributionDomainName: test.domain.com + +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + InlineCode: | + exports.handler = async (event) => { + const response = { + statusCode: 200, + body: JSON.stringify('Hello from Lambda!'), + }; + return response; + }; + Handler: index.handler + Runtime: nodejs14.x + Events: + ImplicitGet: + Type: Api + Properties: + Method: Get + Path: /get + ImplicitPost: + Type: Api + Properties: + Method: Post + Path: /post +Metadata: + SamTransformTest: true diff --git a/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml b/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml new file mode 100644 index 000000000..ab5334a3d --- /dev/null +++ b/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml @@ -0,0 +1,58 @@ +Parameters: + MyRestRegionalDomainName: + Type: String + MyRestRegionalDomainCert: + Type: String + HostedZoneId: + Type: String + +Globals: + Api: + Domain: + DomainName: + Ref: MyRestRegionalDomainName + CertificateArn: + Ref: MyRestRegionalDomainCert + EndpointConfiguration: REGIONAL + MutualTlsAuthentication: + TruststoreUri: ${mtlsuri} + TruststoreVersion: 0 + SecurityPolicy: TLS_1_2 + BasePath: + - /get + - /post + Route53: + HostedZoneId: + Ref: HostedZoneId + Region: eu-west-2 + SetIdentifier: eu-west-2 + DistributionDomainName: test.domain.com + IpV6: true + +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + InlineCode: | + exports.handler = async (event) => { + const response = { + statusCode: 200, + body: JSON.stringify('Hello from Lambda!'), + }; + return response; + }; + Handler: index.handler + Runtime: nodejs14.x + Events: + ImplicitGet: + Type: Api + Properties: + Method: Get + Path: /get + ImplicitPost: + Type: Api + Properties: + Method: Post + Path: /post +Metadata: + SamTransformTest: true diff --git a/samtranslator/internal/schema_source/aws_serverless_api.py b/samtranslator/internal/schema_source/aws_serverless_api.py index 6509f5c8a..8b0c55dff 100644 --- a/samtranslator/internal/schema_source/aws_serverless_api.py +++ b/samtranslator/internal/schema_source/aws_serverless_api.py @@ -132,6 +132,8 @@ class Route53(BaseModel): HostedZoneId: Optional[PassThroughProp] = route53("HostedZoneId") HostedZoneName: Optional[PassThroughProp] = route53("HostedZoneName") IpV6: Optional[bool] = route53("IpV6") + SetIdentifier: Optional[PassThroughProp] # TODO: add docs + Region: Optional[PassThroughProp] # TODO: add docs class Domain(BaseModel): diff --git a/samtranslator/internal/schema_source/aws_serverless_httpapi.py b/samtranslator/internal/schema_source/aws_serverless_httpapi.py index 9a64cccfd..43a434be0 100644 --- a/samtranslator/internal/schema_source/aws_serverless_httpapi.py +++ b/samtranslator/internal/schema_source/aws_serverless_httpapi.py @@ -87,6 +87,8 @@ class Route53(BaseModel): HostedZoneId: Optional[PassThroughProp] = route53("HostedZoneId") HostedZoneName: Optional[PassThroughProp] = route53("HostedZoneName") IpV6: Optional[bool] = route53("IpV6") + SetIdentifier: Optional[PassThroughProp] # TODO: add docs + Region: Optional[PassThroughProp] # TODO: add docs class Domain(BaseModel): diff --git a/samtranslator/model/api/api_generator.py b/samtranslator/model/api/api_generator.py index 2d648d000..837ad4dd6 100644 --- a/samtranslator/model/api/api_generator.py +++ b/samtranslator/model/api/api_generator.py @@ -579,25 +579,36 @@ def _construct_api_domain( # noqa: too-many-branches return domain, basepath_resource_list, record_set_group def _construct_record_sets_for_domain( - self, domain: Dict[str, Any], api_domain_name: str, route53: Any + self, custom_domain_config: Dict[str, Any], api_domain_name: str, route53_config: Dict[str, Any] ) -> List[Dict[str, Any]]: recordset_list = [] - recordset = {} - recordset["Name"] = domain.get("DomainName") + recordset = {} + recordset["Name"] = custom_domain_config.get("DomainName") recordset["Type"] = "A" - recordset["AliasTarget"] = self._construct_alias_target(domain, api_domain_name, route53) - recordset_list.extend([recordset]) + recordset["AliasTarget"] = self._construct_alias_target(custom_domain_config, api_domain_name, route53_config) + self._update_route53_routing_policy_properties(route53_config, recordset) + recordset_list.append(recordset) - recordset_ipv6 = {} - if route53.get("IpV6") is not None and route53.get("IpV6") is True: - recordset_ipv6["Name"] = domain.get("DomainName") + if route53_config.get("IpV6") is not None and route53_config.get("IpV6") is True: + recordset_ipv6 = {} + recordset_ipv6["Name"] = custom_domain_config.get("DomainName") recordset_ipv6["Type"] = "AAAA" - recordset_ipv6["AliasTarget"] = self._construct_alias_target(domain, api_domain_name, route53) - recordset_list.extend([recordset_ipv6]) + recordset_ipv6["AliasTarget"] = self._construct_alias_target( + custom_domain_config, api_domain_name, route53_config + ) + self._update_route53_routing_policy_properties(route53_config, recordset_ipv6) + recordset_list.append(recordset_ipv6) return recordset_list + @staticmethod + def _update_route53_routing_policy_properties(route53_config: Dict[str, Any], recordset: Dict[str, Any]) -> None: + if route53_config.get("Region") is not None: + recordset["Region"] = route53_config.get("Region") + if route53_config.get("SetIdentifier") is not None: + recordset["SetIdentifier"] = route53_config.get("SetIdentifier") + def _construct_alias_target(self, domain: Dict[str, Any], api_domain_name: str, route53: Any) -> Dict[str, Any]: alias_target = {} target_health = route53.get("EvaluateTargetHealth") diff --git a/samtranslator/model/api/http_api_generator.py b/samtranslator/model/api/http_api_generator.py index cbbac3324..38a40d727 100644 --- a/samtranslator/model/api/http_api_generator.py +++ b/samtranslator/model/api/http_api_generator.py @@ -417,24 +417,33 @@ def _construct_record_sets_for_domain( self, custom_domain_config: Dict[str, Any], route53_config: Dict[str, Any], api_domain_name: str ) -> List[Dict[str, Any]]: recordset_list = [] - recordset = {} + recordset = {} recordset["Name"] = custom_domain_config.get("DomainName") recordset["Type"] = "A" recordset["AliasTarget"] = self._construct_alias_target(custom_domain_config, route53_config, api_domain_name) - recordset_list.extend([recordset]) + self._update_route53_routing_policy_properties(route53_config, recordset) + recordset_list.append(recordset) - recordset_ipv6 = {} - if route53_config.get("IpV6"): + if route53_config.get("IpV6") is not None and route53_config.get("IpV6") is True: + recordset_ipv6 = {} recordset_ipv6["Name"] = custom_domain_config.get("DomainName") recordset_ipv6["Type"] = "AAAA" recordset_ipv6["AliasTarget"] = self._construct_alias_target( custom_domain_config, route53_config, api_domain_name ) - recordset_list.extend([recordset_ipv6]) + self._update_route53_routing_policy_properties(route53_config, recordset_ipv6) + recordset_list.append(recordset_ipv6) return recordset_list + @staticmethod + def _update_route53_routing_policy_properties(route53_config: Dict[str, Any], recordset: Dict[str, Any]) -> None: + if route53_config.get("Region") is not None: + recordset["Region"] = route53_config.get("Region") + if route53_config.get("SetIdentifier") is not None: + recordset["SetIdentifier"] = route53_config.get("SetIdentifier") + def _construct_alias_target( self, domain_config: Dict[str, Any], route53_config: Dict[str, Any], api_domain_name: str ) -> Dict[str, Any]: diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 387ea6902..135fd8f22 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -198256,6 +198256,12 @@ "markdownDescription": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "IpV6", "type": "boolean" + }, + "Region": { + "$ref": "#/definitions/PassThroughProp" + }, + "SetIdentifier": { + "$ref": "#/definitions/PassThroughProp" } }, "title": "Route53", @@ -200461,6 +200467,12 @@ "markdownDescription": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "IpV6", "type": "boolean" + }, + "Region": { + "$ref": "#/definitions/PassThroughProp" + }, + "SetIdentifier": { + "$ref": "#/definitions/PassThroughProp" } }, "title": "Route53", diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index 75a1669e6..b45d2a069 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -3979,6 +3979,12 @@ "markdownDescription": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "IpV6", "type": "boolean" + }, + "Region": { + "$ref": "#/definitions/PassThroughProp" + }, + "SetIdentifier": { + "$ref": "#/definitions/PassThroughProp" } }, "title": "Route53", @@ -6184,6 +6190,12 @@ "markdownDescription": "When this property is set, AWS SAM creates a `AWS::Route53::RecordSet` resource and sets [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-type) to `AAAA` for the provided HostedZone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "IpV6", "type": "boolean" + }, + "Region": { + "$ref": "#/definitions/PassThroughProp" + }, + "SetIdentifier": { + "$ref": "#/definitions/PassThroughProp" } }, "title": "Route53", diff --git a/tests/translator/input/api_with_custom_domains_regional_latency_routing.yaml b/tests/translator/input/api_with_custom_domains_regional_latency_routing.yaml new file mode 100644 index 000000000..24bd94678 --- /dev/null +++ b/tests/translator/input/api_with_custom_domains_regional_latency_routing.yaml @@ -0,0 +1,57 @@ +Parameters: + MyRestRegionalDomainName: + Type: String + MyRestRegionalDomainCert: + Type: String + HostedZoneId: + Type: String + +Globals: + Api: + Domain: + DomainName: + Ref: MyRestRegionalDomainName + CertificateArn: + Ref: MyRestRegionalDomainCert + EndpointConfiguration: REGIONAL + MutualTlsAuthentication: + TruststoreUri: ${mtlsuri} + TruststoreVersion: 0 + SecurityPolicy: TLS_1_2 + BasePath: + - /get + - /post + Route53: + HostedZoneId: + Ref: HostedZoneId + Region: eu-west-2 + SetIdentifier: eu-west-2 + DistributionDomainName: test.domain.com + +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + InlineCode: | + exports.handler = async (event) => { + const response = { + statusCode: 200, + body: JSON.stringify('Hello from Lambda!'), + }; + return response; + }; + Handler: index.handler + Runtime: nodejs14.x + Events: + ImplicitGet: + Type: Api + Properties: + Method: Get + Path: /get + ImplicitPost: + Type: Api + Properties: + Method: Post + Path: /post +Metadata: + SamTransformTest: true diff --git a/tests/translator/input/api_with_custom_domains_regional_latency_routing_ipv6.yaml b/tests/translator/input/api_with_custom_domains_regional_latency_routing_ipv6.yaml new file mode 100644 index 000000000..ab5334a3d --- /dev/null +++ b/tests/translator/input/api_with_custom_domains_regional_latency_routing_ipv6.yaml @@ -0,0 +1,58 @@ +Parameters: + MyRestRegionalDomainName: + Type: String + MyRestRegionalDomainCert: + Type: String + HostedZoneId: + Type: String + +Globals: + Api: + Domain: + DomainName: + Ref: MyRestRegionalDomainName + CertificateArn: + Ref: MyRestRegionalDomainCert + EndpointConfiguration: REGIONAL + MutualTlsAuthentication: + TruststoreUri: ${mtlsuri} + TruststoreVersion: 0 + SecurityPolicy: TLS_1_2 + BasePath: + - /get + - /post + Route53: + HostedZoneId: + Ref: HostedZoneId + Region: eu-west-2 + SetIdentifier: eu-west-2 + DistributionDomainName: test.domain.com + IpV6: true + +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + InlineCode: | + exports.handler = async (event) => { + const response = { + statusCode: 200, + body: JSON.stringify('Hello from Lambda!'), + }; + return response; + }; + Handler: index.handler + Runtime: nodejs14.x + Events: + ImplicitGet: + Type: Api + Properties: + Method: Get + Path: /get + ImplicitPost: + Type: Api + Properties: + Method: Post + Path: /post +Metadata: + SamTransformTest: true diff --git a/tests/translator/input/http_api_with_custom_domains_regional_latency_routing.yaml b/tests/translator/input/http_api_with_custom_domains_regional_latency_routing.yaml new file mode 100644 index 000000000..a2b4626aa --- /dev/null +++ b/tests/translator/input/http_api_with_custom_domains_regional_latency_routing.yaml @@ -0,0 +1,57 @@ +Parameters: + MyRestRegionalDomainName: + Type: String + MyRestRegionalDomainCert: + Type: String + HostedZoneId: + Type: String + +Globals: + HttpApi: + Domain: + DomainName: + Ref: MyRestRegionalDomainName + CertificateArn: + Ref: MyRestRegionalDomainCert + EndpointConfiguration: REGIONAL + MutualTlsAuthentication: + TruststoreUri: ${mtlsuri} + TruststoreVersion: 0 + SecurityPolicy: TLS_1_2 + BasePath: + - /get + - /post + Route53: + HostedZoneId: + Ref: HostedZoneId + Region: eu-west-2 + SetIdentifier: eu-west-2 + DistributionDomainName: test.domain.com + +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + InlineCode: | + exports.handler = async (event) => { + const response = { + statusCode: 200, + body: JSON.stringify('Hello from Lambda!'), + }; + return response; + }; + Handler: index.handler + Runtime: nodejs14.x + Events: + ImplicitGet: + Type: Api + Properties: + Method: Get + Path: /get + ImplicitPost: + Type: Api + Properties: + Method: Post + Path: /post +Metadata: + SamTransformTest: true diff --git a/tests/translator/input/http_api_with_custom_domains_regional_latency_routing_ipv6.yaml b/tests/translator/input/http_api_with_custom_domains_regional_latency_routing_ipv6.yaml new file mode 100644 index 000000000..850c64986 --- /dev/null +++ b/tests/translator/input/http_api_with_custom_domains_regional_latency_routing_ipv6.yaml @@ -0,0 +1,58 @@ +Parameters: + MyRestRegionalDomainName: + Type: String + MyRestRegionalDomainCert: + Type: String + HostedZoneId: + Type: String + +Globals: + HttpApi: + Domain: + DomainName: + Ref: MyRestRegionalDomainName + CertificateArn: + Ref: MyRestRegionalDomainCert + EndpointConfiguration: REGIONAL + MutualTlsAuthentication: + TruststoreUri: ${mtlsuri} + TruststoreVersion: 0 + SecurityPolicy: TLS_1_2 + BasePath: + - /get + - /post + Route53: + HostedZoneId: + Ref: HostedZoneId + Region: eu-west-2 + SetIdentifier: eu-west-2 + DistributionDomainName: test.domain.com + IpV6: true + +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + InlineCode: | + exports.handler = async (event) => { + const response = { + statusCode: 200, + body: JSON.stringify('Hello from Lambda!'), + }; + return response; + }; + Handler: index.handler + Runtime: nodejs14.x + Events: + ImplicitGet: + Type: Api + Properties: + Method: Get + Path: /get + ImplicitPost: + Type: Api + Properties: + Method: Post + Path: /post +Metadata: + SamTransformTest: true diff --git a/tests/translator/output/api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/api_with_custom_domains_regional_latency_routing.json new file mode 100644 index 000000000..e11a704c1 --- /dev/null +++ b/tests/translator/output/api_with_custom_domains_regional_latency_routing.json @@ -0,0 +1,256 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "ApiGatewayDomainName1a01391c0c": { + "Properties": { + "DomainName": { + "Ref": "MyRestRegionalDomainName" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "MutualTlsAuthentication": { + "TruststoreUri": "${mtlsuri}" + }, + "RegionalCertificateArn": { + "Ref": "MyRestRegionalDomainCert" + }, + "SecurityPolicy": "TLS_1_2" + }, + "Type": "AWS::ApiGateway::DomainName" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "RecordSetGroup1194dea82a": { + "Properties": { + "HostedZoneId": { + "Ref": "HostedZoneId" + }, + "RecordSets": [ + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "A" + } + ] + }, + "Type": "AWS::Route53::RecordSetGroup" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeployment2a896c1e6b": { + "Properties": { + "Description": "RestApi deployment id: 2a896c1e6b6ce9eaf1966ad45660532269dab208", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeployment2a896c1e6b" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "ServerlessRestApigetBasePathMapping": { + "Properties": { + "BasePath": "get", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + }, + "ServerlessRestApipostBasePathMapping": { + "Properties": { + "BasePath": "post", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + } + } +} diff --git a/tests/translator/output/api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/api_with_custom_domains_regional_latency_routing_ipv6.json new file mode 100644 index 000000000..17ab4adc9 --- /dev/null +++ b/tests/translator/output/api_with_custom_domains_regional_latency_routing_ipv6.json @@ -0,0 +1,278 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "ApiGatewayDomainName1a01391c0c": { + "Properties": { + "DomainName": { + "Ref": "MyRestRegionalDomainName" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "MutualTlsAuthentication": { + "TruststoreUri": "${mtlsuri}" + }, + "RegionalCertificateArn": { + "Ref": "MyRestRegionalDomainCert" + }, + "SecurityPolicy": "TLS_1_2" + }, + "Type": "AWS::ApiGateway::DomainName" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "RecordSetGroup1194dea82a": { + "Properties": { + "HostedZoneId": { + "Ref": "HostedZoneId" + }, + "RecordSets": [ + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "A" + }, + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "AAAA" + } + ] + }, + "Type": "AWS::Route53::RecordSetGroup" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeploymentd7cef5b922": { + "Properties": { + "Description": "RestApi deployment id: d7cef5b9229f2c92a6d262ac75017b45637a36eb", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeploymentd7cef5b922" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "ServerlessRestApigetBasePathMapping": { + "Properties": { + "BasePath": "get", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + }, + "ServerlessRestApipostBasePathMapping": { + "Properties": { + "BasePath": "post", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + } + } +} diff --git a/tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing.json new file mode 100644 index 000000000..7623dc1e4 --- /dev/null +++ b/tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing.json @@ -0,0 +1,264 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "ApiGatewayDomainName1a01391c0c": { + "Properties": { + "DomainName": { + "Ref": "MyRestRegionalDomainName" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "MutualTlsAuthentication": { + "TruststoreUri": "${mtlsuri}" + }, + "RegionalCertificateArn": { + "Ref": "MyRestRegionalDomainCert" + }, + "SecurityPolicy": "TLS_1_2" + }, + "Type": "AWS::ApiGateway::DomainName" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "RecordSetGroup1194dea82a": { + "Properties": { + "HostedZoneId": { + "Ref": "HostedZoneId" + }, + "RecordSets": [ + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "A" + } + ] + }, + "Type": "AWS::Route53::RecordSetGroup" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeploymentc3d39077cd": { + "Properties": { + "Description": "RestApi deployment id: c3d39077cdf812c63d93130652dfa6b5e8d5b7cb", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeploymentc3d39077cd" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "ServerlessRestApigetBasePathMapping": { + "Properties": { + "BasePath": "get", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + }, + "ServerlessRestApipostBasePathMapping": { + "Properties": { + "BasePath": "post", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + } + } +} diff --git a/tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing_ipv6.json new file mode 100644 index 000000000..f2d4ad5c2 --- /dev/null +++ b/tests/translator/output/aws-cn/api_with_custom_domains_regional_latency_routing_ipv6.json @@ -0,0 +1,286 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "ApiGatewayDomainName1a01391c0c": { + "Properties": { + "DomainName": { + "Ref": "MyRestRegionalDomainName" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "MutualTlsAuthentication": { + "TruststoreUri": "${mtlsuri}" + }, + "RegionalCertificateArn": { + "Ref": "MyRestRegionalDomainCert" + }, + "SecurityPolicy": "TLS_1_2" + }, + "Type": "AWS::ApiGateway::DomainName" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "RecordSetGroup1194dea82a": { + "Properties": { + "HostedZoneId": { + "Ref": "HostedZoneId" + }, + "RecordSets": [ + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "A" + }, + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "AAAA" + } + ] + }, + "Type": "AWS::Route53::RecordSetGroup" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeploymente70d46fa8e": { + "Properties": { + "Description": "RestApi deployment id: e70d46fa8ed9c097f70057845a76b894a1995911", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeploymente70d46fa8e" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "ServerlessRestApigetBasePathMapping": { + "Properties": { + "BasePath": "get", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + }, + "ServerlessRestApipostBasePathMapping": { + "Properties": { + "BasePath": "post", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + } + } +} diff --git a/tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing.json new file mode 100644 index 000000000..4e340c803 --- /dev/null +++ b/tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing.json @@ -0,0 +1,182 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeployment153978bb20": { + "Properties": { + "Description": "RestApi deployment id: 153978bb206310512b68a143f50ef28668a2f77d", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeployment153978bb20" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + } + } +} diff --git a/tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing_ipv6.json new file mode 100644 index 000000000..4e340c803 --- /dev/null +++ b/tests/translator/output/aws-cn/http_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -0,0 +1,182 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-cn:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-cn:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeployment153978bb20": { + "Properties": { + "Description": "RestApi deployment id: 153978bb206310512b68a143f50ef28668a2f77d", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeployment153978bb20" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + } + } +} diff --git a/tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing.json new file mode 100644 index 000000000..b0467d63a --- /dev/null +++ b/tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing.json @@ -0,0 +1,264 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "ApiGatewayDomainName1a01391c0c": { + "Properties": { + "DomainName": { + "Ref": "MyRestRegionalDomainName" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "MutualTlsAuthentication": { + "TruststoreUri": "${mtlsuri}" + }, + "RegionalCertificateArn": { + "Ref": "MyRestRegionalDomainCert" + }, + "SecurityPolicy": "TLS_1_2" + }, + "Type": "AWS::ApiGateway::DomainName" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "RecordSetGroup1194dea82a": { + "Properties": { + "HostedZoneId": { + "Ref": "HostedZoneId" + }, + "RecordSets": [ + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "A" + } + ] + }, + "Type": "AWS::Route53::RecordSetGroup" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeployment2c8abe6b24": { + "Properties": { + "Description": "RestApi deployment id: 2c8abe6b24dce7450a206935cd53e6addf75e864", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeployment2c8abe6b24" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "ServerlessRestApigetBasePathMapping": { + "Properties": { + "BasePath": "get", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + }, + "ServerlessRestApipostBasePathMapping": { + "Properties": { + "BasePath": "post", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + } + } +} diff --git a/tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing_ipv6.json new file mode 100644 index 000000000..5a4506451 --- /dev/null +++ b/tests/translator/output/aws-us-gov/api_with_custom_domains_regional_latency_routing_ipv6.json @@ -0,0 +1,286 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "ApiGatewayDomainName1a01391c0c": { + "Properties": { + "DomainName": { + "Ref": "MyRestRegionalDomainName" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "MutualTlsAuthentication": { + "TruststoreUri": "${mtlsuri}" + }, + "RegionalCertificateArn": { + "Ref": "MyRestRegionalDomainCert" + }, + "SecurityPolicy": "TLS_1_2" + }, + "Type": "AWS::ApiGateway::DomainName" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "RecordSetGroup1194dea82a": { + "Properties": { + "HostedZoneId": { + "Ref": "HostedZoneId" + }, + "RecordSets": [ + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "A" + }, + { + "AliasTarget": { + "DNSName": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalDomainName" + ] + }, + "HostedZoneId": { + "Fn::GetAtt": [ + "ApiGatewayDomainName1a01391c0c", + "RegionalHostedZoneId" + ] + } + }, + "Name": { + "Ref": "MyRestRegionalDomainName" + }, + "Region": "eu-west-2", + "SetIdentifier": "eu-west-2", + "Type": "AAAA" + } + ] + }, + "Type": "AWS::Route53::RecordSetGroup" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeployment0173db1f08": { + "Properties": { + "Description": "RestApi deployment id: 0173db1f08a21b6fa9477b90933b400190264d0b", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeployment0173db1f08" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + }, + "ServerlessRestApigetBasePathMapping": { + "Properties": { + "BasePath": "get", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + }, + "ServerlessRestApipostBasePathMapping": { + "Properties": { + "BasePath": "post", + "DomainName": { + "Ref": "ApiGatewayDomainName1a01391c0c" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "Stage": { + "Ref": "ServerlessRestApiProdStage" + } + }, + "Type": "AWS::ApiGateway::BasePathMapping" + } + } +} diff --git a/tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing.json new file mode 100644 index 000000000..9fa3d95cd --- /dev/null +++ b/tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing.json @@ -0,0 +1,182 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeployment625612fdeb": { + "Properties": { + "Description": "RestApi deployment id: 625612fdeb22ef135dd01a16dc9844682b2f904c", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeployment625612fdeb" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + } + } +} diff --git a/tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing_ipv6.json new file mode 100644 index 000000000..9fa3d95cd --- /dev/null +++ b/tests/translator/output/aws-us-gov/http_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -0,0 +1,182 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws-us-gov:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws-us-gov:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + }, + "EndpointConfiguration": { + "Types": [ + "REGIONAL" + ] + }, + "Parameters": { + "endpointConfigurationTypes": "REGIONAL" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeployment625612fdeb": { + "Properties": { + "Description": "RestApi deployment id: 625612fdeb22ef135dd01a16dc9844682b2f904c", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeployment625612fdeb" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + } + } +} diff --git a/tests/translator/output/http_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/http_api_with_custom_domains_regional_latency_routing.json new file mode 100644 index 000000000..acf358d9d --- /dev/null +++ b/tests/translator/output/http_api_with_custom_domains_regional_latency_routing.json @@ -0,0 +1,174 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeploymentfb48aa4b64": { + "Properties": { + "Description": "RestApi deployment id: fb48aa4b647a8f3adde88ff0131f0b02c71c2493", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeploymentfb48aa4b64" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + } + } +} diff --git a/tests/translator/output/http_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/http_api_with_custom_domains_regional_latency_routing_ipv6.json new file mode 100644 index 000000000..acf358d9d --- /dev/null +++ b/tests/translator/output/http_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -0,0 +1,174 @@ +{ + "Metadata": { + "SamTransformTest": true + }, + "Parameters": { + "HostedZoneId": { + "Type": "String" + }, + "MyRestRegionalDomainCert": { + "Type": "String" + }, + "MyRestRegionalDomainName": { + "Type": "String" + } + }, + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n const response = {\n statusCode: 200,\n body: JSON.stringify('Hello from Lambda!'),\n };\n return response;\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyFunctionImplicitGetPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/get", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionImplicitPostPermissionProd": { + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Ref": "MyFunction" + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/POST/post", + { + "__ApiId__": { + "Ref": "ServerlessRestApi" + }, + "__Stage__": "*" + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunctionRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "lambda.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "ServerlessRestApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "paths": { + "/get": { + "get": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + }, + "/post": { + "post": { + "responses": {}, + "x-amazon-apigateway-integration": { + "httpMethod": "POST", + "type": "aws_proxy", + "uri": { + "Fn::Sub": "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" + } + } + } + } + }, + "swagger": "2.0" + } + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "ServerlessRestApiDeploymentfb48aa4b64": { + "Properties": { + "Description": "RestApi deployment id: fb48aa4b647a8f3adde88ff0131f0b02c71c2493", + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Stage" + }, + "Type": "AWS::ApiGateway::Deployment" + }, + "ServerlessRestApiProdStage": { + "Properties": { + "DeploymentId": { + "Ref": "ServerlessRestApiDeploymentfb48aa4b64" + }, + "RestApiId": { + "Ref": "ServerlessRestApi" + }, + "StageName": "Prod" + }, + "Type": "AWS::ApiGateway::Stage" + } + } +} From ce02bf331ef9b768736886bb0f2ff6948c610c35 Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Tue, 14 Mar 2023 12:21:00 -0700 Subject: [PATCH 27/32] chore: Add type to metrics code and deprecate CWMetricsPublisher (#3025) --- samtranslator/internal/deprecation_control.py | 5 +- samtranslator/metrics/method_decorator.py | 2 +- samtranslator/metrics/metrics.py | 54 +++++++++++++++---- samtranslator/model/eventsources/pull.py | 2 +- 4 files changed, 51 insertions(+), 12 deletions(-) diff --git a/samtranslator/internal/deprecation_control.py b/samtranslator/internal/deprecation_control.py index ee83694fd..b75522ad9 100644 --- a/samtranslator/internal/deprecation_control.py +++ b/samtranslator/internal/deprecation_control.py @@ -23,7 +23,10 @@ def _make_message(message: str, replacement: Optional[str]) -> str: return f"{message}, please use {replacement}" if replacement else message -def deprecated(replacement: Optional[str]) -> Callable[[Callable[PT, RT]], Callable[PT, RT]]: +# TODO: make @deprecated able to decorate a class + + +def deprecated(replacement: Optional[str] = None) -> Callable[[Callable[PT, RT]], Callable[PT, RT]]: """ Mark a function/method as deprecated. diff --git a/samtranslator/metrics/method_decorator.py b/samtranslator/metrics/method_decorator.py index b11a6bc96..6ce388fa8 100644 --- a/samtranslator/metrics/method_decorator.py +++ b/samtranslator/metrics/method_decorator.py @@ -76,7 +76,7 @@ def _send_cw_metric(prefix, name, execution_time_ms, func, args): # type: ignor try: metric_name = _get_metric_name(prefix, name, func, args) # type: ignore[no-untyped-call] LOG.debug("Execution took %sms for %s", execution_time_ms, metric_name) - MetricsMethodWrapperSingleton.get_instance().record_latency(metric_name, execution_time_ms) # type: ignore[no-untyped-call] + MetricsMethodWrapperSingleton.get_instance().record_latency(metric_name, execution_time_ms) except Exception as e: LOG.warning("Failed to add metrics", exc_info=e) diff --git a/samtranslator/metrics/metrics.py b/samtranslator/metrics/metrics.py index ebbb0347b..6b1b36600 100644 --- a/samtranslator/metrics/metrics.py +++ b/samtranslator/metrics/metrics.py @@ -4,7 +4,11 @@ import logging from abc import ABC, abstractmethod from datetime import datetime -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List, Optional, Union + +from typing_extensions import TypedDict + +from samtranslator.internal.deprecation_control import deprecated LOG = logging.getLogger(__name__) @@ -25,6 +29,7 @@ def publish(self, namespace: str, metrics: List["MetricDatum"]) -> None: class CWMetricsPublisher(MetricsPublisher): BATCH_SIZE = 20 + @deprecated() def __init__(self, cloudwatch_client) -> None: # type: ignore[no-untyped-def] """ Constructor @@ -66,7 +71,7 @@ class DummyMetricsPublisher(MetricsPublisher): def __init__(self) -> None: MetricsPublisher.__init__(self) - def publish(self, namespace, metrics): # type: ignore[no-untyped-def] + def publish(self, namespace: str, metrics: List["MetricDatum"]) -> None: """Do not publish any metric, this is a dummy publisher used for offline use.""" LOG.debug(f"Dummy publisher ignoring {len(metrics)} metrices") @@ -90,7 +95,14 @@ class MetricDatum: Class to hold Metric data. """ - def __init__(self, name, value, unit, dimensions=None, timestamp=None) -> None: # type: ignore[no-untyped-def] + def __init__( + self, + name: str, + value: Union[int, float], + unit: str, + dimensions: Optional[List["MetricDimension"]] = None, + timestamp: Optional[datetime] = None, + ) -> None: """ Constructor @@ -116,6 +128,11 @@ def get_metric_data(self) -> Dict[str, Any]: } +class MetricDimension(TypedDict): + Name: str + Value: Any + + class Metrics: def __init__( self, namespace: str = "ServerlessTransform", metrics_publisher: Optional[MetricsPublisher] = None @@ -138,7 +155,14 @@ def __del__(self) -> None: ) self.publish() - def _record_metric(self, name, value, unit, dimensions=None, timestamp=None): # type: ignore[no-untyped-def] + def _record_metric( + self, + name: str, + value: Union[int, float], + unit: str, + dimensions: Optional[List["MetricDimension"]] = None, + timestamp: Optional[datetime] = None, + ) -> None: """ Create and save metric object in internal cache. @@ -150,7 +174,13 @@ def _record_metric(self, name, value, unit, dimensions=None, timestamp=None): # """ self.metrics_cache.setdefault(name, []).append(MetricDatum(name, value, unit, dimensions, timestamp)) - def record_count(self, name, value, dimensions=None, timestamp=None): # type: ignore[no-untyped-def] + def record_count( + self, + name: str, + value: int, + dimensions: Optional[List["MetricDimension"]] = None, + timestamp: Optional[datetime] = None, + ) -> None: """ Create metric with unit Count. @@ -160,9 +190,15 @@ def record_count(self, name, value, dimensions=None, timestamp=None): # type: i :param dimensions: array of dimensions applied to the metric :param timestamp: timestamp of metric (datetime.datetime object) """ - self._record_metric(name, value, Unit.Count, dimensions, timestamp) # type: ignore[no-untyped-call] + self._record_metric(name, value, Unit.Count, dimensions, timestamp) - def record_latency(self, name, value, dimensions=None, timestamp=None): # type: ignore[no-untyped-def] + def record_latency( + self, + name: str, + value: Union[int, float], + dimensions: Optional[List["MetricDimension"]] = None, + timestamp: Optional[datetime] = None, + ) -> None: """ Create metric with unit Milliseconds. @@ -172,7 +208,7 @@ def record_latency(self, name, value, dimensions=None, timestamp=None): # type: :param dimensions: array of dimensions applied to the metric :param timestamp: timestamp of metric (datetime.datetime object) """ - self._record_metric(name, value, Unit.Milliseconds, dimensions, timestamp) # type: ignore[no-untyped-call] + self._record_metric(name, value, Unit.Milliseconds, dimensions, timestamp) def publish(self) -> None: """Calls publish method from the configured metrics publisher to publish metrics""" @@ -184,7 +220,7 @@ def publish(self) -> None: self.metrics_publisher.publish(self.namespace, all_metrics) self.metrics_cache = {} - def get_metric(self, name): # type: ignore[no-untyped-def] + def get_metric(self, name: str) -> List[MetricDatum]: """ Returns a list of metrics from the internal cache for a metric name diff --git a/samtranslator/model/eventsources/pull.py b/samtranslator/model/eventsources/pull.py index 42b72de51..8977db69a 100644 --- a/samtranslator/model/eventsources/pull.py +++ b/samtranslator/model/eventsources/pull.py @@ -659,7 +659,7 @@ def get_vpc_permission(self) -> Dict[str, Any]: } @staticmethod - @deprecated(None) + @deprecated() def get_kms_policy(secrets_manager_kms_key_id: str) -> Dict[str, Any]: return { "Action": ["kms:Decrypt"], From ff14dbbacb1fd76d87118a9e20a78ece527ae7b2 Mon Sep 17 00:00:00 2001 From: _sam <3804518+aahung@users.noreply.github.com> Date: Tue, 14 Mar 2023 15:24:05 -0700 Subject: [PATCH 28/32] ci: Exclude samtranslator.internal from interface scan (#3027) --- bin/public_interface.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/bin/public_interface.py b/bin/public_interface.py index 426fc6c84..a66e7acde 100755 --- a/bin/public_interface.py +++ b/bin/public_interface.py @@ -15,17 +15,20 @@ import pkgutil import sys from pathlib import Path -from typing import Any, Dict, List, NamedTuple, Set, Union +from typing import Any, Dict, List, NamedTuple, Optional, Set, Union _ARGUMENT_SELF = {"kind": "POSITIONAL_OR_KEYWORD", "name": "self"} class InterfaceScanner: - def __init__(self) -> None: + def __init__(self, skipped_modules: Optional[List[str]] = None) -> None: self.signatures: Dict[str, Union[inspect.Signature]] = {} self.variables: Set[str] = set() + self.skipped_modules: Set[str] = set(skipped_modules or []) def scan_interfaces_recursively(self, module_name: str) -> None: + if module_name in self.skipped_modules: + return self._scan_interfaces_in_module(module_name) for submodule in pkgutil.iter_modules([module_name.replace(".", os.path.sep)]): submodule_name = module_name + "." + submodule.name @@ -212,13 +215,20 @@ def main() -> None: subparsers = parser.add_subparsers(dest="command") extract = subparsers.add_parser("extract", help="Extract public interfaces") extract.add_argument("--module", help="The module to extract public interfaces", type=str, default="samtranslator") + extract.add_argument( + "--skipped-module", + help="The modules that should be skipped", + type=str, + nargs="*", + default=["samtranslator.internal"], + ) check = subparsers.add_parser("check", help="Check public interface changes") check.add_argument("original_json", help="The original public interface JSON file", type=Path) check.add_argument("new_json", help="The new public interface JSON file", type=Path) args = parser.parse_args() if args.command == "extract": - scanner = InterfaceScanner() + scanner = InterfaceScanner(skipped_modules=args.skipped_module) scanner.scan_interfaces_recursively(args.module) _print(scanner.signatures, scanner.variables) elif args.command == "check": From 90d7119cbb62acd0ee798c83da6a9bbb8620f33d Mon Sep 17 00:00:00 2001 From: Aayush thapa <84202325+aaythapa@users.noreply.github.com> Date: Tue, 14 Mar 2023 15:54:44 -0700 Subject: [PATCH 29/32] chore: update properties in schema with new docs (#3026) Co-authored-by: _sam <3804518+aahung@users.noreply.github.com> --- .../schema_source/aws_serverless_api.py | 4 +- .../schema_source/aws_serverless_connector.py | 7 +- .../schema_source/aws_serverless_function.py | 35 +-- .../schema_source/aws_serverless_httpapi.py | 2 +- .../aws_serverless_statemachine.py | 14 +- .../internal/schema_source/sam-docs.json | 7 +- samtranslator/schema/schema.json | 225 +++++++++++++++--- schema_source/sam.schema.json | 225 +++++++++++++++--- 8 files changed, 421 insertions(+), 98 deletions(-) diff --git a/samtranslator/internal/schema_source/aws_serverless_api.py b/samtranslator/internal/schema_source/aws_serverless_api.py index 8b0c55dff..2912489e5 100644 --- a/samtranslator/internal/schema_source/aws_serverless_api.py +++ b/samtranslator/internal/schema_source/aws_serverless_api.py @@ -77,7 +77,7 @@ class LambdaTokenAuthorizer(BaseModel): FunctionInvokeRole: Optional[str] = lambdatokenauthorizer("FunctionInvokeRole") FunctionPayloadType: Optional[Literal["TOKEN"]] = lambdatokenauthorizer("FunctionPayloadType") Identity: Optional[LambdaTokenAuthorizerIdentity] = lambdatokenauthorizer("Identity") - DisableFunctionDefaultPermissions: Optional[bool] # TODO Add docs + DisableFunctionDefaultPermissions: Optional[bool] = lambdatokenauthorizer("DisableFunctionDefaultPermissions") class LambdaRequestAuthorizer(BaseModel): @@ -86,7 +86,7 @@ class LambdaRequestAuthorizer(BaseModel): FunctionInvokeRole: Optional[str] = lambdarequestauthorizer("FunctionInvokeRole") FunctionPayloadType: Optional[Literal["REQUEST"]] = lambdarequestauthorizer("FunctionPayloadType") Identity: Optional[LambdaRequestAuthorizerIdentity] = lambdarequestauthorizer("Identity") - DisableFunctionDefaultPermissions: Optional[bool] # TODO Add docs + DisableFunctionDefaultPermissions: Optional[bool] = lambdarequestauthorizer("DisableFunctionDefaultPermissions") class UsagePlan(BaseModel): diff --git a/samtranslator/internal/schema_source/aws_serverless_connector.py b/samtranslator/internal/schema_source/aws_serverless_connector.py index 9d43296bc..bdb4295ce 100644 --- a/samtranslator/internal/schema_source/aws_serverless_connector.py +++ b/samtranslator/internal/schema_source/aws_serverless_connector.py @@ -6,6 +6,7 @@ resourcereference = get_prop("sam-property-connector-resourcereference") properties = get_prop("sam-resource-connector") +sourcereference = get_prop("sam-property-connector-sourcereference") PermissionsType = List[Literal["Read", "Write"]] @@ -32,12 +33,12 @@ class Resource(ResourceAttributes): Properties: Properties -class SourceReference(BaseModel): - Qualifier: Optional[PassThroughProp] = resourcereference("Qualifier") +class SourceReferenceProperties(BaseModel): + Qualifier: Optional[PassThroughProp] = sourcereference("Qualifier") class EmbeddedConnectorProperties(BaseModel): - SourceReference: Optional[SourceReference] # TODO: add docs for SourceReference + SourceReference: Optional[SourceReferenceProperties] = properties("SourceReference") Destination: Union[ResourceReference, List[ResourceReference]] = properties("Destination") Permissions: PermissionsType = properties("Permissions") diff --git a/samtranslator/internal/schema_source/aws_serverless_function.py b/samtranslator/internal/schema_source/aws_serverless_function.py index e060b1475..18efa977f 100644 --- a/samtranslator/internal/schema_source/aws_serverless_function.py +++ b/samtranslator/internal/schema_source/aws_serverless_function.py @@ -25,6 +25,7 @@ deadletterconfig = get_prop("sam-property-function-deadletterconfig") deploymentpreference = get_prop("sam-property-function-deploymentpreference") dlq = get_prop("sam-property-function-deadletterqueue") +documentdbeventproperties = get_prop("sam-property-function-documentdb") dynamodbeventproperties = get_prop("sam-property-function-dynamodb") event = get_prop("sam-property-function-eventsource") eventbridgeruleeventproperties = get_prop("sam-property-function-eventbridgerule") @@ -201,18 +202,20 @@ class DynamoDBEvent(BaseModel): class DocumentDBEventProperties(BaseModel): - BatchSize: Optional[PassThroughProp] # TODO: add documentation - Cluster: PassThroughProp # TODO: add documentation - CollectionName: Optional[PassThroughProp] # TODO: add documentation - DatabaseName: PassThroughProp # TODO: add documentation - Enabled: Optional[PassThroughProp] # TODO: add documentation - FilterCriteria: Optional[PassThroughProp] # TODO: add documentation - FullDocument: Optional[PassThroughProp] # TODO: add documentation - MaximumBatchingWindowInSeconds: Optional[PassThroughProp] # TODO: add documentation - SecretsManagerKmsKeyId: Optional[str] # TODO: add documentation - SourceAccessConfigurations: PassThroughProp # TODO: add documentation - StartingPosition: Optional[PassThroughProp] # TODO: add documentation - StartingPositionTimestamp: Optional[PassThroughProp] # TODO: add documentation + BatchSize: Optional[PassThroughProp] = documentdbeventproperties("BatchSize") + Cluster: PassThroughProp = documentdbeventproperties("Cluster") + CollectionName: Optional[PassThroughProp] = documentdbeventproperties("CollectionName") + DatabaseName: PassThroughProp = documentdbeventproperties("DatabaseName") + Enabled: Optional[PassThroughProp] = documentdbeventproperties("Enabled") + FilterCriteria: Optional[PassThroughProp] = documentdbeventproperties("FilterCriteria") + FullDocument: Optional[PassThroughProp] = documentdbeventproperties("FullDocument") + MaximumBatchingWindowInSeconds: Optional[PassThroughProp] = documentdbeventproperties( + "MaximumBatchingWindowInSeconds" + ) + SecretsManagerKmsKeyId: Optional[str] = documentdbeventproperties("SecretsManagerKmsKeyId") + SourceAccessConfigurations: PassThroughProp = documentdbeventproperties("SourceAccessConfigurations") + StartingPosition: Optional[PassThroughProp] = documentdbeventproperties("StartingPosition") + StartingPositionTimestamp: Optional[PassThroughProp] = documentdbeventproperties("StartingPositionTimestamp") class DocumentDBEvent(BaseModel): @@ -395,7 +398,7 @@ class MSKEventProperties(BaseModel): StartingPositionTimestamp: Optional[PassThroughProp] = mskeventproperties("StartingPositionTimestamp") Stream: PassThroughProp = mskeventproperties("Stream") Topics: PassThroughProp = mskeventproperties("Topics") - SourceAccessConfigurations: Optional[PassThroughProp] # TODO: update docs when live + SourceAccessConfigurations: Optional[PassThroughProp] = mskeventproperties("SourceAccessConfigurations") class MSKEvent(BaseModel): @@ -491,7 +494,7 @@ class Properties(BaseModel): Architectures: Optional[Architectures] = prop("Architectures") AssumeRolePolicyDocument: Optional[AssumeRolePolicyDocument] = prop("AssumeRolePolicyDocument") AutoPublishAlias: Optional[AutoPublishAlias] = prop("AutoPublishAlias") - AutoPublishAliasAllProperties: Optional[AutoPublishAliasAllProperties] # TODO: add docs + AutoPublishAliasAllProperties: Optional[AutoPublishAliasAllProperties] = prop("AutoPublishAliasAllProperties") AutoPublishCodeSha256: Optional[SamIntrinsicable[str]] = prop("AutoPublishCodeSha256") CodeSigningConfigArn: Optional[SamIntrinsicable[str]] = prop("CodeSigningConfigArn") CodeUri: Optional[CodeUriType] = prop("CodeUri") @@ -546,7 +549,7 @@ class Properties(BaseModel): Role: Optional[SamIntrinsicable[str]] = prop("Role") Runtime: Optional[Runtime] = prop("Runtime") SnapStart: Optional[SnapStart] = prop("SnapStart") - RuntimeManagementConfig: Optional[RuntimeManagementConfig] # TODO: add prop and types + RuntimeManagementConfig: Optional[RuntimeManagementConfig] = prop("RuntimeManagementConfig") Tags: Optional[Tags] = prop("Tags") Timeout: Optional[Timeout] = prop("Timeout") Tracing: Optional[Tracing] = prop("Tracing") @@ -579,7 +582,7 @@ class Globals(BaseModel): Architectures: Optional[Architectures] = prop("Architectures") EphemeralStorage: Optional[EphemeralStorage] = prop("EphemeralStorage") SnapStart: Optional[SnapStart] = prop("SnapStart") - RuntimeManagementConfig: Optional[RuntimeManagementConfig] # TODO: add prop + RuntimeManagementConfig: Optional[RuntimeManagementConfig] = prop("RuntimeManagementConfig") class Resource(ResourceAttributes): diff --git a/samtranslator/internal/schema_source/aws_serverless_httpapi.py b/samtranslator/internal/schema_source/aws_serverless_httpapi.py index 43a434be0..8fee19828 100644 --- a/samtranslator/internal/schema_source/aws_serverless_httpapi.py +++ b/samtranslator/internal/schema_source/aws_serverless_httpapi.py @@ -127,7 +127,7 @@ class Properties(BaseModel): StageName: Optional[PassThroughProp] = properties("StageName") StageVariables: Optional[StageVariables] = properties("StageVariables") Tags: Optional[Tags] = properties("Tags") - Name: Optional[PassThroughProp] # TODO: Add to docs + Name: Optional[PassThroughProp] = properties("Name") class Globals(BaseModel): diff --git a/samtranslator/internal/schema_source/aws_serverless_statemachine.py b/samtranslator/internal/schema_source/aws_serverless_statemachine.py index 3c92157a1..cf696d31c 100644 --- a/samtranslator/internal/schema_source/aws_serverless_statemachine.py +++ b/samtranslator/internal/schema_source/aws_serverless_statemachine.py @@ -25,6 +25,8 @@ apieventproperties = get_prop("sam-property-statemachine-statemachineapi") apiauth = get_prop("sam-property-statemachine-apistatemachineauth") event = get_prop("sam-property-statemachine-statemachineeventsource") +scheduletarget = get_prop("sam-property-statemachine-statemachinescheduletarget") +eventtarget = get_prop("sam-property-statemachine-statemachinetarget") class DeadLetterConfig(BaseModel): @@ -34,7 +36,7 @@ class DeadLetterConfig(BaseModel): class ScheduleTarget(BaseModel): - Id: PassThroughProp # TODO: Add docs + Id: PassThroughProp = scheduletarget("Id") class ScheduleEventProperties(BaseModel): @@ -46,7 +48,7 @@ class ScheduleEventProperties(BaseModel): RetryPolicy: Optional[PassThroughProp] = scheduleeventproperties("RetryPolicy") Schedule: Optional[PassThroughProp] = scheduleeventproperties("Schedule") State: Optional[PassThroughProp] = scheduleeventproperties("State") - Target: Optional[ScheduleTarget] # TODO: Add docs + Target: Optional[ScheduleTarget] = scheduleeventproperties("Target") class ScheduleEvent(BaseModel): @@ -104,7 +106,7 @@ class CloudWatchEvent(BaseModel): class EventBridgeRuleTarget(BaseModel): - Id: PassThroughProp # TODO: Add docs + Id: PassThroughProp = eventtarget("Id") class EventBridgeRuleEventProperties(BaseModel): @@ -114,7 +116,7 @@ class EventBridgeRuleEventProperties(BaseModel): InputPath: Optional[PassThroughProp] = eventbridgeruleeventproperties("InputPath") Pattern: Optional[PassThroughProp] = eventbridgeruleeventproperties("Pattern") RetryPolicy: Optional[PassThroughProp] = eventbridgeruleeventproperties("RetryPolicy") - Target: Optional[EventBridgeRuleTarget] # TODO: Add docs + Target: Optional[EventBridgeRuleTarget] = eventbridgeruleeventproperties("Target") class EventBridgeRuleEvent(BaseModel): @@ -134,7 +136,7 @@ class ApiEventProperties(BaseModel): Method: str = apieventproperties("Method") Path: str = apieventproperties("Path") RestApiId: Optional[SamIntrinsicable[str]] = apieventproperties("RestApiId") - UnescapeMappingTemplate: Optional[bool] # TODO: Add to docs + UnescapeMappingTemplate: Optional[bool] = apieventproperties("UnescapeMappingTemplate") class ApiEvent(BaseModel): @@ -163,7 +165,7 @@ class Properties(BaseModel): PermissionsBoundary: Optional[PassThroughProp] = properties("PermissionsBoundary") Policies: Optional[Union[str, DictStrAny, List[Union[str, DictStrAny]]]] = properties("Policies") Role: Optional[PassThroughProp] = properties("Role") - RolePath: Optional[PassThroughProp] # TODO: Add docs + RolePath: Optional[PassThroughProp] = properties("RolePath") Tags: Optional[DictStrAny] = properties("Tags") Tracing: Optional[PassThroughProp] = properties("Tracing") Type: Optional[PassThroughProp] = properties("Type") diff --git a/samtranslator/internal/schema_source/sam-docs.json b/samtranslator/internal/schema_source/sam-docs.json index bfbef09fa..c83880753 100644 --- a/samtranslator/internal/schema_source/sam-docs.json +++ b/samtranslator/internal/schema_source/sam-docs.json @@ -63,7 +63,8 @@ }, "sam-property-api-lambdarequestauthorizer": { "AuthorizationScopes": "List of authorization scopes for this authorizer\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "FunctionArn": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "DisableFunctionDefaultPermissions": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "FunctionArn": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "FunctionInvokeRole": "Adds authorizer credentials to the OpenApi definition of the Lambda authorizer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "FunctionPayloadType": "This property can be used to define the type of Lambda Authorizer for an API\\. \n*Valid values*: `TOKEN` or `REQUEST` \n*Type*: String \n*Required*: No \n*Default*: `TOKEN` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "Identity": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. This property is only required if the `FunctionPayloadType` property is set to `REQUEST`\\. \n*Type*: [LambdaRequestAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizationidentity.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." @@ -75,7 +76,8 @@ }, "sam-property-api-lambdatokenauthorizer": { "AuthorizationScopes": "List of authorization scopes for this authorizer\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "FunctionArn": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "DisableFunctionDefaultPermissions": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "FunctionArn": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "FunctionInvokeRole": "Adds authorizer credentials to the OpenApi definition of the Lambda authorizer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "FunctionPayloadType": "This property can be used to define the type of Lambda Authorizer for an Api\\. \n*Valid values*: `TOKEN` or `REQUEST` \n*Type*: String \n*Required*: No \n*Default*: `TOKEN` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "Identity": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. This property is only required if the `FunctionPayloadType` property is set to `REQUEST`\\. \n*Type*: [LambdaTokenAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizationidentity.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." @@ -590,6 +592,7 @@ "Architectures": "The instruction set architecture for the function\\. \nFor more information about this property, see [Lambda instruction set architectures](https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: One of `x86_64` or `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Architectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures) property of an `AWS::Lambda::Function` resource\\.", "AssumeRolePolicyDocument": "Adds an AssumeRolePolicyDocument for the default created `Role` for this function\\. If this property isn't specified, AWS SAM adds a default assume role for this function\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`AssumeRolePolicyDocument`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument) property of an `AWS::IAM::Role` resource\\. AWS SAM adds this property to the generated IAM role for this function\\. If a role's Amazon Resource Name \\(ARN\\) is provided for this function, this property does nothing\\.", "AutoPublishAlias": "The name of the Lambda alias\\. For more information about Lambda aliases, see [Lambda function aliases](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) in the *AWS Lambda Developer Guide*\\. For examples that use this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\. \nAWS SAM generates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html) resources when this property is set\\. For information about this scenario, see [AutoPublishAlias property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-function.html#sam-specification-generated-resources-function-autopublishalias)\\. For general information about generated AWS CloudFormation resources, see [Generated AWS CloudFormation resources](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources.html)\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "AutoPublishAliasAllProperties": "Specifies when a new [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) is created\\. When `true`, a new Lambda version is created when any property in the Lambda function is modified\\. When `false`, a new Lambda version is created only when any of the following properties are modified: \n+ `Environment`, `MemorySize`, or `SnapStart`\\.\n+ Any change that results in an update to the `Code` property, such as `CodeDict`, `ImageUri`, or `InlineCode`\\.\nThis property requires `AutoPublishAlias` to be defined\\. \nIf `AutoPublishSha256` is also specified, its behavior takes precedence over `AutoPublishAliasAllProperties: true`\\. \n*Type*: Boolean \n*Required*: No \n*Default value*: `false` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "AutoPublishCodeSha256": "The string value that is used, along with the value in `CodeUri`, to determine whether a new Lambda version should be published\\. This property is only used when `AutoPublishAlias` is also defined\\. \nThis property addresses a problem that occurs when an AWS SAM template has the following characteristics: the `DeploymentPreference` object is configured for gradual deployments \\(as described in [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\), the `AutoPublishAlias` property is set and doesn't change between deployments, and the `CodeUri` property is set and doesn't change between deployments\\. \nThis scenario can occur when the deployment package stored in an Amazon Simple Storage Service \\(Amazon S3\\) location is replaced by a new deployment package that contains updated Lambda function code, but the `CodeUri` property remains unchanged \\(as opposed to the new deployment package being uploaded to a new Amazon S3 location and the `CodeUri` being changed to the new location\\)\\. \nIn this scenario, to trigger the gradual deployment successfully, you must provide a unique value for `AutoPublishCodeSha256`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "CodeSigningConfigArn": "The ARN of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html) resource, used to enable code signing for this function\\. For more information about code signing, see [Configuring code signing for AWS SAM applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/authoring-codesigning.html)\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CodeSigningConfigArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn) property of an `AWS::Lambda::Function` resource\\.", "CodeUri": "The function code's Amazon S3 URI, path to local folder, or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\. \n**Notes**: \n1\\. If the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\. \n2\\. If an Amazon S3 URI or [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) object is provided, the Amazon S3 object referenced must be a valid [Lambda deployment package](https://docs.aws.amazon.com/lambda/latest/dg/deployment-package-v2.html)\\. \n3\\. If the path to a local folder is provided, for the code to be transformed properly the template must go through the workflow that includes [sam build](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-build.html) followed by either [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) or [sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)\\. By default, relative paths are resolved with respect to the AWS SAM template's location\\. \n*Type*: String \\| [FunctionCode](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functioncode.html) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is similar to the [`Code`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code) property of an `AWS::Lambda::Function` resource\\. The nested Amazon S3 properties are named differently\\.", diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 135fd8f22..c9e218e01 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -194762,41 +194762,120 @@ "additionalProperties": false, "properties": { "BatchSize": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ BatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ BatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "BatchSize" }, "Cluster": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ EventSourceArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ EventSourceArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Cluster" }, "CollectionName": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ CollectionName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-collectionname)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "markdownDescription": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ CollectionName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-collectionname)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "title": "CollectionName" }, "DatabaseName": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the database to consume within the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ DatabaseName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-databasename)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig`data type\\.", + "markdownDescription": "The name of the database to consume within the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ DatabaseName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-databasename)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig`data type\\.", + "title": "DatabaseName" }, "Enabled": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "If `true`, the event source mapping is active\\. To pause polling and invocation, set to `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ Enabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "If `true`, the event source mapping is active\\. To pause polling and invocation, set to `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ Enabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Enabled" }, "FilterCriteria": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [ Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [ Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "FilterCriteria" }, "FullDocument": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Determines what Amazon DocumentDB sends to your event stream during document update operations\\. If set to `UpdateLookup`, Amazon DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, Amazon DocumentDB sends only a partial document that contains the changes\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FullDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-fulldocument)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "markdownDescription": "Determines what Amazon DocumentDB sends to your event stream during document update operations\\. If set to `UpdateLookup`, Amazon DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, Amazon DocumentDB sends only a partial document that contains the changes\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FullDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-fulldocument)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "title": "FullDocument" }, "MaximumBatchingWindowInSeconds": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum amount of time to gather records before invoking the function, in seconds\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ MaximumBatchingWindowInSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum amount of time to gather records before invoking the function, in seconds\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ MaximumBatchingWindowInSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumBatchingWindowInSeconds" }, "SecretsManagerKmsKeyId": { - "title": "Secretsmanagerkmskeyid", + "description": "The AWS Key Management Service \\(AWS KMS\\) key ID of a customer managed key from AWS Secrets Manager\\. Required when you use a customer managed key from Secrets Manager with a Lambda execution role that doesn\u2019t include the `kms:Decrypt` permission\\. \nThe value of this property is a UUID\\. For example: `1abc23d4-567f-8ab9-cde0-1fab234c5d67`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn\u2019t have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key ID of a customer managed key from AWS Secrets Manager\\. Required when you use a customer managed key from Secrets Manager with a Lambda execution role that doesn\u2019t include the `kms:Decrypt` permission\\. \nThe value of this property is a UUID\\. For example: `1abc23d4-567f-8ab9-cde0-1fab234c5d67`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn\u2019t have an AWS CloudFormation equivalent\\.", + "title": "SecretsManagerKmsKeyId", "type": "string" }, "SourceAccessConfigurations": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol or virtual host\\. Specify this using the [ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `DocumentDB` event source type, the only valid configuration type is `BASIC_AUTH`\\. \n+ `BASIC_AUTH` \u2013 The Secrets Manager secret that stores your broker credentials\\. For this type, the credential must be in the following format: `{\"username\": \"your-username\", \"password\": \"your-password\"}`\\. Only one object of type `BASIC_AUTH` is allowed\\.\n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An array of the authentication protocol or virtual host\\. Specify this using the [ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `DocumentDB` event source type, the only valid configuration type is `BASIC_AUTH`\\. \n+ `BASIC_AUTH` \u2013 The Secrets Manager secret that stores your broker credentials\\. For this type, the credential must be in the following format: `{\"username\": \"your-username\", \"password\": \"your-password\"}`\\. Only one object of type `BASIC_AUTH` is allowed\\.\n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "SourceAccessConfigurations" }, "StartingPosition": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The position in a stream from which to start reading\\. \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPosition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The position in a stream from which to start reading\\. \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPosition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "StartingPosition" }, "StartingPositionTimestamp": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\. \n*Type*: Double \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPositionTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\. \n*Type*: Double \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPositionTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "StartingPositionTimestamp" } }, "required": [ @@ -195048,7 +195127,14 @@ "type": "array" }, "SourceReference": { - "$ref": "#/definitions/SourceReference" + "allOf": [ + { + "$ref": "#/definitions/SourceReferenceProperties" + } + ], + "description": "The source resource\\. \nUse with the embedded connectors syntax when defining additional properties for the source resource\\.\n*Type*: [SourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-sourcereference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The source resource\\. \nUse with the embedded connectors syntax when defining additional properties for the source resource\\.\n*Type*: [SourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-sourcereference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "SourceReference" } }, "required": [ @@ -195859,7 +195945,9 @@ "type": "array" }, "DisableFunctionDefaultPermissions": { - "title": "Disablefunctiondefaultpermissions", + "description": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DisableFunctionDefaultPermissions", "type": "boolean" }, "FunctionArn": { @@ -195871,8 +195959,8 @@ "type": "string" } ], - "description": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "FunctionArn" }, "FunctionInvokeRole": { @@ -195976,7 +196064,9 @@ "type": "array" }, "DisableFunctionDefaultPermissions": { - "title": "Disablefunctiondefaultpermissions", + "description": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DisableFunctionDefaultPermissions", "type": "boolean" }, "FunctionArn": { @@ -195988,8 +196078,8 @@ "type": "string" } ], - "description": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "FunctionArn" }, "FunctionInvokeRole": { @@ -196279,7 +196369,14 @@ "title": "MaximumBatchingWindowInSeconds" }, "SourceAccessConfigurations": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `CLIENT_CERTIFICATE_TLS_AUTH` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `CLIENT_CERTIFICATE_TLS_AUTH` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "SourceAccessConfigurations" }, "StartingPosition": { "allOf": [ @@ -196965,7 +197062,14 @@ "title": "State" }, "Target": { - "$ref": "#/definitions/ScheduleTarget" + "allOf": [ + { + "$ref": "#/definitions/ScheduleTarget" + } + ], + "description": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "markdownDescription": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "title": "Target" } }, "title": "ScheduleEventProperties", @@ -196975,7 +197079,14 @@ "additionalProperties": false, "properties": { "Id": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "Id" } }, "required": [ @@ -197101,7 +197212,7 @@ "title": "SelfManagedKafkaEventProperties", "type": "object" }, - "SourceReference": { + "SourceReferenceProperties": { "additionalProperties": false, "properties": { "Qualifier": { @@ -197110,12 +197221,12 @@ "$ref": "#/definitions/PassThroughProp" } ], - "description": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Qualifier" } }, - "title": "SourceReference", + "title": "SourceReferenceProperties", "type": "object" }, "SqsSubscription": { @@ -199008,7 +199119,14 @@ "title": "Runtime" }, "RuntimeManagementConfig": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "title": "RuntimeManagementConfig" }, "SnapStart": { "allOf": [ @@ -199100,7 +199218,9 @@ "title": "AutoPublishAlias" }, "AutoPublishAliasAllProperties": { - "title": "Autopublishaliasallproperties", + "description": "Specifies when a new [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) is created\\. When `true`, a new Lambda version is created when any property in the Lambda function is modified\\. When `false`, a new Lambda version is created only when any of the following properties are modified: \n+ `Environment`, `MemorySize`, or `SnapStart`\\.\n+ Any change that results in an update to the `Code` property, such as `CodeDict`, `ImageUri`, or `InlineCode`\\.\nThis property requires `AutoPublishAlias` to be defined\\. \nIf `AutoPublishSha256` is also specified, its behavior takes precedence over `AutoPublishAliasAllProperties: true`\\. \n*Type*: Boolean \n*Required*: No \n*Default value*: `false` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies when a new [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) is created\\. When `true`, a new Lambda version is created when any property in the Lambda function is modified\\. When `false`, a new Lambda version is created only when any of the following properties are modified: \n+ `Environment`, `MemorySize`, or `SnapStart`\\.\n+ Any change that results in an update to the `Code` property, such as `CodeDict`, `ImageUri`, or `InlineCode`\\.\nThis property requires `AutoPublishAlias` to be defined\\. \nIf `AutoPublishSha256` is also specified, its behavior takes precedence over `AutoPublishAliasAllProperties: true`\\. \n*Type*: Boolean \n*Required*: No \n*Default value*: `false` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AutoPublishAliasAllProperties", "type": "boolean" }, "AutoPublishCodeSha256": { @@ -199472,7 +199592,14 @@ "title": "Runtime" }, "RuntimeManagementConfig": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "title": "RuntimeManagementConfig" }, "SnapStart": { "allOf": [ @@ -200335,7 +200462,14 @@ "title": "FailOnWarnings" }, "Name": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the HTTP API resource\\. \nWhen you specify `Name`, AWS SAM will modify the HTTP API resource's OpenAPI definition by setting the `title` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `title` field set in the Open API definition \u2013 This results in a conflict of the `title` field that AWS SAM won't resolve\\.\n+ The `DefinitionUri` property is specified \u2013 AWS SAM won't modify an Open API definition that is retrieved from Amazon S3\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The name of the HTTP API resource\\. \nWhen you specify `Name`, AWS SAM will modify the HTTP API resource's OpenAPI definition by setting the `title` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `title` field set in the Open API definition \u2013 This results in a conflict of the `title` field that AWS SAM won't resolve\\.\n+ The `DefinitionUri` property is specified \u2013 AWS SAM won't modify an Open API definition that is retrieved from Amazon S3\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Name" }, "RouteSettings": { "allOf": [ @@ -200781,7 +200915,9 @@ "title": "RestApiId" }, "UnescapeMappingTemplate": { - "title": "Unescapemappingtemplate", + "description": "Unescapes single quotes, by replacing `\\'` with `'`, on the input that is passed to the state machine\\. Use when your input contains single quotes\\. \nIf set to `False` and your input contains single quotes, an error will occur\\.\n*Type*: Boolean \n*Required*: No \n*Default*: False \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Unescapes single quotes, by replacing `\\'` with `'`, on the input that is passed to the state machine\\. Use when your input contains single quotes\\. \nIf set to `False` and your input contains single quotes, an error will occur\\.\n*Type*: Boolean \n*Required*: No \n*Default*: False \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "UnescapeMappingTemplate", "type": "boolean" } }, @@ -201033,7 +201169,14 @@ "title": "RetryPolicy" }, "Target": { - "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_statemachine__EventBridgeRuleTarget" + "allOf": [ + { + "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_statemachine__EventBridgeRuleTarget" + } + ], + "description": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "markdownDescription": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "title": "Target" } }, "title": "EventBridgeRuleEventProperties", @@ -201043,7 +201186,14 @@ "additionalProperties": false, "properties": { "Id": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "Id" } }, "required": [ @@ -201172,7 +201322,14 @@ "title": "Role" }, "RolePath": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The path to the state machine's IAM execution role\\. \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The path to the state machine's IAM execution role\\. \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.", + "title": "RolePath" }, "Tags": { "description": "A string\\-to\\-string map that specifies the tags added to the state machine and the corresponding execution role\\. For information about valid keys and values for tags, see the [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html) resource\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an `AWS::StepFunctions::StateMachine` resource\\. AWS SAM automatically adds a `stateMachine:createdBy:SAM` tag to this resource, and to the default role that is generated for it\\.", diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index b45d2a069..27895adc4 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -580,41 +580,120 @@ "additionalProperties": false, "properties": { "BatchSize": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ BatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ BatchSize](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "BatchSize" }, "Cluster": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ EventSourceArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ EventSourceArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Cluster" }, "CollectionName": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ CollectionName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-collectionname)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "markdownDescription": "The name of the collection to consume within the database\\. If you do not specify a collection, Lambda consumes all collections\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ CollectionName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-collectionname)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "title": "CollectionName" }, "DatabaseName": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the database to consume within the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ DatabaseName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-databasename)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig`data type\\.", + "markdownDescription": "The name of the database to consume within the Amazon DocumentDB cluster\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ DatabaseName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-databasename)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig`data type\\.", + "title": "DatabaseName" }, "Enabled": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "If `true`, the event source mapping is active\\. To pause polling and invocation, set to `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ Enabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "If `true`, the event source mapping is active\\. To pause polling and invocation, set to `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ Enabled](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Enabled" }, "FilterCriteria": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [ Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [ Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FilterCriteria](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "FilterCriteria" }, "FullDocument": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Determines what Amazon DocumentDB sends to your event stream during document update operations\\. If set to `UpdateLookup`, Amazon DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, Amazon DocumentDB sends only a partial document that contains the changes\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FullDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-fulldocument)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "markdownDescription": "Determines what Amazon DocumentDB sends to your event stream during document update operations\\. If set to `UpdateLookup`, Amazon DocumentDB sends a delta describing the changes, along with a copy of the entire document\\. Otherwise, Amazon DocumentDB sends only a partial document that contains the changes\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ FullDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-fulldocument)` property of an `AWS::Lambda::EventSourceMapping` `DocumentDBEventSourceConfig` data type\\.", + "title": "FullDocument" }, "MaximumBatchingWindowInSeconds": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum amount of time to gather records before invoking the function, in seconds\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ MaximumBatchingWindowInSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum amount of time to gather records before invoking the function, in seconds\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ MaximumBatchingWindowInSeconds](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumBatchingWindowInSeconds" }, "SecretsManagerKmsKeyId": { - "title": "Secretsmanagerkmskeyid", + "description": "The AWS Key Management Service \\(AWS KMS\\) key ID of a customer managed key from AWS Secrets Manager\\. Required when you use a customer managed key from Secrets Manager with a Lambda execution role that doesn\u2019t include the `kms:Decrypt` permission\\. \nThe value of this property is a UUID\\. For example: `1abc23d4-567f-8ab9-cde0-1fab234c5d67`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn\u2019t have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The AWS Key Management Service \\(AWS KMS\\) key ID of a customer managed key from AWS Secrets Manager\\. Required when you use a customer managed key from Secrets Manager with a Lambda execution role that doesn\u2019t include the `kms:Decrypt` permission\\. \nThe value of this property is a UUID\\. For example: `1abc23d4-567f-8ab9-cde0-1fab234c5d67`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn\u2019t have an AWS CloudFormation equivalent\\.", + "title": "SecretsManagerKmsKeyId", "type": "string" }, "SourceAccessConfigurations": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol or virtual host\\. Specify this using the [ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `DocumentDB` event source type, the only valid configuration type is `BASIC_AUTH`\\. \n+ `BASIC_AUTH` \u2013 The Secrets Manager secret that stores your broker credentials\\. For this type, the credential must be in the following format: `{\"username\": \"your-username\", \"password\": \"your-password\"}`\\. Only one object of type `BASIC_AUTH` is allowed\\.\n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An array of the authentication protocol or virtual host\\. Specify this using the [ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `DocumentDB` event source type, the only valid configuration type is `BASIC_AUTH`\\. \n+ `BASIC_AUTH` \u2013 The Secrets Manager secret that stores your broker credentials\\. For this type, the credential must be in the following format: `{\"username\": \"your-username\", \"password\": \"your-password\"}`\\. Only one object of type `BASIC_AUTH` is allowed\\.\n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "SourceAccessConfigurations" }, "StartingPosition": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The position in a stream from which to start reading\\. \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPosition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The position in a stream from which to start reading\\. \n+ `AT_TIMESTAMP` \u2013 Specify a time from which to start reading records\\.\n+ `LATEST` \u2013 Read only new records\\.\n+ `TRIM_HORIZON` \u2013 Process all available records\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPosition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "StartingPosition" }, "StartingPositionTimestamp": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\. \n*Type*: Double \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPositionTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The time from which to start reading, in Unix time seconds\\. Define `StartingPositionTimestamp` when `StartingPosition` is specified as `AT_TIMESTAMP`\\. \n*Type*: Double \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ StartingPositionTimestamp](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp)` property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "StartingPositionTimestamp" } }, "required": [ @@ -866,7 +945,14 @@ "type": "array" }, "SourceReference": { - "$ref": "#/definitions/SourceReference" + "allOf": [ + { + "$ref": "#/definitions/SourceReferenceProperties" + } + ], + "description": "The source resource\\. \nUse with the embedded connectors syntax when defining additional properties for the source resource\\.\n*Type*: [SourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-sourcereference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The source resource\\. \nUse with the embedded connectors syntax when defining additional properties for the source resource\\.\n*Type*: [SourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-sourcereference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "SourceReference" } }, "required": [ @@ -1677,7 +1763,9 @@ "type": "array" }, "DisableFunctionDefaultPermissions": { - "title": "Disablefunctiondefaultpermissions", + "description": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DisableFunctionDefaultPermissions", "type": "boolean" }, "FunctionArn": { @@ -1689,8 +1777,8 @@ "type": "string" } ], - "description": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "FunctionArn" }, "FunctionInvokeRole": { @@ -1794,7 +1882,9 @@ "type": "array" }, "DisableFunctionDefaultPermissions": { - "title": "Disablefunctiondefaultpermissions", + "description": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify `true` to prevent AWS SAM from automatically creating an `AWS::Lambda::Permissions` resource to provision permissions between your `AWS::Serverless::Api` resource and authorizer Lambda function\\. \n*Default value*: `false` \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DisableFunctionDefaultPermissions", "type": "boolean" }, "FunctionArn": { @@ -1806,8 +1896,8 @@ "type": "string" } ], - "description": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify the function arn of the Lambda function which provides authorization for the API\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the function ARN of the Lambda function which provides authorization for the API\\. \nAWS SAM will automatically create an `AWS::Lambda::Permissions` resource when `FunctionArn` is specified for `AWS::Serverless::Api`\\. The `AWS::Lambda::Permissions` resource provisions permissions between your API and authorizer Lambda function\\.\n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "FunctionArn" }, "FunctionInvokeRole": { @@ -2097,7 +2187,14 @@ "title": "MaximumBatchingWindowInSeconds" }, "SourceAccessConfigurations": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `CLIENT_CERTIFICATE_TLS_AUTH` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Valid values*: `CLIENT_CERTIFICATE_TLS_AUTH` \n*Type*: List of [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SourceAccessConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "SourceAccessConfigurations" }, "StartingPosition": { "allOf": [ @@ -2690,7 +2787,14 @@ "title": "State" }, "Target": { - "$ref": "#/definitions/ScheduleTarget" + "allOf": [ + { + "$ref": "#/definitions/ScheduleTarget" + } + ], + "description": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "markdownDescription": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "title": "Target" } }, "title": "ScheduleEventProperties", @@ -2700,7 +2804,14 @@ "additionalProperties": false, "properties": { "Id": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "Id" } }, "required": [ @@ -2826,7 +2937,7 @@ "title": "SelfManagedKafkaEventProperties", "type": "object" }, - "SourceReference": { + "SourceReferenceProperties": { "additionalProperties": false, "properties": { "Qualifier": { @@ -2835,12 +2946,12 @@ "$ref": "#/definitions/PassThroughProp" } ], - "description": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. For an example, see [API Gateway invoking a Lambda function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function.html#sam-property-connector-resourcereference--examples--api-gateway-invoking-a-lambda-function)\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "description": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "A qualifier for a resource that narrows its scope\\. `Qualifier` replaces the `*` value at the end of a resource constraint ARN\\. \nQualifier definition varies per resource type\\. For a list of supported source and destination resource types, see [AWS SAM connector reference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/reference-sam-connector.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "title": "Qualifier" } }, - "title": "SourceReference", + "title": "SourceReferenceProperties", "type": "object" }, "SqsSubscription": { @@ -4731,7 +4842,14 @@ "title": "Runtime" }, "RuntimeManagementConfig": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "title": "RuntimeManagementConfig" }, "SnapStart": { "allOf": [ @@ -4823,7 +4941,9 @@ "title": "AutoPublishAlias" }, "AutoPublishAliasAllProperties": { - "title": "Autopublishaliasallproperties", + "description": "Specifies when a new [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) is created\\. When `true`, a new Lambda version is created when any property in the Lambda function is modified\\. When `false`, a new Lambda version is created only when any of the following properties are modified: \n+ `Environment`, `MemorySize`, or `SnapStart`\\.\n+ Any change that results in an update to the `Code` property, such as `CodeDict`, `ImageUri`, or `InlineCode`\\.\nThis property requires `AutoPublishAlias` to be defined\\. \nIf `AutoPublishSha256` is also specified, its behavior takes precedence over `AutoPublishAliasAllProperties: true`\\. \n*Type*: Boolean \n*Required*: No \n*Default value*: `false` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies when a new [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html) is created\\. When `true`, a new Lambda version is created when any property in the Lambda function is modified\\. When `false`, a new Lambda version is created only when any of the following properties are modified: \n+ `Environment`, `MemorySize`, or `SnapStart`\\.\n+ Any change that results in an update to the `Code` property, such as `CodeDict`, `ImageUri`, or `InlineCode`\\.\nThis property requires `AutoPublishAlias` to be defined\\. \nIf `AutoPublishSha256` is also specified, its behavior takes precedence over `AutoPublishAliasAllProperties: true`\\. \n*Type*: Boolean \n*Required*: No \n*Default value*: `false` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AutoPublishAliasAllProperties", "type": "boolean" }, "AutoPublishCodeSha256": { @@ -5195,7 +5315,14 @@ "title": "Runtime" }, "RuntimeManagementConfig": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Configure runtime management options for your Lambda functions such as runtime environment updates, rollback behavior, and selecting a specific runtime version\\. To learn more, see [Lambda runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html) in the *AWS Lambda Developer Guide*\\. \nIf `AutoPublishAlias` is configured, `RuntimeManagementConfig` will apply to both `$LATEST` and to the newly created version of the function\\.\n*Type*: [RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RuntimeManagementConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html)` property of an `AWS::Lambda::Function` resource\\.", + "title": "RuntimeManagementConfig" }, "SnapStart": { "allOf": [ @@ -6058,7 +6185,14 @@ "title": "FailOnWarnings" }, "Name": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the HTTP API resource\\. \nWhen you specify `Name`, AWS SAM will modify the HTTP API resource's OpenAPI definition by setting the `title` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `title` field set in the Open API definition \u2013 This results in a conflict of the `title` field that AWS SAM won't resolve\\.\n+ The `DefinitionUri` property is specified \u2013 AWS SAM won't modify an Open API definition that is retrieved from Amazon S3\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The name of the HTTP API resource\\. \nWhen you specify `Name`, AWS SAM will modify the HTTP API resource's OpenAPI definition by setting the `title` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `title` field set in the Open API definition \u2013 This results in a conflict of the `title` field that AWS SAM won't resolve\\.\n+ The `DefinitionUri` property is specified \u2013 AWS SAM won't modify an Open API definition that is retrieved from Amazon S3\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Name" }, "RouteSettings": { "allOf": [ @@ -6504,7 +6638,9 @@ "title": "RestApiId" }, "UnescapeMappingTemplate": { - "title": "Unescapemappingtemplate", + "description": "Unescapes single quotes, by replacing `\\'` with `'`, on the input that is passed to the state machine\\. Use when your input contains single quotes\\. \nIf set to `False` and your input contains single quotes, an error will occur\\.\n*Type*: Boolean \n*Required*: No \n*Default*: False \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Unescapes single quotes, by replacing `\\'` with `'`, on the input that is passed to the state machine\\. Use when your input contains single quotes\\. \nIf set to `False` and your input contains single quotes, an error will occur\\.\n*Type*: Boolean \n*Required*: No \n*Default*: False \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "UnescapeMappingTemplate", "type": "boolean" } }, @@ -6756,7 +6892,14 @@ "title": "RetryPolicy" }, "Target": { - "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_statemachine__EventBridgeRuleTarget" + "allOf": [ + { + "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_statemachine__EventBridgeRuleTarget" + } + ], + "description": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "markdownDescription": "The AWS resource that EventBridge invokes when a rule is triggered\\. You can use this property to specify the logical ID of the target\\. If this property is not specified, then AWS SAM generates the logical ID of the target\\. \n*Type*: [Target](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinetarget.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Targets`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets) property of an `AWS::Events::Rule` resource\\. The AWS SAM version of this property only allows you to specify the logical ID of a single target\\.", + "title": "Target" } }, "title": "EventBridgeRuleEventProperties", @@ -6766,7 +6909,14 @@ "additionalProperties": false, "properties": { "Id": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "The logical ID of the target\\. \nThe value of `Id` can include alphanumeric characters, periods \\(`.`\\), hyphens \\(`-`\\), and underscores \\(`_`\\)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "Id" } }, "required": [ @@ -6895,7 +7045,14 @@ "title": "Role" }, "RolePath": { - "$ref": "#/definitions/PassThroughProp" + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The path to the state machine's IAM execution role\\. \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The path to the state machine's IAM execution role\\. \nUse this property when the role is generated for you\\. Do not use when the role is specified with the `Role` property\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Path`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path) property of an `AWS::IAM::Role` resource\\.", + "title": "RolePath" }, "Tags": { "description": "A string\\-to\\-string map that specifies the tags added to the state machine and the corresponding execution role\\. For information about valid keys and values for tags, see the [Tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html) resource\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags) property of an `AWS::StepFunctions::StateMachine` resource\\. AWS SAM automatically adds a `stateMachine:createdBy:SAM` tag to this resource, and to the default role that is generated for it\\.", From 905b0703df5d872b08204b33459eec21a16426d6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 13:10:08 -0700 Subject: [PATCH 30/32] chore(schema): update (#3030) Co-authored-by: github-actions --- samtranslator/internal/schema_source/sam-docs.json | 1 + 1 file changed, 1 insertion(+) diff --git a/samtranslator/internal/schema_source/sam-docs.json b/samtranslator/internal/schema_source/sam-docs.json index c83880753..f0c1e2851 100644 --- a/samtranslator/internal/schema_source/sam-docs.json +++ b/samtranslator/internal/schema_source/sam-docs.json @@ -549,6 +549,7 @@ }, "sam-resource-api": { "AccessLogSetting": "Configures Access Log Setting for a stage\\. \n*Type*: [AccessLogSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "AlwaysDeploy": "Always deploy the API, even when no changes to the API have been detected\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "ApiKeySourceType": "The source of the API key for metering requests according to a usage plan\\. Valid values are `HEADER` and `AUTHORIZER`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ApiKeySourceType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype) property of an `AWS::ApiGateway::RestApi` resource\\.", "Auth": "Configure authorization to control access to your API Gateway API\\. \nFor more information about configuring access using AWS SAM see [Controlling access to API Gateway APIs](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis.html)\\. \n*Type*: [ApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", "BinaryMediaTypes": "List of MIME types that your API could return\\. Use this to enable binary support for APIs\\. Use \\~1 instead of / in the mime types\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BinaryMediaTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes) property of an `AWS::ApiGateway::RestApi` resource\\. The list of BinaryMediaTypes is added to both the AWS CloudFormation resource and the OpenAPI document\\.", From 5fe1b6a7d134f41b4a24da9dbeeee8bc84e34c6c Mon Sep 17 00:00:00 2001 From: Christoffer Rehn <1280602+hoffa@users.noreply.github.com> Date: Wed, 15 Mar 2023 15:18:18 -0700 Subject: [PATCH 31/32] fix: remove Region/SetIdentifier-related integration tests (#3033) --- ...custom_http_api_domains_latency_routing.py | 25 -------- ...m_http_api_domains_latency_routing_ipv6.py | 25 -------- ...stom_domains_regional_latency_routing.json | 42 -------------- ...domains_regional_latency_routing_ipv6.json | 42 -------------- ...stom_domains_regional_latency_routing.yaml | 57 ------------------ ...domains_regional_latency_routing_ipv6.yaml | 58 ------------------- 6 files changed, 249 deletions(-) delete mode 100644 integration/combination/test_custom_http_api_domains_latency_routing.py delete mode 100644 integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py delete mode 100644 integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json delete mode 100644 integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json delete mode 100644 integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml delete mode 100644 integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml diff --git a/integration/combination/test_custom_http_api_domains_latency_routing.py b/integration/combination/test_custom_http_api_domains_latency_routing.py deleted file mode 100644 index 920569405..000000000 --- a/integration/combination/test_custom_http_api_domains_latency_routing.py +++ /dev/null @@ -1,25 +0,0 @@ -from unittest.case import skipIf - -from integration.config.service_names import CUSTOM_DOMAIN -from integration.helpers.base_internal_test import BaseInternalTest -from integration.helpers.resource import current_region_not_included - - -@skipIf( - current_region_not_included([CUSTOM_DOMAIN]), - "CustomDomain is not supported in this testing region", -) -class TestCustomHttpApiDomainsLatencyRouting(BaseInternalTest): - def test_custom_http_api_domains_regional(self): - self.create_and_verify_stack("combination/api_with_custom_domains_regional_latency_routing") - - route53_list = self.get_stack_resources("AWS::Route53::RecordSetGroup") - self.assertEqual(1, len(route53_list)) - - client = self.client_provider.route53_client - result = client.list_resource_record_sets(HostedZoneId="xyz") - record_set_list = result["ResourceRecordSets"] - record_set = next(r for r in record_set_list if r["Name"] == "test.domain.com" & r["Type"] == "A") - - self.assertIsNotNone(record_set["SetIdentifier"]) - self.assertIsNotNone(record_set["Region"]) diff --git a/integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py b/integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py deleted file mode 100644 index 625cdb08c..000000000 --- a/integration/combination/test_custom_http_api_domains_latency_routing_ipv6.py +++ /dev/null @@ -1,25 +0,0 @@ -from unittest.case import skipIf - -from integration.config.service_names import CUSTOM_DOMAIN -from integration.helpers.base_internal_test import BaseInternalTest -from integration.helpers.resource import current_region_not_included - - -@skipIf( - current_region_not_included([CUSTOM_DOMAIN]), - "CustomDomain is not supported in this testing region", -) -class TestCustomHttpApiDomainsLatencyRoutingIpV6(BaseInternalTest): - def test_custom_http_api_domains_regional(self): - self.create_and_verify_stack("combination/api_with_custom_domains_regional_latency_routing_ipv6") - - route53_list = self.get_stack_resources("AWS::Route53::RecordSetGroup") - self.assertEqual(1, len(route53_list)) - - client = self.client_provider.route53_client - result = client.list_resource_record_sets(HostedZoneId="xyz") - record_set_list = result["ResourceRecordSets"] - record_set = next(r for r in record_set_list if r["Name"] == "test.domain.com" & r["Type"] == "AAAA") - - self.assertIsNotNone(record_set["SetIdentifier"]) - self.assertIsNotNone(record_set["Region"]) diff --git a/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json b/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json deleted file mode 100644 index c069daf32..000000000 --- a/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing.json +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "LogicalResourceId": "MyFunctionImplicitGetPermission", - "ResourceType": "AWS::Lambda::Permission" - }, - { - "LogicalResourceId": "MyFunctionImplicitPostPermission", - "ResourceType": "AWS::Lambda::Permission" - }, - { - "LogicalResourceId": "MyApipostApiMapping", - "ResourceType": "AWS::ApiGatewayV2::ApiMapping" - }, - { - "LogicalResourceId": "MyApigetApiMapping", - "ResourceType": "AWS::ApiGatewayV2::ApiMapping" - }, - { - "LogicalResourceId": "MyApi", - "ResourceType": "AWS::ApiGatewayV2::Api" - }, - { - "LogicalResourceId": "RecordSetGroupddfc299be2", - "ResourceType": "AWS::Route53::RecordSetGroup" - }, - { - "LogicalResourceId": "MyApiProdStage", - "ResourceType": "AWS::ApiGatewayV2::Stage" - }, - { - "LogicalResourceId": "ApiGatewayDomainNameV2e7a0af471b", - "ResourceType": "AWS::ApiGatewayV2::DomainName" - }, - { - "LogicalResourceId": "MyFunction", - "ResourceType": "AWS::Lambda::Function" - }, - { - "LogicalResourceId": "MyFunctionRole", - "ResourceType": "AWS::IAM::Role" - } -] diff --git a/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json b/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json deleted file mode 100644 index c069daf32..000000000 --- a/integration/resources/expected/combination/api_with_custom_domains_regional_latency_routing_ipv6.json +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "LogicalResourceId": "MyFunctionImplicitGetPermission", - "ResourceType": "AWS::Lambda::Permission" - }, - { - "LogicalResourceId": "MyFunctionImplicitPostPermission", - "ResourceType": "AWS::Lambda::Permission" - }, - { - "LogicalResourceId": "MyApipostApiMapping", - "ResourceType": "AWS::ApiGatewayV2::ApiMapping" - }, - { - "LogicalResourceId": "MyApigetApiMapping", - "ResourceType": "AWS::ApiGatewayV2::ApiMapping" - }, - { - "LogicalResourceId": "MyApi", - "ResourceType": "AWS::ApiGatewayV2::Api" - }, - { - "LogicalResourceId": "RecordSetGroupddfc299be2", - "ResourceType": "AWS::Route53::RecordSetGroup" - }, - { - "LogicalResourceId": "MyApiProdStage", - "ResourceType": "AWS::ApiGatewayV2::Stage" - }, - { - "LogicalResourceId": "ApiGatewayDomainNameV2e7a0af471b", - "ResourceType": "AWS::ApiGatewayV2::DomainName" - }, - { - "LogicalResourceId": "MyFunction", - "ResourceType": "AWS::Lambda::Function" - }, - { - "LogicalResourceId": "MyFunctionRole", - "ResourceType": "AWS::IAM::Role" - } -] diff --git a/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml b/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml deleted file mode 100644 index 24bd94678..000000000 --- a/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing.yaml +++ /dev/null @@ -1,57 +0,0 @@ -Parameters: - MyRestRegionalDomainName: - Type: String - MyRestRegionalDomainCert: - Type: String - HostedZoneId: - Type: String - -Globals: - Api: - Domain: - DomainName: - Ref: MyRestRegionalDomainName - CertificateArn: - Ref: MyRestRegionalDomainCert - EndpointConfiguration: REGIONAL - MutualTlsAuthentication: - TruststoreUri: ${mtlsuri} - TruststoreVersion: 0 - SecurityPolicy: TLS_1_2 - BasePath: - - /get - - /post - Route53: - HostedZoneId: - Ref: HostedZoneId - Region: eu-west-2 - SetIdentifier: eu-west-2 - DistributionDomainName: test.domain.com - -Resources: - MyFunction: - Type: AWS::Serverless::Function - Properties: - InlineCode: | - exports.handler = async (event) => { - const response = { - statusCode: 200, - body: JSON.stringify('Hello from Lambda!'), - }; - return response; - }; - Handler: index.handler - Runtime: nodejs14.x - Events: - ImplicitGet: - Type: Api - Properties: - Method: Get - Path: /get - ImplicitPost: - Type: Api - Properties: - Method: Post - Path: /post -Metadata: - SamTransformTest: true diff --git a/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml b/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml deleted file mode 100644 index ab5334a3d..000000000 --- a/integration/resources/templates/combination/api_with_custom_domains_regional_latency_routing_ipv6.yaml +++ /dev/null @@ -1,58 +0,0 @@ -Parameters: - MyRestRegionalDomainName: - Type: String - MyRestRegionalDomainCert: - Type: String - HostedZoneId: - Type: String - -Globals: - Api: - Domain: - DomainName: - Ref: MyRestRegionalDomainName - CertificateArn: - Ref: MyRestRegionalDomainCert - EndpointConfiguration: REGIONAL - MutualTlsAuthentication: - TruststoreUri: ${mtlsuri} - TruststoreVersion: 0 - SecurityPolicy: TLS_1_2 - BasePath: - - /get - - /post - Route53: - HostedZoneId: - Ref: HostedZoneId - Region: eu-west-2 - SetIdentifier: eu-west-2 - DistributionDomainName: test.domain.com - IpV6: true - -Resources: - MyFunction: - Type: AWS::Serverless::Function - Properties: - InlineCode: | - exports.handler = async (event) => { - const response = { - statusCode: 200, - body: JSON.stringify('Hello from Lambda!'), - }; - return response; - }; - Handler: index.handler - Runtime: nodejs14.x - Events: - ImplicitGet: - Type: Api - Properties: - Method: Get - Path: /get - ImplicitPost: - Type: Api - Properties: - Method: Post - Path: /post -Metadata: - SamTransformTest: true From efdc6cb5098da2b5db5ad54492d668b8adc0c0af Mon Sep 17 00:00:00 2001 From: aws-sam-cli-bot <46753707+aws-sam-cli-bot@users.noreply.github.com> Date: Mon, 27 Mar 2023 22:04:09 +0000 Subject: [PATCH 32/32] chore: bump version to 1.63.0 --- samtranslator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samtranslator/__init__.py b/samtranslator/__init__.py index 7e9dfb340..c33a4c8c9 100644 --- a/samtranslator/__init__.py +++ b/samtranslator/__init__.py @@ -1 +1 @@ -__version__ = "1.62.0" +__version__ = "1.63.0"